Browse Source

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 <jason@jlekstrand.net>
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
tags/13.0-branchpoint
Jason Ekstrand 9 years ago
parent
commit
e2265926f2
2 changed files with 10 additions and 0 deletions
  1. 5
    0
      src/intel/vulkan/anv_descriptor_set.c
  2. 5
    0
      src/intel/vulkan/anv_private.h

+ 5
- 0
src/intel/vulkan/anv_descriptor_set.c View File

@@ -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++) {

+ 5
- 0
src/intel/vulkan/anv_private.h View File

@@ -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;


Loading…
Cancel
Save