mirror of
https://github.com/YGGverse/xash3d-fwgs.git
synced 2025-01-17 10:30:00 +00:00
psvita: fno-short-enums, make ref_gl function somewhat
This commit is contained in:
parent
97a7de3377
commit
6304b51f32
@ -171,6 +171,7 @@ Default build-depended cvar and constant values
|
|||||||
#define DEFAULT_MODE_WIDTH 960
|
#define DEFAULT_MODE_WIDTH 960
|
||||||
#define DEFAULT_MODE_HEIGHT 544
|
#define DEFAULT_MODE_HEIGHT 544
|
||||||
#define DEFAULT_ALLOWCONSOLE 1
|
#define DEFAULT_ALLOWCONSOLE 1
|
||||||
|
#define DEFAULT_DEV 255
|
||||||
#elif XASH_MOBILE_PLATFORM
|
#elif XASH_MOBILE_PLATFORM
|
||||||
#define DEFAULT_TOUCH_ENABLE "1"
|
#define DEFAULT_TOUCH_ENABLE "1"
|
||||||
#define DEFAULT_M_IGNORE "1"
|
#define DEFAULT_M_IGNORE "1"
|
||||||
|
@ -20,15 +20,34 @@ GNU General Public License for more details.
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <vitasdk.h>
|
#include <vitasdk.h>
|
||||||
|
#include <vitaGL.h>
|
||||||
#include <vrtld.h>
|
#include <vrtld.h>
|
||||||
|
|
||||||
#define DATA_PATH "data/xash3d"
|
#define DATA_PATH "data/xash3d"
|
||||||
|
|
||||||
|
// 200MB libc heap, 512K main thread stack, 32MB for loading game DLLs, 8MB vertex pool
|
||||||
|
// the rest goes to vitaGL
|
||||||
|
SceUInt32 sceUserMainThreadStackSize = 512 * 1024;
|
||||||
|
unsigned int _pthread_stack_default_user = 512 * 1024;
|
||||||
|
unsigned int _newlib_heap_size_user = 200 * 1024 * 1024;
|
||||||
|
#define VGL_MEM_THRESHOLD ( 32 * 1024 * 1024 )
|
||||||
|
#define VGL_VERTEX_POOL_SIZE ( 8 * 1024 * 1024 )
|
||||||
|
|
||||||
|
/* HACK: stubs for GL functions that are missing from vitaGL */
|
||||||
|
|
||||||
|
static void glDrawBuffer( GLenum which )
|
||||||
|
{
|
||||||
|
/* nada */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* end of GL stubs*/
|
||||||
|
|
||||||
/* HACKHACK: force-export stuff required by the dynamic libs */
|
/* HACKHACK: force-export stuff required by the dynamic libs */
|
||||||
|
|
||||||
extern void *__aeabi_idiv;
|
extern void *__aeabi_idiv;
|
||||||
extern void *__aeabi_uidiv;
|
extern void *__aeabi_uidiv;
|
||||||
extern void *__aeabi_idivmod;
|
extern void *__aeabi_idivmod;
|
||||||
|
extern void *__aeabi_uidivmod;
|
||||||
extern void *__aeabi_d2ulz;
|
extern void *__aeabi_d2ulz;
|
||||||
extern void *__aeabi_ul2d;
|
extern void *__aeabi_ul2d;
|
||||||
|
|
||||||
@ -37,19 +56,27 @@ static const vrtld_export_t aux_exports[] =
|
|||||||
VRTLD_EXPORT_SYMBOL( __aeabi_d2ulz ),
|
VRTLD_EXPORT_SYMBOL( __aeabi_d2ulz ),
|
||||||
VRTLD_EXPORT_SYMBOL( __aeabi_idiv ),
|
VRTLD_EXPORT_SYMBOL( __aeabi_idiv ),
|
||||||
VRTLD_EXPORT_SYMBOL( __aeabi_idivmod ),
|
VRTLD_EXPORT_SYMBOL( __aeabi_idivmod ),
|
||||||
|
VRTLD_EXPORT_SYMBOL( __aeabi_uidivmod ),
|
||||||
VRTLD_EXPORT_SYMBOL( __aeabi_uidiv ),
|
VRTLD_EXPORT_SYMBOL( __aeabi_uidiv ),
|
||||||
VRTLD_EXPORT_SYMBOL( __aeabi_ul2d ),
|
VRTLD_EXPORT_SYMBOL( __aeabi_ul2d ),
|
||||||
VRTLD_EXPORT_SYMBOL( ctime ),
|
VRTLD_EXPORT_SYMBOL( ctime ),
|
||||||
VRTLD_EXPORT_SYMBOL( vasprintf ),
|
VRTLD_EXPORT_SYMBOL( vasprintf ),
|
||||||
|
VRTLD_EXPORT_SYMBOL( vsprintf ),
|
||||||
VRTLD_EXPORT_SYMBOL( vprintf ),
|
VRTLD_EXPORT_SYMBOL( vprintf ),
|
||||||
VRTLD_EXPORT_SYMBOL( printf ),
|
VRTLD_EXPORT_SYMBOL( printf ),
|
||||||
VRTLD_EXPORT_SYMBOL( putchar ),
|
VRTLD_EXPORT_SYMBOL( putchar ),
|
||||||
VRTLD_EXPORT_SYMBOL( puts ),
|
VRTLD_EXPORT_SYMBOL( puts ),
|
||||||
VRTLD_EXPORT_SYMBOL( tolower ),
|
VRTLD_EXPORT_SYMBOL( tolower ),
|
||||||
VRTLD_EXPORT_SYMBOL( toupper ),
|
VRTLD_EXPORT_SYMBOL( toupper ),
|
||||||
|
VRTLD_EXPORT_SYMBOL( isalnum ),
|
||||||
|
VRTLD_EXPORT_SYMBOL( isalpha ),
|
||||||
VRTLD_EXPORT_SYMBOL( strchrnul ),
|
VRTLD_EXPORT_SYMBOL( strchrnul ),
|
||||||
VRTLD_EXPORT_SYMBOL( rand ),
|
VRTLD_EXPORT_SYMBOL( rand ),
|
||||||
VRTLD_EXPORT_SYMBOL( srand ),
|
VRTLD_EXPORT_SYMBOL( srand ),
|
||||||
|
VRTLD_EXPORT_SYMBOL( glDrawBuffer ),
|
||||||
|
VRTLD_EXPORT( "dlopen", vrtld_dlopen ),
|
||||||
|
VRTLD_EXPORT( "dlclose", vrtld_dlclose ),
|
||||||
|
VRTLD_EXPORT( "dlsym", vrtld_dlsym ),
|
||||||
};
|
};
|
||||||
|
|
||||||
const vrtld_export_t *__vrtld_exports = aux_exports;
|
const vrtld_export_t *__vrtld_exports = aux_exports;
|
||||||
@ -57,9 +84,6 @@ const size_t __vrtld_num_exports = sizeof( aux_exports ) / sizeof( *aux_exports
|
|||||||
|
|
||||||
/* end of export crap */
|
/* end of export crap */
|
||||||
|
|
||||||
SceUInt32 sceUserMainThreadStackSize = 1 * 1024 * 1024;
|
|
||||||
unsigned int _newlib_heap_size_user = 128 * 1024 * 1024;
|
|
||||||
|
|
||||||
void Platform_ShellExecute( const char *path, const char *parms )
|
void Platform_ShellExecute( const char *path, const char *parms )
|
||||||
{
|
{
|
||||||
Con_Reportf( S_WARN "Tried to shell execute ;%s; -- not supported\n", path );
|
Con_Reportf( S_WARN "Tried to shell execute ;%s; -- not supported\n", path );
|
||||||
@ -87,6 +111,12 @@ void PSVita_Init( void )
|
|||||||
{
|
{
|
||||||
Sys_Error( "Could not init vrtld: %s\n", vrtld_dlerror( ) );
|
Sys_Error( "Could not init vrtld: %s\n", vrtld_dlerror( ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// init vitaGL with some memory budget for immediate mode vertices
|
||||||
|
// TODO: we don't need to do this for ref_soft
|
||||||
|
vglUseVram( GL_TRUE );
|
||||||
|
vglUseExtraMem( GL_TRUE );
|
||||||
|
vglInitExtended( VGL_VERTEX_POOL_SIZE, 960, 544, VGL_MEM_THRESHOLD, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void PSVita_Shutdown( void )
|
void PSVita_Shutdown( void )
|
||||||
|
@ -424,6 +424,14 @@ void *GL_GetProcAddress( const char *name )
|
|||||||
{
|
{
|
||||||
void *func = SDL_GL_GetProcAddress( name );
|
void *func = SDL_GL_GetProcAddress( name );
|
||||||
|
|
||||||
|
#if XASH_PSVITA
|
||||||
|
// try to find in main module
|
||||||
|
if( !func )
|
||||||
|
{
|
||||||
|
func = dlsym( NULL, name );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if( !func )
|
if( !func )
|
||||||
{
|
{
|
||||||
Con_Reportf( S_ERROR "GL_GetProcAddress failed for %s\n", name );
|
Con_Reportf( S_ERROR "GL_GetProcAddress failed for %s\n", name );
|
||||||
|
@ -199,7 +199,7 @@ def build(bld):
|
|||||||
libs += [ 'VRTLD' ]
|
libs += [ 'VRTLD' ]
|
||||||
source += bld.path.ant_glob(['platform/posix/*.c'])
|
source += bld.path.ant_glob(['platform/posix/*.c'])
|
||||||
source += bld.path.ant_glob(['platform/psvita/*.c'])
|
source += bld.path.ant_glob(['platform/psvita/*.c'])
|
||||||
# HACK: link in the entirety of libstdc++ and -lm so that dynamic libs could use all of them without manual exporting
|
# HACK: link in the entirety of libstdc++ so that dynamic libs could use all of it without manual exporting
|
||||||
# also link in all the funky dependencies that aren't in SDL2's LDFLAGS
|
# also link in all the funky dependencies that aren't in SDL2's LDFLAGS
|
||||||
bld.env.LDFLAGS += [
|
bld.env.LDFLAGS += [
|
||||||
'-Wl,--whole-archive',
|
'-Wl,--whole-archive',
|
||||||
@ -207,10 +207,10 @@ def build(bld):
|
|||||||
'-lpthread',
|
'-lpthread',
|
||||||
'-Wl,--no-whole-archive',
|
'-Wl,--no-whole-archive',
|
||||||
'-lm',
|
'-lm',
|
||||||
'-lkubridge_stub',
|
|
||||||
'-lSceShaccCgExt',
|
'-lSceShaccCgExt',
|
||||||
'-lSceShaccCg_stub',
|
'-lkubridge_stub',
|
||||||
'-ltaihen_stub',
|
'-ltaihen_stub',
|
||||||
|
'-lSceShaccCg_stub',
|
||||||
'-lSceKernelModulemgr_stub',
|
'-lSceKernelModulemgr_stub',
|
||||||
'-lSceSblSsMgr_stub',
|
'-lSceSblSsMgr_stub',
|
||||||
'-lSceVshBridge_stub',
|
'-lSceVshBridge_stub',
|
||||||
|
@ -480,7 +480,7 @@ class PSVita:
|
|||||||
# this optimization is broken in vitasdk
|
# this optimization is broken in vitasdk
|
||||||
cflags += ['-fno-optimize-sibling-calls']
|
cflags += ['-fno-optimize-sibling-calls']
|
||||||
# disable some ARM bullshit
|
# disable some ARM bullshit
|
||||||
cflags += ['-fsigned-char', '-Wno-attributes']
|
cflags += ['-fsigned-char', '-fno-short-enums', '-Wno-attributes']
|
||||||
# base include dir
|
# base include dir
|
||||||
cflags += ['-isystem %s/arm-vita-eabi/include' % self.vitasdk_dir]
|
cflags += ['-isystem %s/arm-vita-eabi/include' % self.vitasdk_dir]
|
||||||
# SDL include dir
|
# SDL include dir
|
||||||
@ -495,6 +495,8 @@ class PSVita:
|
|||||||
# they go before object list
|
# they go before object list
|
||||||
def linkflags(self):
|
def linkflags(self):
|
||||||
linkflags = ['-Wl,--hash-style=sysv', '-Wl,-q', '-Wl,-z,nocopyreloc', '-mtune=cortex-a9', '-mfpu=neon']
|
linkflags = ['-Wl,--hash-style=sysv', '-Wl,-q', '-Wl,-z,nocopyreloc', '-mtune=cortex-a9', '-mfpu=neon']
|
||||||
|
# enforce no-short-enums again
|
||||||
|
linkflags += ['-Wl,-no-enum-size-warning', '-fno-short-enums']
|
||||||
return linkflags
|
return linkflags
|
||||||
|
|
||||||
def ldflags(self):
|
def ldflags(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user