Support shaderInt64 feature only on minimum MSL 2.3 and higher GPUs.

This commit is contained in:
Bill Hollings 2021-01-25 21:40:29 -05:00
parent 57763529b1
commit 2fc9fcb079
2 changed files with 5 additions and 3 deletions

View File

@ -1575,7 +1575,6 @@ void MVKPhysicalDevice::initFeatures() {
_features.shaderStorageBufferArrayDynamicIndexing = true;
_features.shaderClipDistance = true;
_features.shaderInt16 = true;
_features.shaderInt64 = mslVersionIsAtLeast(MTLLanguageVersion2_2);
_features.multiDrawIndirect = true;
_features.inheritedQueries = true;
@ -1588,6 +1587,7 @@ void MVKPhysicalDevice::initFeatures() {
#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 @@ void MVKPhysicalDevice::initFeatures() {
#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 @@ void MVKPhysicalDevice::initFeatures() {
_features.depthClamp = true;
_features.vertexPipelineStoresAndAtomics = true;
_features.fragmentStoresAndAtomics = true;
_features.shaderInt64 = mslVersionIsAtLeast(MTLLanguageVersion2_3);
_features.shaderStorageImageArrayDynamicIndexing = _metalFeatures.arrayOfTextures;

View File

@ -72,9 +72,9 @@ bool mvk::compile(const string& mslSourceCode,
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)) {