anv: Ignore descriptor binding flags if bindingCount == 0
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 19 Apr 2019 19:43:01 +0000 (14:43 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Fri, 19 Apr 2019 23:26:41 +0000 (23:26 +0000)
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 <caio.oliveira@intel.com>
src/intel/vulkan/anv_descriptor_set.c

index 1ad89185dd72d0277a797d03965d48d6c589518c..da689d285fc36cd975a2c56f596e96de6616a52b 100644 (file)
@@ -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 =