spv.450.tesc
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.


Linked tessellation control stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "main" 9 16 20 23
                              ExecutionMode 4 OutputVertices 4
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "patchOut"
                              Name 10  "S"
                              MemberName 10(S) 0  "sMem1"
                              MemberName 10(S) 1  "sMem2"
                              Name 11  "TheBlock"
                              MemberName 11(TheBlock) 0  "bMem1"
                              MemberName 11(TheBlock) 1  "bMem2"
                              MemberName 11(TheBlock) 2  "s"
                              Name 16  "tcBlock"
                              Name 17  "S"
                              MemberName 17(S) 0  "sMem1"
                              MemberName 17(S) 1  "sMem2"
                              Name 18  "SingleBlock"
                              MemberName 18(SingleBlock) 0  "bMem1"
                              MemberName 18(SingleBlock) 1  "bMem2"
                              MemberName 18(SingleBlock) 2  "s"
                              Name 20  "singleBlock"
                              Name 21  "bn"
                              MemberName 21(bn) 0  "v1"
                              MemberName 21(bn) 1  "v2"
                              MemberName 21(bn) 2  "v3"
                              Name 23  ""
                              Decorate 9(patchOut) Patch
                              MemberDecorate 11(TheBlock) 0 Patch
                              MemberDecorate 11(TheBlock) 1 Patch
                              MemberDecorate 11(TheBlock) 2 Patch
                              Decorate 11(TheBlock) Block
                              Decorate 16(tcBlock) Location 12
                              MemberDecorate 18(SingleBlock) 0 Patch
                              MemberDecorate 18(SingleBlock) 0 Location 2
                              MemberDecorate 18(SingleBlock) 1 Patch
                              MemberDecorate 18(SingleBlock) 1 Location 3
                              MemberDecorate 18(SingleBlock) 2 Patch
                              MemberDecorate 18(SingleBlock) 2 Location 4
                              Decorate 18(SingleBlock) Block
                              Decorate 20(singleBlock) Location 2
                              MemberDecorate 21(bn) 0 Patch
                              MemberDecorate 21(bn) 0 Location 20
                              MemberDecorate 21(bn) 0 Component 0
                              MemberDecorate 21(bn) 1 Patch
                              MemberDecorate 21(bn) 1 Location 24
                              MemberDecorate 21(bn) 2 Patch
                              MemberDecorate 21(bn) 2 Location 25
                              MemberDecorate 21(bn) 2 Component 0
                              Decorate 21(bn) Block
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
     9(patchOut):      8(ptr) Variable Output
           10(S):             TypeStruct 6(float) 6(float)
    11(TheBlock):             TypeStruct 6(float) 6(float) 10(S)
              12:             TypeInt 32 0
              13:     12(int) Constant 2
              14:             TypeArray 11(TheBlock) 13
              15:             TypePointer Output 14
     16(tcBlock):     15(ptr) Variable Output
           17(S):             TypeStruct 6(float) 6(float)
 18(SingleBlock):             TypeStruct 6(float) 6(float) 17(S)
              19:             TypePointer Output 18(SingleBlock)
 20(singleBlock):     19(ptr) Variable Output
          21(bn):             TypeStruct 7(fvec4) 7(fvec4) 7(fvec4)
              22:             TypePointer Output 21(bn)
              23:     22(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
