I did implement a check for the number of uniform buffers, but I might have only checked the maxDescriptorSetUniformBuffers. But what happens if this limit is ignored? Does the pipeline layout become invalid? It would seem to be the case since the shader I am using is using push constants to update the texture and position. However, the return value from vkCreateDescriptorSetLayout is VK_SUCCESS (and the validation layers accepts the code too), which must’ve been why I missed it.
Also, is there a reason why the maxDescriptorSetUniformBuffers is 72 but the closest GL counterpart GL_MAX_UNIFORM_BUFFER_BINDINGS is 84 on the same driver? And why is the nvidia driver seemingly only implementing the absolute minimum? It can be seen not only with this case but also with pixel formats, image blits and copies, and using the different tiling flags.
That being said, any Vulkan implementation should, to be safe, be implemented against the specification’s lower limits.
Thanks for your help!