From e2265926f25235f9be833984a5e365889a70ea74 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 6 Jun 2016 09:12:50 -0700 Subject: [PATCH] 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" --- src/intel/vulkan/anv_descriptor_set.c | 5 +++++ src/intel/vulkan/anv_private.h | 5 +++++ 2 files changed, 10 insertions(+) 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; -- 2.30.2