glslang/Test/baseResults/spv.viewportArray2.tesc.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

58 lines
2.9 KiB
Plaintext

spv.viewportArray2.tesc
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 25
Capability Tessellation
Capability ShaderViewportIndexLayerNV
Capability ShaderViewportMaskNV
Extension "SPV_EXT_shader_viewport_index_layer"
Extension "SPV_NV_viewport_array2"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 14 16 22 24
ExecutionMode 4 OutputVertices 4
Source GLSL 450
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"
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
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeInt 32 0
8: 7(int) Constant 2
9: TypeArray 6(int) 8
10(gl_PerVertex): TypeStruct 9
11: 7(int) Constant 4
12: TypeArray 10(gl_PerVertex) 11
13: TypePointer Output 12
14(gl_out): 13(ptr) Variable Output
15: TypePointer Input 6(int)
16(gl_InvocationID): 15(ptr) Variable Input
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
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