diff options
author | Jason Ekstrand <[email protected]> | 2016-06-06 09:12:50 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-06-10 09:42:59 -0700 |
commit | e2265926f25235f9be833984a5e365889a70ea74 (patch) | |
tree | 4171e9ceb9d1bd83bd48b3e4a172833ce55b17c4 | |
parent | cd21015abd134aa815398e90714631d3f6601294 (diff) |
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 <[email protected]>
Cc: "12.0" <[email protected]>
-rw-r--r-- | src/intel/vulkan/anv_descriptor_set.c | 5 | ||||
-rw-r--r-- | src/intel/vulkan/anv_private.h | 5 |
2 files changed, 10 insertions, 0 deletions
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; |