anv: Ignore descriptor binding flags if bindingCount == 0
I missed this on the first go round. The bindingCount field of
VkDescriptorSetLayoutBindingFlagsCreateInfoEXT is allowed to be zero
which means the flags array is ignored.
Fixes: d6c9bd6e01
"anv: Put binding flags in descriptor set layouts"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
This commit is contained in:
@@ -362,8 +362,6 @@ VkResult anv_CreateDescriptorSetLayout(
|
|||||||
const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT *binding_flags_info =
|
const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT *binding_flags_info =
|
||||||
vk_find_struct_const(pCreateInfo->pNext,
|
vk_find_struct_const(pCreateInfo->pNext,
|
||||||
DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT);
|
DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT);
|
||||||
if (binding_flags_info)
|
|
||||||
assert(binding_flags_info->bindingCount == pCreateInfo->bindingCount);
|
|
||||||
|
|
||||||
for (uint32_t b = 0; b <= max_binding; b++) {
|
for (uint32_t b = 0; b <= max_binding; b++) {
|
||||||
const VkDescriptorSetLayoutBinding *binding =
|
const VkDescriptorSetLayoutBinding *binding =
|
||||||
@@ -385,7 +383,8 @@ VkResult anv_CreateDescriptorSetLayout(
|
|||||||
set_layout->binding[b].type = binding->descriptorType;
|
set_layout->binding[b].type = binding->descriptorType;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (binding_flags_info) {
|
if (binding_flags_info && binding_flags_info->bindingCount > 0) {
|
||||||
|
assert(binding_flags_info->bindingCount == pCreateInfo->bindingCount);
|
||||||
uint32_t binding_strct_idx = binding - pCreateInfo->pBindings;
|
uint32_t binding_strct_idx = binding - pCreateInfo->pBindings;
|
||||||
assert(binding_strct_idx < binding_flags_info->bindingCount);
|
assert(binding_strct_idx < binding_flags_info->bindingCount);
|
||||||
set_layout->binding[b].flags =
|
set_layout->binding[b].flags =
|
||||||
|
Reference in New Issue
Block a user