diff --git a/Common/MVKCommonEnvironment.h b/Common/MVKCommonEnvironment.h index c9599223..0e7d4965 100644 --- a/Common/MVKCommonEnvironment.h +++ b/Common/MVKCommonEnvironment.h @@ -88,6 +88,10 @@ extern "C" { #endif /** Building with Xcode versions. iOS version also covers tvOS. */ +#ifndef MVK_XCODE_15 +# define MVK_XCODE_15 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 140000) || \ + (__IPHONE_OS_VERSION_MAX_ALLOWED >= 170000)) +#endif #ifndef MVK_XCODE_14_3 # define MVK_XCODE_14_3 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 130300) || \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 160400)) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 3723a8f1..6f2759dc 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2097,6 +2097,11 @@ void MVKPhysicalDevice::initMetalFeatures() { _metalFeatures.mslVersion = SPIRV_CROSS_NAMESPACE::CompilerMSL::Options::make_msl_version(maj, min); switch (_metalFeatures.mslVersionEnum) { +#if MVK_XCODE_15 + case MTLLanguageVersion3_1: + setMSLVersion(3, 1); + break; +#endif #if MVK_XCODE_14 case MTLLanguageVersion3_0: setMSLVersion(3, 0);