KhronosGroup / KhronosGroup/SPIRV-Tools

OpenGL validation: builtin inputs and outputs don't have to be in a single block

Open
#1,360 1 comment 0 reactions 0 assignees View on GitHub
component:validation
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.