KhronosGroup / KhronosGroup/SPIRV-Tools
Need to validate that Location is only applied to things that are allowed to have locations
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 709
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 28
Description
The latest SPIR-V spec currently says of the Location decoration:
> Only valid for the **Input**, **Output**, and **UniformConstant** Storage Classes.
However, the NV_ray_tracing extension also uses it for ray payloads and callable data which have their own storage classes. This bug is being fixed by https://github.com/KhronosGroup/SPIRV-Registry/pull/80. However, to my knowledge, SPV_NV_ray_tracing shaders aren't failing validation so there is a validation check missing here.
Contributor guide
Research direction
Start by locating the validator logic for the Location decoration and the SPV_NV_ray_tracing handling of ray payload and callable data storage classes. Compare the accepted storage classes with the specification and the referenced SPIR-V Registry change; done means validation correctly enforces the allowed cases without rejecting the extension's valid uses.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100