From: Conor McCarthy Subject: [PATCH vkd3d 5/6] vkd3d: Enable descriptor indexing if available. Message-Id: <20210526081055.19432-5-cmccarthy@codeweavers.com> Date: Wed, 26 May 2021 18:10:54 +1000 In-Reply-To: <20210526081055.19432-1-cmccarthy@codeweavers.com> References: <20210526081055.19432-1-cmccarthy@codeweavers.com> Signed-off-by: Conor McCarthy --- libs/vkd3d/device.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index a4c8bca8..88221406 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -1423,7 +1423,17 @@ static HRESULT vkd3d_init_device_caps(struct d3d12_device *device, vulkan_info->EXT_shader_demote_to_helper_invocation = false; if (!physical_device_info->texel_buffer_alignment_features.texelBufferAlignment) vulkan_info->EXT_texel_buffer_alignment = false; - vulkan_info->EXT_descriptor_indexing = false; + descriptor_indexing = &physical_device_info->descriptor_indexing_features; + if (!descriptor_indexing->descriptorBindingPartiallyBound + || !descriptor_indexing->descriptorBindingVariableDescriptorCount + || !physical_device_info->descriptor_indexing_features.shaderSampledImageArrayNonUniformIndexing + || !physical_device_info->descriptor_indexing_features.shaderUniformTexelBufferArrayDynamicIndexing + || !physical_device_info->descriptor_indexing_features.shaderUniformTexelBufferArrayNonUniformIndexing + || !physical_device_info->descriptor_indexing_features.shaderStorageImageArrayNonUniformIndexing + || !physical_device_info->descriptor_indexing_features.shaderStorageTexelBufferArrayDynamicIndexing + || !physical_device_info->descriptor_indexing_features.shaderStorageTexelBufferArrayNonUniformIndexing + || !physical_device_info->descriptor_indexing_features.shaderUniformBufferArrayNonUniformIndexing) + vulkan_info->EXT_descriptor_indexing = false; vulkan_info->texel_buffer_alignment_properties = physical_device_info->texel_buffer_alignment_properties; @@ -1461,7 +1471,6 @@ static HRESULT vkd3d_init_device_caps(struct d3d12_device *device, /* Disable unused Vulkan features. */ features->shaderTessellationAndGeometryPointSize = VK_FALSE; - descriptor_indexing = &physical_device_info->descriptor_indexing_features; if (descriptor_indexing) { descriptor_indexing->shaderInputAttachmentArrayDynamicIndexing = VK_FALSE; -- 2.31.1