|
@@ -189,17 +189,18 @@ static void SetupVulkan(ImVector<const char*> instance_extensions)
|
|
|
}
|
|
|
|
|
|
// Create Descriptor Pool
|
|
|
- // The example only requires a single combined image sampler descriptor for the font image and only uses one descriptor set (for that)
|
|
|
- // If you wish to load e.g. additional textures you may need to alter pools sizes.
|
|
|
+ // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets.
|
|
|
{
|
|
|
VkDescriptorPoolSize pool_sizes[] =
|
|
|
{
|
|
|
- { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1 },
|
|
|
+ { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE },
|
|
|
};
|
|
|
VkDescriptorPoolCreateInfo pool_info = {};
|
|
|
pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
|
|
|
pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
|
|
|
- pool_info.maxSets = 1;
|
|
|
+ pool_info.maxSets = 0;
|
|
|
+ for (VkDescriptorPoolSize& pool_size : pool_sizes)
|
|
|
+ pool_info.maxSets += pool_size.descriptorCount;
|
|
|
pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes);
|
|
|
pool_info.pPoolSizes = pool_sizes;
|
|
|
err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
|