spv.viewportArray2.tesc
Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 25

                              Capability Geometry
                              Capability Tessellation
                              Capability MultiViewport
                              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
