Hello. I’ve been struggling to understand how descriptor sets and pools work. My understanding is that DescriptorSetLayouts are like structs/classes in C++, and that an instance would be a DescriptorSet, allocated from a pool. For a single draw object following the various tutorials this mental model works fine.
However, when I wish to create a few more objects (eg. another 2 triangles with a different uniform transform data), just like in C++, I create an instance (DescriptorSet) of the same DescriptorSetLayout. The mental model I have is that I allocate a new DescriptorSet from a pool, however this is where I run into trouble. This will only work if DescriptorPoolSize.descriptorCount = 3 (or higher) for each DescriptorPoolSize.type::eUniformBuffer., and the DescriptorPoolCreateInfo.maxSets must also be 3 (or higher).
From this experiment, my mental model is assuming that DescriptorPoolSize.descriptorCount is the max pool size. If I had thousands of scenes to draw, I’d have 1000’s of uniform buffers (with transform). Both DescriptorPoolSize.descriptorCount and DescriptorPoolCreateInfo.maxSets should then bet 1000? Is this mental model correct?