mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-30 04:38:49 +00:00
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:
parent
f9b0225b69
commit
4ecb3084b7
18 changed files with 284 additions and 21 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <string>
|
||||
#include <thread>
|
||||
|
||||
#ifndef __APPLE__
|
||||
#ifndef _WIN32
|
||||
#ifndef __FreeBSD__
|
||||
#include <asm/hwcap.h>
|
||||
|
@ -15,6 +16,7 @@
|
|||
#include <sys/auxv.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <fmt/format.h>
|
||||
|
||||
|
@ -71,7 +73,17 @@ void CPUInfo::Detect()
|
|||
vendor = CPUVendor::ARM;
|
||||
bFlushToZero = true;
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef __APPLE__
|
||||
num_cores = std::thread::hardware_concurrency();
|
||||
|
||||
// M-series CPUs have all of these
|
||||
bFP = true;
|
||||
bASIMD = true;
|
||||
bAES = true;
|
||||
bSHA1 = true;
|
||||
bSHA2 = true;
|
||||
bCRC32 = true;
|
||||
#elif defined(_WIN32)
|
||||
num_cores = std::thread::hardware_concurrency();
|
||||
|
||||
// Windows does not provide any mechanism for querying the system registers on ARMv8, unlike Linux
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue