diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 6f2759dc..df3f6844 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1780,6 +1780,12 @@ void MVKPhysicalDevice::initMetalFeatures() { } #endif +#if MVK_XCODE_15 + if ( mvkOSVersionIsAtLeast(17.0) ) { + _metalFeatures.mslVersionEnum = MTLLanguageVersion3_1; + } +#endif + #endif #if MVK_IOS @@ -1897,6 +1903,11 @@ void MVKPhysicalDevice::initMetalFeatures() { _metalFeatures.mslVersionEnum = MTLLanguageVersion3_0; } #endif +#if MVK_XCODE_15 + if ( mvkOSVersionIsAtLeast(17.0) ) { + _metalFeatures.mslVersionEnum = MTLLanguageVersion3_1; + } +#endif #endif @@ -1982,6 +1993,11 @@ void MVKPhysicalDevice::initMetalFeatures() { _metalFeatures.mslVersionEnum = MTLLanguageVersion3_0; } #endif +#if MVK_XCODE_15 + if ( mvkOSVersionIsAtLeast(14.0) ) { + _metalFeatures.mslVersionEnum = MTLLanguageVersion3_1; + } +#endif // This is an Apple GPU--treat it accordingly. if (supportsMTLGPUFamily(Apple1)) { diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm index 965d6cb0..fda97f5f 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm @@ -71,6 +71,11 @@ bool mvk::compile(const string& mslSourceCode, #define mslVer(MJ, MN, PT) mslVersionMajor == MJ && mslVersionMinor == MN && mslVersionPoint == PT MTLLanguageVersion mslVerEnum = (MTLLanguageVersion)0; +#if MVK_XCODE_15 + if (mslVer(3, 1, 0)) { + mslVerEnum = MTLLanguageVersion3_1; + } else +#endif #if MVK_XCODE_14 if (mslVer(3, 0, 0)) { mslVerEnum = MTLLanguageVersion3_0;