-
Notifications
You must be signed in to change notification settings - Fork 324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iOS platform support #49
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: moraaar <moraaar@amazon.com>
Signed-off-by: moraaar <moraaar@amazon.com>
…nings. Signed-off-by: moraaar <moraaar@amazon.com>
Signed-off-by: moraaar <moraaar@amazon.com>
Signed-off-by: moraaar <moraaar@amazon.com>
Signed-off-by: moraaar <moraaar@amazon.com>
This was referenced Dec 1, 2022
Signed-off-by: moraaar <moraaar@amazon.com>
## 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 <moraaar@amazon.com>
Signed-off-by: moraaar <moraaar@amazon.com>
iOS 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: #58 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What's new?
ios64
added. Initial support focused on 64-bit arm8 architecture with NEON SIMD instructions.Out of Scope
The following points are considered out of scope, they can be added in the future:
Known Errors/Limitations
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:dyld[number]: missing symbol called
when run on an arm-based Mac. To fix this nVidia has to add an ARM python package for mac into the packman scripts. As a temporary solution, use your system's python adding the environment variablePM_PYTHON_EXT
before building (for example by addingexport PM_PYTHON_EXT="python3"
into your.bash_profile
file).Testing
PX_GENERATE_STATIC_LIBRARIES
set to both true and false. The right output binaries were generated inbin/ios.arm_64
install
target successfully. It generated the correct output for iOS underinstall/ios64
folder, only including necessary headers for iOS.Open 3D Engine (O3DE)
with an early integration branch. The following video shows O3DE running PhysX 5.1 on iOS.https://user-images.githubusercontent.com/27999040/204574141-2e00c7bf-86b5-4e14-981f-6b80665a3ef7.mp4
Signed-off-by: moraaar moraaar@amazon.com