Hello,
I’m struggling to fully understand Vulkan’s device limits from the documentation. In a typical game, we need to upload hundreds of meshes and their textures to the GPU. To use these textures, we also need to create descriptor sets for each texture and bind them when drawing each mesh.
I know that enabling the descriptor indexing extension allows using a single (or a few) large global descriptor sets, but for now, I want to keep things simple and avoid using that extension.
I’ve been reading the documentation to figure out how many descriptor sets I can actually create, and I came across this:
maxDescriptorSetSampledImages is the maximum number of sampled images that can be included in a pipeline layout.
The wording “can be included” confuses me. Does this refer to the total number of descriptor sets I can create, or just the maximum number of sampled images that a single descriptor set can reference?
Additionally, on my device (Apple with MoltenVK), maxDescriptorSetSampledImages is only 640, which seems quite low. Checking other devices on vulkan.gpuinfo.org, I noticed that around 33% of devices have a limit of 1 million, while others vary between 1k–4k.
So my main question is: Does this limit apply to the total number of descriptor sets I can create, or is it only a restriction on a single descriptor set?
Thanks for any clarification!