Merge pull request #2072 from cdavis5e/mandatory-descriptor-indexing

Enable some mandatory `VK_EXT_descriptor_indexing` features.
This commit is contained in:
Bill Hollings 2023-11-22 08:46:05 -05:00 committed by GitHub
commit 77d5091940
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -128,9 +128,9 @@ void MVKPhysicalDevice::getFeatures(VkPhysicalDeviceFeatures2* features) {
.shaderInputAttachmentArrayDynamicIndexing = _metalFeatures.arrayOfTextures,
.shaderUniformTexelBufferArrayDynamicIndexing = _metalFeatures.arrayOfTextures,
.shaderStorageTexelBufferArrayDynamicIndexing = _metalFeatures.arrayOfTextures,
.shaderUniformBufferArrayNonUniformIndexing = false,
.shaderUniformBufferArrayNonUniformIndexing = true,
.shaderSampledImageArrayNonUniformIndexing = _metalFeatures.arrayOfTextures && _metalFeatures.arrayOfSamplers,
.shaderStorageBufferArrayNonUniformIndexing = false,
.shaderStorageBufferArrayNonUniformIndexing = true,
.shaderStorageImageArrayNonUniformIndexing = _metalFeatures.arrayOfTextures,
.shaderInputAttachmentArrayNonUniformIndexing = _metalFeatures.arrayOfTextures,
.shaderUniformTexelBufferArrayNonUniformIndexing = _metalFeatures.arrayOfTextures,
@ -2402,7 +2402,7 @@ void MVKPhysicalDevice::initFeatures() {
mvkClear(&_vulkan12FeaturesNoExt); // Start with everything cleared
_vulkan12FeaturesNoExt.samplerMirrorClampToEdge = _metalFeatures.samplerMirrorClampToEdge;
_vulkan12FeaturesNoExt.drawIndirectCount = false;
_vulkan12FeaturesNoExt.descriptorIndexing = true;
_vulkan12FeaturesNoExt.descriptorIndexing = _metalFeatures.arrayOfTextures && _metalFeatures.arrayOfSamplers;
_vulkan12FeaturesNoExt.samplerFilterMinmax = false;
_vulkan12FeaturesNoExt.shaderOutputViewportIndex = _features.multiViewport;
_vulkan12FeaturesNoExt.shaderOutputLayer = _metalFeatures.layeredRendering;
@ -3199,6 +3199,9 @@ void MVKPhysicalDevice::initExtensions() {
pWritableExtns->vk_KHR_fragment_shader_barycentric.enabled = false;
pWritableExtns->vk_NV_fragment_shader_barycentric.enabled = false;
}
if (!_metalFeatures.arrayOfTextures || !_metalFeatures.arrayOfSamplers) {
pWritableExtns->vk_EXT_descriptor_indexing.enabled = false;
}
// The relevant functions are not available if not built with Xcode 14.
#if MVK_XCODE_14