KhronosGroup / KhronosGroup/Vulkan-Docs
VUID-RuntimeSpirv-Location-06272 does not account for built-ins
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
Following on from #2291, I noticed that VUID-RuntimeSpirv-Location-06272 does not account for built-in variables:
> The sum of `Location` and the number of locations the variable it decorates consumes must be less than or equal to the value for the matching `Execution Model` defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-iointerfaces-limits
The linked section of the spec says this, which seems somewhat like a contradiction:
> All variables in both the built-in interface block and the user-defined variable interface count against these limits. Each effective `Location` must have a value less than the number of `Location` slots available for the given interface
If we assume that these limits require all locations to be less than the limit, then since built-ins never have a `Location` decoration, they can't count towards this limit. But it says at the same time that they do count towards the limit. If I follow the letter of 06272, and every single available location is filled with user-defined variables, where do the built-ins get stored?
Additionally, since the spec mentions specifically built-in interface **block**, does that mean that individual built-in variables do not count towards the limit?
Contributor guide
Assessment
This issue has not been assessed yet.