diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c index 01eb2f5e2ba..afa3acc85d6 100644 --- a/src/gallium/drivers/zink/zink_descriptors.c +++ b/src/gallium/drivers/zink/zink_descriptors.c @@ -94,6 +94,9 @@ descriptor_pool_create(struct zink_screen *screen, enum zink_descriptor_type typ } memcpy(pool->key.bindings, bindings, bindings_size); memcpy(pool->key.sizes, sizes, types_size); + for (unsigned i = 0; i < num_bindings; i++) { + pool->num_resources += bindings[i].descriptorCount; + } pool->desc_sets = _mesa_hash_table_create(NULL, desc_state_hash, desc_state_equal); if (!pool->desc_sets) goto fail; diff --git a/src/gallium/drivers/zink/zink_descriptors.h b/src/gallium/drivers/zink/zink_descriptors.h index c58d4dbded5..9c56e356a37 100644 --- a/src/gallium/drivers/zink/zink_descriptors.h +++ b/src/gallium/drivers/zink/zink_descriptors.h @@ -82,6 +82,7 @@ struct zink_descriptor_pool { VkDescriptorPool descpool; VkDescriptorSetLayout dsl; struct zink_descriptor_pool_key key; + unsigned num_resources; unsigned num_sets_allocated; };