Minimum number of texture slots supported?


I’m having trouble finding a minimum number of texture slots Vulkan is guaranteed to support:

I’m guessing that being spread across PC and mobile phone GPUs means we have no guaranteed minimum?


Your link says: maxPerStageDescriptorSampledImages >= 16 and maxDescriptorSetSampledImages >= 16 per supported stage.


The limitation is called maxPerStageDescriptorSampledImages. I’m not sure how you didn’t know this, since I mentioned it in the Bindless Texture thread you created and recently replied to.

Like OpenGL, Vulkan guarantees at least 16.


I believe this minimum probably comes from cell phone GPUs. It’s interesting how some of the functionalities of Vulkan are comparable to OpenGL 4.5, yet some of the hardware limits are relatively low.


It’s also interesting how the minimum for OpenGL 4.5 is also 16 per stage. So that’s where the minimum comes from.


Huh, I thought they increased the minimum to 32 in OpenGL 4.3.


Pretty much all desktop hardware still being supported (ie: GL 4.5 or better) will give you 32, but the actual minimum is fixed to 16. And really, there’s not much need to raise the minimum above that. If you’re needing more than 16 textures in a single shader stage, you’re in bindless territory, so you really should just use that.