KhronosGroup / KhronosGroup/Vulkan-Docs

VUID-RuntimeSpirv-Location-06272 does not account for built-ins

Open
#2,293 1 comment 0 reactions 1 assignee Claimed by @spencer-lunarg View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.