From: Jason Ekstrand Date: Mon, 6 Jun 2016 16:12:50 +0000 (-0700) Subject: anv/descriptor_set: Add a type field in debug builds X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e2265926f25235f9be833984a5e365889a70ea74;p=mesa.git anv/descriptor_set: Add a type field in debug builds This allows for some extra validation and makes it easier to see what's going on when poking around in gdb. Signed-off-by: Jason Ekstrand Cc: "12.0" --- diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index 3924d04310e..c977318a058 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -91,6 +91,9 @@ VkResult anv_CreateDescriptorSetLayout( uint32_t b = binding->binding; assert(binding->descriptorCount > 0); +#ifndef NDEBUG + set_layout->binding[b].type = binding->descriptorType; +#endif set_layout->binding[b].array_size = binding->descriptorCount; set_layout->binding[b].descriptor_index = set_layout->size; set_layout->size += binding->descriptorCount; @@ -526,6 +529,8 @@ void anv_UpdateDescriptorSets( &set->descriptors[bind_layout->descriptor_index]; desc += write->dstArrayElement; + assert(write->descriptorType == bind_layout->type); + switch (write->descriptorType) { case VK_DESCRIPTOR_TYPE_SAMPLER: for (uint32_t j = 0; j < write->descriptorCount; j++) { diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 26ffbd65666..975cdfc33a1 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -922,6 +922,11 @@ struct anv_vue_header { }; struct anv_descriptor_set_binding_layout { +#ifndef NDEBUG + /* The type of the descriptors in this binding */ + VkDescriptorType type; +#endif + /* Number of array elements in this binding */ uint16_t array_size;