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>
This commit is contained in:
@@ -91,6 +91,9 @@ VkResult anv_CreateDescriptorSetLayout(
|
|||||||
uint32_t b = binding->binding;
|
uint32_t b = binding->binding;
|
||||||
|
|
||||||
assert(binding->descriptorCount > 0);
|
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].array_size = binding->descriptorCount;
|
||||||
set_layout->binding[b].descriptor_index = set_layout->size;
|
set_layout->binding[b].descriptor_index = set_layout->size;
|
||||||
set_layout->size += binding->descriptorCount;
|
set_layout->size += binding->descriptorCount;
|
||||||
@@ -526,6 +529,8 @@ void anv_UpdateDescriptorSets(
|
|||||||
&set->descriptors[bind_layout->descriptor_index];
|
&set->descriptors[bind_layout->descriptor_index];
|
||||||
desc += write->dstArrayElement;
|
desc += write->dstArrayElement;
|
||||||
|
|
||||||
|
assert(write->descriptorType == bind_layout->type);
|
||||||
|
|
||||||
switch (write->descriptorType) {
|
switch (write->descriptorType) {
|
||||||
case VK_DESCRIPTOR_TYPE_SAMPLER:
|
case VK_DESCRIPTOR_TYPE_SAMPLER:
|
||||||
for (uint32_t j = 0; j < write->descriptorCount; j++) {
|
for (uint32_t j = 0; j < write->descriptorCount; j++) {
|
||||||
|
@@ -922,6 +922,11 @@ struct anv_vue_header {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct anv_descriptor_set_binding_layout {
|
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 */
|
/* Number of array elements in this binding */
|
||||||
uint16_t array_size;
|
uint16_t array_size;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user