Accept gl_ViewportMask in version 430 and later

Was previously accepted only in 450 or later.

Fixes #2785
This commit is contained in:
Greg Fischer 2021-10-20 13:48:22 -06:00
parent 6351fcef28
commit 6639be7c2d
3 changed files with 29 additions and 18 deletions

View file

@ -1,8 +1,7 @@
spv.viewportArray2.tesc
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 25
// Id's are bound by 23
Capability Tessellation
Capability ShaderViewportIndexLayerNV
@ -11,23 +10,21 @@ Validation failed
Extension "SPV_NV_viewport_array2"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 14 16 22 24
EntryPoint TessellationControl 4 "main" 14 16 22
ExecutionMode 4 OutputVertices 4
Source GLSL 450
Source GLSL 430
SourceExtension "GL_NV_viewport_array2"
Name 4 "main"
Name 10 "gl_PerVertex"
MemberName 10(gl_PerVertex) 0 "gl_ViewportMask"
Name 14 "gl_out"
Name 16 "gl_InvocationID"
Name 22 "gl_ViewportIndex"
Name 24 "gl_Layer"
Name 22 "gl_Layer"
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ViewportMaskNV
Decorate 10(gl_PerVertex) Block
Decorate 16(gl_InvocationID) BuiltIn InvocationId
Decorate 22(gl_ViewportIndex) BuiltIn ViewportIndex
Decorate 24(gl_Layer) BuiltIn Layer
Decorate 24(gl_Layer) ViewportRelativeNV
Decorate 22(gl_Layer) BuiltIn Layer
Decorate 22(gl_Layer) ViewportRelativeNV
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -44,14 +41,11 @@ Validation failed
18: 6(int) Constant 0
19: 6(int) Constant 1
20: TypePointer Output 6(int)
22(gl_ViewportIndex): 20(ptr) Variable Output
23: 6(int) Constant 2
24(gl_Layer): 20(ptr) Variable Output
22(gl_Layer): 20(ptr) Variable Output
4(main): 2 Function None 3
5: Label
17: 6(int) Load 16(gl_InvocationID)
21: 20(ptr) AccessChain 14(gl_out) 17 18 18
Store 21 19
Store 22(gl_ViewportIndex) 23
Return
FunctionEnd

View file

@ -1,4 +1,4 @@
#version 450
#version 430
#extension GL_NV_viewport_array2 :require
layout(vertices = 4) out;
@ -12,5 +12,4 @@ layout (viewport_relative) out highp int gl_Layer;
void main()
{
gl_out[gl_InvocationID].gl_ViewportMask[0] = 1;
gl_ViewportIndex = 2;
}