Support shaderInt64 feature only on minimum MSL 2.3 and higher GPUs.
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
index 8cc5f51..0bbd50f 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
@@ -1575,7 +1575,6 @@
_features.shaderStorageBufferArrayDynamicIndexing = true;
_features.shaderClipDistance = true;
_features.shaderInt16 = true;
- _features.shaderInt64 = mslVersionIsAtLeast(MTLLanguageVersion2_2);
_features.multiDrawIndirect = true;
_features.inheritedQueries = true;
@@ -1588,6 +1587,7 @@
#if MVK_TVOS
_features.textureCompressionETC2 = true;
_features.textureCompressionASTC_LDR = true;
+ _features.shaderInt64 = mslVersionIsAtLeast(MTLLanguageVersion2_3) && supportsMTLGPUFamily(Apple3);
if (supportsMTLFeatureSet(tvOS_GPUFamily1_v3)) {
_features.dualSrcBlend = true;
@@ -1604,6 +1604,7 @@
#if MVK_IOS
_features.textureCompressionETC2 = true;
+ _features.shaderInt64 = mslVersionIsAtLeast(MTLLanguageVersion2_3) && supportsMTLGPUFamily(Apple3);
if (supportsMTLFeatureSet(iOS_GPUFamily2_v1)) {
_features.textureCompressionASTC_LDR = true;
@@ -1646,6 +1647,7 @@
_features.depthClamp = true;
_features.vertexPipelineStoresAndAtomics = true;
_features.fragmentStoresAndAtomics = true;
+ _features.shaderInt64 = mslVersionIsAtLeast(MTLLanguageVersion2_3);
_features.shaderStorageImageArrayDynamicIndexing = _metalFeatures.arrayOfTextures;
diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm
index b46ba9f..10348e2 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/OSSupport.mm
@@ -72,9 +72,9 @@
MTLLanguageVersion mslVerEnum = (MTLLanguageVersion)0;
if (mslVer(2, 3, 0)) {
- mslVerEnum = MTLLanguageVersion2_1;
+ mslVerEnum = MTLLanguageVersion2_3;
} else if (mslVer(2, 2, 0)) {
- mslVerEnum = MTLLanguageVersion2_1;
+ mslVerEnum = MTLLanguageVersion2_2;
} else if (mslVer(2, 1, 0)) {
mslVerEnum = MTLLanguageVersion2_1;
} else if (mslVer(2, 0, 0)) {