From 2b388c3d0404ab8cc20945b9d4c369c9051c2205 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 19 Apr 2019 14:43:01 -0500 Subject: [PATCH] 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: d6c9bd6e01b4d "anv: Put binding flags in descriptor set layouts" Reviewed-by: Caio Marcelo de Oliveira Filho --- src/intel/vulkan/anv_descriptor_set.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index 1ad89185dd7..da689d285fc 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -362,8 +362,6 @@ VkResult anv_CreateDescriptorSetLayout( const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT *binding_flags_info = vk_find_struct_const(pCreateInfo->pNext, 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++) { const VkDescriptorSetLayoutBinding *binding = @@ -385,7 +383,8 @@ VkResult anv_CreateDescriptorSetLayout( set_layout->binding[b].type = binding->descriptorType; #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; assert(binding_strct_idx < binding_flags_info->bindingCount); set_layout->binding[b].flags = -- 2.30.2