You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if(USE_NATIVE_INSTRUCTIONS AND COMPILER_SUPPORTS_MARCH_NATIVE)
add_compile_options(-march=native)
elseif(COMPILER_ARM)
# This section needs a review. Apple claims armv8.5-a on M-series but doesn't support SVE.
# Note that compared to the rest of the 8.x family, 8.1 is very restrictive and we'll have to bump the requirement in future to get anything meaningful.
if (APPLE)
add_compile_options(-march=armv8.4-a)
else()
add_compile_options(-march=armv8.1-a)
Show that we need at least ARMv8.1 for the architecture. While maybe it is okay if I manually override the compiler setting and build for my Jetson Nano, which unfortunately is a Cortex-A57 and does not support ARMv8.1 but does support ARMv8 (ARMv8.1 support is only starting from Jetson Xavier NX).
I'm also aware that the GPU of Jetson Nano does not have Vulkan support and thus I have to resort back to OpenGL backend but I just want to see if it works first.
The text was updated successfully, but these errors were encountered:
Unfortunately armv8 < 8.1 generates very inefficient code especially around atomics which are very heavily used in rpcs3. We cannot ship it as a baseline profile officially.
Rpcs3 being open source means you can just create your own personal branch with the workarounds, there is no need to affect the official releases.
Unfortunately armv8 < 8.1 generates very inefficient code especially around atomics which are very heavily used in rpcs3. We cannot ship it as a baseline profile officially. Rpcs3 being open source means you can just create your own personal branch with the workarounds, there is no need to affect the official releases.
Before 8.1 atomics work in a different way. To cope, base armv8 emits jumps to helper functions like __aarch64_ldadd4_acq_rel for example to do adds, instead of the armv8.1-a version which just emits an atomic add (ldaddal) in-place. The sheer number of atomics we use rules out the fallback as a reasonable expectation on shipping code.
Quick summary
We should lower the ARMv8.1 requirement down to just ARMv8 so that it can be more compatible
Details
rpcs3/buildfiles/cmake/ConfigureCompiler.cmake
Lines 29 to 44 in 68b7e59
Show that we need at least ARMv8.1 for the architecture. While maybe it is okay if I manually override the compiler setting and build for my Jetson Nano, which unfortunately is a Cortex-A57 and does not support ARMv8.1 but does support ARMv8 (ARMv8.1 support is only starting from Jetson Xavier NX).
I'm also aware that the GPU of Jetson Nano does not have Vulkan support and thus I have to resort back to OpenGL backend but I just want to see if it works first.
The text was updated successfully, but these errors were encountered: