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)) {