KhronosGroup / KhronosGroup/SPIRV-Tools
OpenGL validation: builtin inputs and outputs don't have to be in a single block
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 709
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 28
Description
Function CheckDecorationsOfEntryPoints requires builtin variables as inputs and outputs of an entry point to exist only in a single Block-decorated structure.
https://github.com/KhronosGroup/SPIRV-Tools/blob/master/source/validate_decorations.cpp#L124
This is not required for OpenGL.
See for example the last sentence in 7.4.1 says: "Built-in inputs or outputs not found in blocks do not affect interface matching. Any such built-in inputs are well-defined unless they are derived from built-in outputs not written by the previous shader stage."
Contributor guide
Research direction
Start in source/validate_decorations.cpp at CheckDecorationsOfEntryPoints and compare its single-Block requirement with the OpenGL 7.4.1 rule quoted in the issue. Confirm which builtin inputs and outputs may be outside blocks, then verify that validation no longer rejects the permitted arrangement.
Written by the indexing model from the issue text.
Assessment
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100