-
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
Mac platform support (intel and arm) #51
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>
…++ warnings 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>
Signed-off-by: moraaar <moraaar@amazon.com>
This was referenced Dec 13, 2022
## 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>
## What's new? - Added iOS platform support to PhysX 5.1. - New build preset `ios64` added. Initial support focused on 64-bit arm8 architecture with NEON SIMD instructions. - Support for generating PhysX as either static libraries or iOS frameworks. - New iOS 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: 32-bit arm7 ## Known Errors/Limitations - The name of the bin folder for iOS 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 "ios") SET(RETVAL "ios.arm_${LIBPATH_SUFFIX}") ```` - Python package used by packman is based on x86_64 architecture and generates the error `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** (NVIDIA-Omniverse#60). As a temporary solution, use your system's python adding the environment variable `PM_PYTHON_EXT` before building (for example by adding `export PM_PYTHON_EXT="python3"` into your `.bash_profile` file). - PhysX Systems that require a CUDA capable GPU are not supported in iOS, for example particle system or cloth simulation. ## Testing - Built PhysX 5.1 successfully on iOS 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/ios.arm_64` - Built cmake `install` target successfully. It generated the correct output for iOS under `install/ios64` folder, only including necessary headers for iOS. - 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 iOS. https://user-images.githubusercontent.com/27999040/204574141-2e00c7bf-86b5-4e14-981f-6b80665a3ef7.mp4 Signed-off-by: moraaar <moraaar@amazon.com>
Signed-off-by: moraaar <moraaar@amazon.com>
Mac 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?
mac64
added. It supports 64-bit x86_64 architecture with SSE2 SIMD instructions.mac-arm64
added. It supports 64-bit arm 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\mac.x86_64
. 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
, modifying the mac lines of theif
condition insideGetPlatformBinName
function to this: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/mac.x86_64
PX_GENERATE_STATIC_LIBRARIES
set to both true and false. The right output binaries were generated inbin/mac.arm64
install
target successfully. It generated the correct output for Mac underinstall/mac64
andinstall/mac-arm64
folders, only including necessary headers for Mac.Open 3D Engine (O3DE)
with an early integration branch. The following video shows O3DE running PhysX 5.1 on mac64.https://user-images.githubusercontent.com/27999040/204763960-7fe2763e-c3b1-4c73-a6fb-ad3357ef02d3.mov
Signed-off-by: moraaar moraaar@amazon.com