Fixes maxSets in vkCreateDescriptorPool not used
see https://gitlab.khronos.org/vulkan/LoaderAndTools/issues/8
diff --git a/icd/intel/desc.c b/icd/intel/desc.c
index bc835cc..e7c31c3 100644
--- a/icd/intel/desc.c
+++ b/icd/intel/desc.c
@@ -205,9 +205,10 @@
}
VkResult intel_desc_region_alloc(struct intel_desc_region *region,
- const VkDescriptorPoolCreateInfo *info,
- struct intel_desc_offset *begin,
- struct intel_desc_offset *end)
+ uint32_t max_sets,
+ const VkDescriptorPoolCreateInfo *info,
+ struct intel_desc_offset *begin,
+ struct intel_desc_offset *end)
{
uint32_t surface_size = 0, sampler_size = 0;
struct intel_desc_offset alloc;
@@ -227,6 +228,9 @@
sampler_size += size.sampler * tc->count;
}
+ surface_size *= max_sets;
+ sampler_size *= max_sets;
+
intel_desc_offset_set(&alloc, surface_size, sampler_size);
*begin = region->cur;
@@ -385,7 +389,7 @@
pool->dev = dev;
- ret = intel_desc_region_alloc(dev->desc_region, info,
+ ret = intel_desc_region_alloc(dev->desc_region, max_sets, info,
&pool->region_begin, &pool->region_end);
if (ret != VK_SUCCESS) {
intel_base_destroy(&pool->obj.base);