Hi I’m studying Vulkan API, specifically on VkDescriptorPoolsize.
To be obvious for my question, I need to explain the basics of VkDescriptorPool.
According to my study, we have to create VkDescriptorPool and then,
we can allocate VkDescriptorSets from the pool.
when creating VkDescriptorPool, we have to insert two data : VkDescriptorPoolSize, maxSets.
the maxSets is the easy one, because it specifies how many descriptorSets we can allocate from the pool.
the problem is VkDescriptorPoolSize. We have to specify the count and the type of Descriptors in VkDescriptorPoolSize, which will be used across all VkDescriptorSets from the pool.
Is my explanation correct? If so, my real question is…
when I specify less count than what I will use,
omit types that I will use in the VkDescriptorPoolSize,
I’ve not met any error message.
I even tried to set 0 count for VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and
skip the VK_DESCRIPTOR_TYPE_COMBIEND_IMAGE_SAMPLER in VkDescriptorPoolSize.
But I didn’t meet any error message.
In addition, the application does the same thing, regardless of the VkDescriptorPoolSize.
(I just used the Willems offscreen Example.)
Finally I’m here with my questions :
- Why does not Vulkan tell me any errors? (I’m also using LunarG Validatoin Check)
- What’s the overhead if I specify less/more count in VkDescriptorPoolSize than what I will use ?
- What’s the overhead if i skip some descriptor type in VkDescriptorPoolSize?
Thank you in Advance!