glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
David Neto fb53f83503
Avoid spuriously adding Geometry capability for vert, tesc, tese (#2462)
Use of gl_Layer and gl_ViewportIndex in tessellation and vertex
shaders should not trigger the addition of the Geometry capability.

Fixes #2461

Added tests for use of gl_Layer and gl_ViewportIndex in a tessellation
evaluation shader.

Several tests for NVIDIA features for tessellation, vertex, or mesh
shaders now lose the Geometry or MultiViewport capabilities.
This is ok because the functionality is already covered by
the ShaderViewportIndexLayerNV capability.

The spv.meshShaderPerViewBuiltins.mesh test now fails validation
because the validator does not know that PrimitiveId (and possibly
other) builtins are enabled by the MeshShadingNV capability.
I filed https://github.com/KhronosGroup/SPIRV-Headers/issues/179 to
fix the grammar upstream.
2020-11-12 13:00:16 -07:00

215 lines
12 KiB
Plaintext

spv.meshShaderPerViewBuiltins.mesh
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 126
Capability PerViewAttributesNV
Capability MeshShadingNV
Extension "SPV_NVX_multiview_per_view_attributes"
Extension "SPV_NV_mesh_shader"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint MeshNV 4 "main" 11 20 21 40 72
ExecutionMode 4 LocalSize 32 1 1
ExecutionMode 4 OutputVertices 81
ExecutionMode 4 OutputPrimitivesNV 32
ExecutionMode 4 OutputTrianglesNV
Source GLSL 450
SourceExtension "GL_NV_mesh_shader"
Name 4 "main"
Name 8 "iid"
Name 11 "gl_LocalInvocationID"
Name 16 "viewID"
Name 20 "gl_MeshViewIndicesNV"
Name 21 "gl_MeshViewCountNV"
Name 36 "gl_MeshPerVertexNV"
MemberName 36(gl_MeshPerVertexNV) 0 "gl_Position"
MemberName 36(gl_MeshPerVertexNV) 1 "gl_PointSize"
MemberName 36(gl_MeshPerVertexNV) 2 "gl_ClipDistance"
MemberName 36(gl_MeshPerVertexNV) 3 "gl_CullDistance"
MemberName 36(gl_MeshPerVertexNV) 4 "gl_PositionPerViewNV"
MemberName 36(gl_MeshPerVertexNV) 5 "gl_ClipDistancePerViewNV"
MemberName 36(gl_MeshPerVertexNV) 6 "gl_CullDistancePerViewNV"
Name 40 "gl_MeshVerticesNV"
Name 68 "gl_MeshPerPrimitiveNV"
MemberName 68(gl_MeshPerPrimitiveNV) 0 "gl_PrimitiveID"
MemberName 68(gl_MeshPerPrimitiveNV) 1 "gl_Layer"
MemberName 68(gl_MeshPerPrimitiveNV) 2 "gl_ViewportIndex"
MemberName 68(gl_MeshPerPrimitiveNV) 3 "gl_ViewportMask"
MemberName 68(gl_MeshPerPrimitiveNV) 4 "gl_LayerPerViewNV"
MemberName 68(gl_MeshPerPrimitiveNV) 5 "gl_ViewportMaskPerViewNV"
Name 72 "gl_MeshPrimitivesNV"
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV
Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV
MemberDecorate 36(gl_MeshPerVertexNV) 0 BuiltIn Position
MemberDecorate 36(gl_MeshPerVertexNV) 1 BuiltIn PointSize
MemberDecorate 36(gl_MeshPerVertexNV) 2 BuiltIn ClipDistance
MemberDecorate 36(gl_MeshPerVertexNV) 3 BuiltIn CullDistance
MemberDecorate 36(gl_MeshPerVertexNV) 4 PerViewNV
MemberDecorate 36(gl_MeshPerVertexNV) 4 BuiltIn PositionPerViewNV
MemberDecorate 36(gl_MeshPerVertexNV) 5 PerViewNV
MemberDecorate 36(gl_MeshPerVertexNV) 5 BuiltIn ClipDistancePerViewNV
MemberDecorate 36(gl_MeshPerVertexNV) 6 PerViewNV
MemberDecorate 36(gl_MeshPerVertexNV) 6 BuiltIn CullDistancePerViewNV
Decorate 36(gl_MeshPerVertexNV) Block
MemberDecorate 68(gl_MeshPerPrimitiveNV) 0 PerPrimitiveNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 0 BuiltIn PrimitiveId
MemberDecorate 68(gl_MeshPerPrimitiveNV) 1 PerPrimitiveNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 1 BuiltIn Layer
MemberDecorate 68(gl_MeshPerPrimitiveNV) 2 PerPrimitiveNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 2 BuiltIn ViewportIndex
MemberDecorate 68(gl_MeshPerPrimitiveNV) 3 PerPrimitiveNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 3 BuiltIn ViewportMaskNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 4 PerPrimitiveNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 4 PerViewNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 4 BuiltIn LayerPerViewNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 5 PerPrimitiveNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 5 PerViewNV
MemberDecorate 68(gl_MeshPerPrimitiveNV) 5 BuiltIn ViewportMaskPerViewNV
Decorate 68(gl_MeshPerPrimitiveNV) Block
Decorate 125 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypeVector 6(int) 3
10: TypePointer Input 9(ivec3)
11(gl_LocalInvocationID): 10(ptr) Variable Input
12: 6(int) Constant 0
13: TypePointer Input 6(int)
17: 6(int) Constant 4
18: TypeArray 6(int) 17
19: TypePointer Input 18
20(gl_MeshViewIndicesNV): 19(ptr) Variable Input
21(gl_MeshViewCountNV): 13(ptr) Variable Input
26: TypeFloat 32
27: TypeVector 26(float) 4
28: 6(int) Constant 1
29: TypeArray 26(float) 28
30: TypeArray 27(fvec4) 17
31: 6(int) Constant 3
32: TypeArray 26(float) 31
33: TypeArray 32 17
34: TypeArray 26(float) 17
35: TypeArray 34 17
36(gl_MeshPerVertexNV): TypeStruct 27(fvec4) 26(float) 29 29 30 33 35
37: 6(int) Constant 81
38: TypeArray 36(gl_MeshPerVertexNV) 37
39: TypePointer Output 38
40(gl_MeshVerticesNV): 39(ptr) Variable Output
42: TypeInt 32 1
43: 42(int) Constant 4
45: 26(float) Constant 1065353216
46: 26(float) Constant 1073741824
47: 26(float) Constant 1077936128
48: 26(float) Constant 1082130432
49: 27(fvec4) ConstantComposite 45 46 47 48
50: TypePointer Output 27(fvec4)
53: 42(int) Constant 5
55: 42(int) Constant 2
56: 26(float) Constant 1084227584
57: TypePointer Output 26(float)
60: 42(int) Constant 6
62: 42(int) Constant 3
63: 26(float) Constant 1086324736
65: TypeArray 42(int) 28
66: TypeArray 42(int) 17
67: TypeArray 65 17
68(gl_MeshPerPrimitiveNV): TypeStruct 42(int) 42(int) 42(int) 65 66 67
69: 6(int) Constant 32
70: TypeArray 68(gl_MeshPerPrimitiveNV) 69
71: TypePointer Output 70
72(gl_MeshPrimitivesNV): 71(ptr) Variable Output
75: 42(int) Constant 7
76: TypePointer Output 42(int)
80: 42(int) Constant 0
81: 42(int) Constant 8
83: 6(int) Constant 264
84: 6(int) Constant 2
125: 9(ivec3) ConstantComposite 69 28 28
4(main): 2 Function None 3
5: Label
8(iid): 7(ptr) Variable Function
16(viewID): 7(ptr) Variable Function
14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
15: 6(int) Load 14
Store 8(iid) 15
22: 6(int) Load 21(gl_MeshViewCountNV)
23: 6(int) UMod 22 17
24: 13(ptr) AccessChain 20(gl_MeshViewIndicesNV) 23
25: 6(int) Load 24
Store 16(viewID) 25
41: 6(int) Load 8(iid)
44: 6(int) Load 16(viewID)
51: 50(ptr) AccessChain 40(gl_MeshVerticesNV) 41 43 44
Store 51 49
52: 6(int) Load 8(iid)
54: 6(int) Load 16(viewID)
58: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 52 53 54 55
Store 58 56
59: 6(int) Load 8(iid)
61: 6(int) Load 16(viewID)
64: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 59 60 61 62
Store 64 63
73: 6(int) Load 8(iid)
74: 6(int) Load 16(viewID)
77: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 73 43 74
Store 77 75
78: 6(int) Load 8(iid)
79: 6(int) Load 16(viewID)
82: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 78 53 79 80
Store 82 81
MemoryBarrier 28 83
ControlBarrier 84 84 83
85: 6(int) Load 8(iid)
86: 6(int) IAdd 85 28
87: 6(int) Load 16(viewID)
88: 6(int) Load 8(iid)
89: 6(int) Load 16(viewID)
90: 50(ptr) AccessChain 40(gl_MeshVerticesNV) 88 43 89
91: 27(fvec4) Load 90
92: 50(ptr) AccessChain 40(gl_MeshVerticesNV) 86 43 87
Store 92 91
93: 6(int) Load 8(iid)
94: 6(int) IAdd 93 28
95: 6(int) Load 16(viewID)
96: 6(int) Load 8(iid)
97: 6(int) Load 16(viewID)
98: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 96 53 97 55
99: 26(float) Load 98
100: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 94 53 95 55
Store 100 99
101: 6(int) Load 8(iid)
102: 6(int) IAdd 101 28
103: 6(int) Load 16(viewID)
104: 6(int) Load 8(iid)
105: 6(int) Load 16(viewID)
106: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 104 60 105 62
107: 26(float) Load 106
108: 57(ptr) AccessChain 40(gl_MeshVerticesNV) 102 60 103 62
Store 108 107
109: 6(int) Load 8(iid)
110: 6(int) IAdd 109 28
111: 6(int) Load 16(viewID)
112: 6(int) Load 8(iid)
113: 6(int) Load 16(viewID)
114: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 112 43 113
115: 42(int) Load 114
116: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 110 43 111
Store 116 115
117: 6(int) Load 8(iid)
118: 6(int) IAdd 117 28
119: 6(int) Load 16(viewID)
120: 6(int) Load 8(iid)
121: 6(int) Load 16(viewID)
122: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 120 53 121 80
123: 42(int) Load 122
124: 76(ptr) AccessChain 72(gl_MeshPrimitivesNV) 118 53 119 80
Store 124 123
MemoryBarrier 28 83
ControlBarrier 84 84 83
Return
FunctionEnd