Apple M1 Support for MacOS

This commit adds support for compiling Dolphin for ARM on MacOS so that it can
run natively on the M1 processors without running through Rosseta2 emulation
providing a 30-50% performance speedup and less hitches from Rosseta2.

It consists of several key changes:

- Adding support for W^X allocation(MAP_JIT) for the ARM JIT
- Adding the machine context and config info to identify the M1 processor
- Additions to the build system and docs to support building universal binaries
- Adding code signing entitlements to access the MAP_JIT functionality
- Updating the MoltenVK libvulkan.dylib to a newer version with M1 support
This commit is contained in:
Skyler Saleh
2021-01-13 06:23:57 -08:00
parent f9b0225b69
commit 4ecb3084b7
18 changed files with 284 additions and 21 deletions
+13
View File
@@ -64,6 +64,19 @@ will inform you if a bundled library is used or if you need to install any
missing packages yourself.
### macOS Build Steps:
A script is provided to build Universal binaries supporting both x64 and ARM in the same
application bundle using the following steps:
1. `mkdir build`
2. `cd build`
3. `python ../BuildMacOSUniveralBinary.py`
4. Universal binaries will be available in the `universal` folder
Doing this requires installation of library dependencies for both x64 and ARM (or universal library
equilvalents) and may require modification of the config portion of the script to point to the
library locations
A binary supporting a single architecture can be built as well using the following steps:
1. `mkdir build`
2. `cd build`