Fix compile on raspberry pi 4/A72
Game runs pretty close to fine, needed to use system libpng and haven't attempted to use ffmpeg, however. I'm seeing in the 50fps range in gameplay with no performance tweaks but having set -mtune=cortex-a72. There's a lot of perf opportunities, so consistent 60 is certainly within reason without too much pain.
This commit is contained in:
@@ -231,14 +231,12 @@ if(NOT APPLE)
|
||||
"arch/Lights/LightsDriver_Linux_PIUIO.cpp"
|
||||
"arch/Lights/LightsDriver_Linux_PIUIO_Leds.cpp"
|
||||
"arch/Lights/LightsDriver_Linux_ITGIO.cpp"
|
||||
"arch/Lights/LightsDriver_LinuxWeedTech.cpp"
|
||||
"arch/Lights/LightsDriver_LinuxParallel.cpp")
|
||||
"arch/Lights/LightsDriver_LinuxWeedTech.cpp")
|
||||
list(APPEND SMDATA_ARCH_LIGHTS_HPP
|
||||
"arch/Lights/LightsDriver_Linux_PIUIO.h"
|
||||
"arch/Lights/LightsDriver_Linux_PIUIO_Leds.h"
|
||||
"arch/Lights/LightsDriver_Linux_ITGIO.h"
|
||||
"arch/Lights/LightsDriver_LinuxWeedTech.h"
|
||||
"arch/Lights/LightsDriver_LinuxParallel.h")
|
||||
"arch/Lights/LightsDriver_LinuxWeedTech.h")
|
||||
if(WITH_PARALLEL_PORT)
|
||||
list(APPEND SMDATA_ARCH_LIGHTS_SRC
|
||||
"arch/Lights/LightsDriver_LinuxParallel.cpp")
|
||||
|
||||
+17
-5
@@ -142,8 +142,12 @@ if(WITH_SSE2)
|
||||
if(SM_WIN32_ARCH MATCHES "x86")
|
||||
set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} /arch:SSE2")
|
||||
endif()
|
||||
else()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86")
|
||||
set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} -msse2")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
|
||||
set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} -mtune=cortex-a72")
|
||||
else()
|
||||
message("Unrecognized host processor type")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -332,9 +336,14 @@ else() # Linux
|
||||
sm_add_compile_definition("${SM_EXE_NAME}" CRASH_HANDLER)
|
||||
if(LINUX)
|
||||
# used only in the ArchHooks_Unix.cpp file
|
||||
sm_add_compile_definition("${SM_EXE_NAME}" BACKTRACE_METHOD_X86_LINUX)
|
||||
sm_add_compile_definition("${SM_EXE_NAME}"
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86" OR CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||
sm_add_compile_definition("${SM_EXE_NAME}" BACKTRACE_METHOD_X86_LINUX)
|
||||
sm_add_compile_definition("${SM_EXE_NAME}"
|
||||
BACKTRACE_METHOD_TEXT="x86 custom backtrace")
|
||||
else()
|
||||
sm_add_compile_definition("${SM_EXE_NAME}"
|
||||
BACKTRACE_METHOD_TEXT="no backtrace")
|
||||
endif()
|
||||
sm_add_compile_definition(
|
||||
"${SM_EXE_NAME}" BACKTRACE_LOOKUP_METHOD_TEXT="backtrace_symbols")
|
||||
if(${DL_FOUND})
|
||||
@@ -351,12 +360,15 @@ else() # Linux
|
||||
|
||||
message("Host processor is ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||
message("Host processor is 64bit")
|
||||
message("Host processor is 64bit X86")
|
||||
sm_add_compile_definition("${SM_EXE_NAME}" CPU_X86_64)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86"
|
||||
OR CMAKE_SYSTEM_PROCESSOR MATCHES "i686")
|
||||
message("Host processor is 32bit")
|
||||
message("Host processor is 32bit X86")
|
||||
sm_add_compile_definition("${SM_EXE_NAME}" CPU_X86)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
|
||||
message("Host processor is 64bit ARM")
|
||||
sm_add_compile_definition("${SM_EXE_NAME}" CPU_AARCH64)
|
||||
else()
|
||||
message("Unrecognized host processor type")
|
||||
endif()
|
||||
|
||||
@@ -244,6 +244,9 @@ bool GetThreadBacktraceContext( uint64_t ThreadID, BacktraceContext *ctx )
|
||||
ctx->PC = (void *)ptrace( PTRACE_PEEKUSER, pid_t(ThreadID), (void *)(PT_NIP<<2), 0 );
|
||||
if( errno )
|
||||
return false;
|
||||
#elif defined(CPU_AARCH64)
|
||||
// NYI
|
||||
return false;
|
||||
#else
|
||||
#error GetThreadBacktraceContext: which arch?
|
||||
#endif
|
||||
|
||||
@@ -398,6 +398,12 @@ void GetSignalBacktraceContext( BacktraceContext *ctx, const ucontext_t *uc )
|
||||
ctx->sp = (void *) uc->uc_mcontext.gregs[REG_RSP];
|
||||
ctx->pid = GetCurrentThreadId();
|
||||
}
|
||||
#elif defined(CPU_AARCH64)
|
||||
void GetSignalBacktraceContext( BacktraceContext *ctx, const ucontext_t *uc )
|
||||
{
|
||||
// NYI
|
||||
}
|
||||
|
||||
#else
|
||||
#error
|
||||
#endif
|
||||
@@ -740,6 +746,11 @@ void GetBacktrace( const void **buf, size_t size, const BacktraceContext *ctx )
|
||||
#warning Undefined BACKTRACE_METHOD_*
|
||||
void InitializeBacktrace() { }
|
||||
|
||||
void GetSignalBacktraceContext( BacktraceContext *ctx, const ucontext_t *uc )
|
||||
{
|
||||
// NYI
|
||||
}
|
||||
|
||||
void GetBacktrace( const void **buf, size_t size, const BacktraceContext *ctx )
|
||||
{
|
||||
buf[0] = BACKTRACE_METHOD_NOT_AVAILABLE;
|
||||
|
||||
Reference in New Issue
Block a user