You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers
There exist a few Vulkan 1.2 implementations that don't support any of the descriptor indexing features and report 0 for the above (and similar) limits.
Now the question is, which one is true?
The spec means to say that such a limit only applies if the corresponding feature is supported/enabled, in which case our own validation as well as the validation layers are not compliant.
The spec means what it says, in which case the implementations are supposed to report UINT32_MAX instead of 0 for such a limit.
The latter option seems strange to me personally, because logically speaking, I don't see a difference between descriptor indexing with no supported features vs. the extension not being supported at all. In any case, with these devices as it stands, it's impossible to create a valid pipeline layout that has any descriptors at all.
The text was updated successfully, but these errors were encountered:
Does that mean if any descriptor set layout enables update after bind, then all descriptors of the type must respect the limit, or only the update after bind descriptors (or something else)? Just to get a concrete idea on implementation.
I think it would only be the descriptor sets that use update-after-bind that are counted, but it'll have to go through actual review first. It might be the case that if there is mix and match in the layout you have to respect both limits, but I don't know the answer now.
To update here, the UAB limits count towards all descriptors, but UAB limits must be greater-or-equal to the normal limits. However, I think the UAB limit only needs to apply if UAB is supported at all (otherwise the property is 0), so that's the spec bug that needs fixing.
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036 (and similar) state:
There exist a few Vulkan 1.2 implementations that don't support any of the descriptor indexing features and report
0
for the above (and similar) limits.Now the question is, which one is true?
UINT32_MAX
instead of0
for such a limit.The latter option seems strange to me personally, because logically speaking, I don't see a difference between descriptor indexing with no supported features vs. the extension not being supported at all. In any case, with these devices as it stands, it's impossible to create a valid pipeline layout that has any descriptors at all.
The text was updated successfully, but these errors were encountered: