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
## 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** (NVIDIA-Omniverse#59). The file that needs to be modified is `GetCompilerAndPlatform.cmake`, adding the following lines to the `if` condition inside `GetPlatformBinName` 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 in `bin/android.arm64-v8a`
- Built cmake `install` target successfully. It generated the correct output for Android under `install/android-29` folder, only including necessary headers for Android.
- Runtime tested using `Open 3D Engine (O3DE)` with an early integration [branch](https://github.com/aws-lumberyard-dev/o3de/tree/PhysX5Support). 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]>
* Set the environment variable ANDROID_NDK_HOME to the path to Android NDK.
19
+
* Makefiles are generated through a script in physx root directory: generate_projects.bat
20
+
* Script generate_projects.bat expects a preset name as a parameter, if a parameter is not provided it does list the available presets and you can select one.
21
+
* Supported preset for android platform is: android-arm64-v8a.
22
+
* Generated solutions are in folder compiler/android-arm64-v8a-debug, compiler/android-arm64-v8a-checked, compiler/android-arm64-v8a-profile, compiler/android-arm64-v8a-release.
23
+
24
+
25
+
## Building SDK:
26
+
27
+
* Makefiles are in compiler/android-arm64-v8a-debug, etc.
28
+
* Build solution: cmake --build .
29
+
30
+
## Limitations:
31
+
32
+
* PhysX Snippets are not supported.
33
+
* PhysX Systems that require a CUDA capable GPU are not supported, for example particle system or cloth simulation.
34
+
* Omniverse Visual Debugger (OmniPVD) is not supported.
0 commit comments