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 629c041eedf849aed73b5aef68a3e42543636280..e4e39f5c7b48be298f049814563c5b5ca6141edc 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