anv: Don't over-advertise descriptor indexing features
We should only advertise sub-features if we advertise the extension.
Fixes: 6e230d7607
"anv: Implement VK_EXT_descriptor_indexing"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3369>
This commit is contained in:

committed by
Marge Bot

parent
d7ff137445
commit
d36eed3e69
@@ -1058,26 +1058,28 @@ void anv_GetPhysicalDeviceFeatures2(
|
|||||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: {
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: {
|
||||||
VkPhysicalDeviceDescriptorIndexingFeaturesEXT *features =
|
VkPhysicalDeviceDescriptorIndexingFeaturesEXT *features =
|
||||||
(VkPhysicalDeviceDescriptorIndexingFeaturesEXT *)ext;
|
(VkPhysicalDeviceDescriptorIndexingFeaturesEXT *)ext;
|
||||||
|
bool descIndexing = pdevice->has_a64_buffer_access &&
|
||||||
|
pdevice->has_bindless_images;
|
||||||
features->shaderInputAttachmentArrayDynamicIndexing = false;
|
features->shaderInputAttachmentArrayDynamicIndexing = false;
|
||||||
features->shaderUniformTexelBufferArrayDynamicIndexing = true;
|
features->shaderUniformTexelBufferArrayDynamicIndexing = descIndexing;
|
||||||
features->shaderStorageTexelBufferArrayDynamicIndexing = true;
|
features->shaderStorageTexelBufferArrayDynamicIndexing = descIndexing;
|
||||||
features->shaderUniformBufferArrayNonUniformIndexing = false;
|
features->shaderUniformBufferArrayNonUniformIndexing = false;
|
||||||
features->shaderSampledImageArrayNonUniformIndexing = true;
|
features->shaderSampledImageArrayNonUniformIndexing = descIndexing;
|
||||||
features->shaderStorageBufferArrayNonUniformIndexing = true;
|
features->shaderStorageBufferArrayNonUniformIndexing = descIndexing;
|
||||||
features->shaderStorageImageArrayNonUniformIndexing = true;
|
features->shaderStorageImageArrayNonUniformIndexing = descIndexing;
|
||||||
features->shaderInputAttachmentArrayNonUniformIndexing = false;
|
features->shaderInputAttachmentArrayNonUniformIndexing = false;
|
||||||
features->shaderUniformTexelBufferArrayNonUniformIndexing = true;
|
features->shaderUniformTexelBufferArrayNonUniformIndexing = descIndexing;
|
||||||
features->shaderStorageTexelBufferArrayNonUniformIndexing = true;
|
features->shaderStorageTexelBufferArrayNonUniformIndexing = descIndexing;
|
||||||
features->descriptorBindingUniformBufferUpdateAfterBind = false;
|
features->descriptorBindingUniformBufferUpdateAfterBind = false;
|
||||||
features->descriptorBindingSampledImageUpdateAfterBind = true;
|
features->descriptorBindingSampledImageUpdateAfterBind = descIndexing;
|
||||||
features->descriptorBindingStorageImageUpdateAfterBind = true;
|
features->descriptorBindingStorageImageUpdateAfterBind = descIndexing;
|
||||||
features->descriptorBindingStorageBufferUpdateAfterBind = true;
|
features->descriptorBindingStorageBufferUpdateAfterBind = descIndexing;
|
||||||
features->descriptorBindingUniformTexelBufferUpdateAfterBind = true;
|
features->descriptorBindingUniformTexelBufferUpdateAfterBind = descIndexing;
|
||||||
features->descriptorBindingStorageTexelBufferUpdateAfterBind = true;
|
features->descriptorBindingStorageTexelBufferUpdateAfterBind = descIndexing;
|
||||||
features->descriptorBindingUpdateUnusedWhilePending = true;
|
features->descriptorBindingUpdateUnusedWhilePending = descIndexing;
|
||||||
features->descriptorBindingPartiallyBound = true;
|
features->descriptorBindingPartiallyBound = descIndexing;
|
||||||
features->descriptorBindingVariableDescriptorCount = false;
|
features->descriptorBindingVariableDescriptorCount = false;
|
||||||
features->runtimeDescriptorArray = true;
|
features->runtimeDescriptorArray = descIndexing;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user