You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a set of non-trivial constraints in SPIR-V & Vulkan specs regarding decorating variables with:
location & binding qualifiers
interpolation and patch qualifiers
offset and alignment
Especially nested interface blocks / structs / arrays need to follow rules defined in "14.1. Shader Input and Output Interfaces" Vulkan spec chapter to get SPIR-V shaders properly "linked" during pipeline creation.
As there are apps (including glslang - KhronosGroup/glslang#269) misusing the decorations it would be good to have these checked in SPIR-V validator.
The text was updated successfully, but these errors were encountered:
dneto0
changed the title
Add validity checks for OpDecorate and OpMemberDecorate in validator
Add Vulkan validity checks for OpDecorate and OpMemberDecorate in validator
Jan 27, 2017
Note that spvValidate currently operates on a single binary, so I think this issue implies that it should actually take a list of binaries in order to validate consistent decorations, e.g. the outs of a VS should match the ins of a FS.
rjodinchr
pushed a commit
to rjodinchr/SPIRV-Tools
that referenced
this issue
Jun 22, 2022
If there are validation rules that are still not being check, please open a new issue. Many new validation rules have been added already. I'm not sure what specifically is still missing.
There is a set of non-trivial constraints in SPIR-V & Vulkan specs regarding decorating variables with:
Especially nested interface blocks / structs / arrays need to follow rules defined in "14.1. Shader Input and Output Interfaces" Vulkan spec chapter to get SPIR-V shaders properly "linked" during pipeline creation.
As there are apps (including glslang - KhronosGroup/glslang#269) misusing the decorations it would be good to have these checked in SPIR-V validator.
The text was updated successfully, but these errors were encountered: