anv: VkDescriptorSetLayoutBinding can have descriptorCount == 0
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 11 Jan 2018 10:15:30 +0000 (11:15 +0100)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Fri, 12 Jan 2018 06:08:51 +0000 (07:08 +0100)
From Vulkan spec:

"descriptorCount is the number of descriptors contained in the binding,
accessed in a shader as an array. If descriptorCount is zero this
binding entry is reserved and the resource must not be accessed from
any stage via this binding within any pipeline using the set layout."

Fixes:

dEQP-VK.binding_model.descriptor_update.empty_descriptor.uniform_buffer

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable@lists.freedesktop.org
src/intel/vulkan/anv_descriptor_set.c

index 629c041..e4e39f5 100644 (file)
@@ -103,7 +103,9 @@ VkResult anv_CreateDescriptorSetLayout(
       if (binding == NULL)
          continue;
 
-      assert(binding->descriptorCount > 0);
+      if (binding->descriptorCount == 0)
+         continue;
+
 #ifndef NDEBUG
       set_layout->binding[b].type = binding->descriptorType;
 #endif