PhysX
PhysX copied to clipboard
Android platform support
What's new?
- Added Android platform support to PhysX 5.1.
- New build preset
android-arm64-v8a
added. Initial support focused on 64-bit arm8 architecture with NEON SIMD instructions. - Support for generating PhysX as either static or dynamic libraries.
- New android platform readme.
Out of Scope
The following points are considered out of scope, they can be added in the future:
- Support for PhysX Snippets.
- Support for Omniverse Visual Debugger (OmniPVD) .
- Support for other architectures: arm7, x86, x86_64.
- Support for other SIMD instructions set: SSE.
Known Errors/Limitations
- The name of the bin folder for android will appear as
bin\UNKNOWN
. To fix this nVidia has to modify the CMakeModules package it's downloaded from packman when building PhysX. The file that needs to be modified isGetCompilerAndPlatform.cmake
, adding the following lines to theif
condition insideGetPlatformBinName
function:
ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "android")
SET(RETVAL "android.${ANDROID_ABI}")
- PhysX Systems that require a CUDA capable GPU are not supported in Android, for example particle system or cloth simulation.
Testing
- Built PhysX 5.1 successfully on android in debug, checked, profile and release using
PX_GENERATE_STATIC_LIBRARIES
set to both true and false. The right output binaries were generated inbin/android.arm64-v8a
- Built cmake
install
target successfully. It generated the correct output for Android underinstall/android-29
folder, only including necessary headers for Android. - Runtime tested using
Open 3D Engine (O3DE)
with an early integration branch. The following video shows O3DE running PhysX 5.1 on Android. https://user-images.githubusercontent.com/27999040/203624867-6ed19905-d0dc-4dfe-943a-46e584fd9983.mp4
Signed-off-by: moraaar [email protected]
Android platform support has been submitted to the following PhysX fork where it will be maintained: https://github.com/o3de/PhysX
For more details see the following discussion: https://github.com/NVIDIA-Omniverse/PhysX/discussions/58