Redefine derivations of MVK_APPLE_SILICON, MVK_MACOS_APPLE_SILICON, and MVK_XCODE_12.

Derive MVK_APPLE_SILICON from target CPU.
Derive MVK_MACOS_APPLE_SILICON from target CPU and macOS platform.
Derive MVK_XCODE_12 from macOS and iOS SDK versions.
Test for simulator on non-Apple GPU using MVK_OS_SIMULATOR && !MVK_APPLE_SILICON.
This commit is contained in:
Bill Hollings 2021-02-20 09:33:32 -05:00
parent 0d1975907e
commit 4675481a06
2 changed files with 10 additions and 14 deletions

View File

@ -77,19 +77,19 @@ extern "C" {
# define MVK_OS_SIMULATOR TARGET_OS_SIMULATOR # define MVK_OS_SIMULATOR TARGET_OS_SIMULATOR
#endif #endif
/** Building for macOS with support for Apple Silicon. */ /** Building for Apple Silicon on iOS, tvOS, or macOS platform. */
#ifndef MVK_MACOS_APPLE_SILICON #ifndef MVK_APPLE_SILICON
# define MVK_MACOS_APPLE_SILICON (__MAC_OS_X_VERSION_MAX_ALLOWED >= 101600) # define MVK_APPLE_SILICON TARGET_CPU_ARM64
#endif #endif
/** Building for Apple Silicon. */ /** Building for macOS with support for Apple Silicon. */
#ifndef MVK_APPLE_SILICON #ifndef MVK_MACOS_APPLE_SILICON
# define MVK_APPLE_SILICON (MVK_IOS || MVK_TVOS || MVK_MACOS_APPLE_SILICON) # define MVK_MACOS_APPLE_SILICON (MVK_MACOS && MVK_APPLE_SILICON)
#endif #endif
/** Building with Xcode 12. */ /** Building with Xcode 12. */
#ifndef MVK_XCODE_12 #ifndef MVK_XCODE_12
# define MVK_XCODE_12 (MVK_MACOS_APPLE_SILICON || \ # define MVK_XCODE_12 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 101600) || \
(__IPHONE_OS_VERSION_MAX_ALLOWED >= 140000)) // Also covers tvOS (__IPHONE_OS_VERSION_MAX_ALLOWED >= 140000)) // Also covers tvOS
#endif #endif

View File

@ -1546,13 +1546,9 @@ void MVKPhysicalDevice::initMetalFeatures() {
#endif #endif
} }
// iOS and tvOS adjustments necessary when running in the simulator on non-Apple GPUs. // iOS and tvOS adjustments necessary when running in the simulator on non-Apple GPUs.
// Apple1 used as baseline for detecting Apple Silicon on macOS because Apple7 not supported for tvOS. #if MVK_OS_SIMULATOR && !MVK_APPLE_SILICON
// Must run after setting native iOS and tvOS values above. _metalFeatures.mtlBufferAlignment = 256;
#if MVK_OS_SIMULATOR
if ( !supportsMTLGPUFamily(Apple1) ) {
_metalFeatures.mtlBufferAlignment = 256;
}
#endif #endif
} }