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


Linked vertex stage:


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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 62 65
                              Source GLSL 450
                              Name 4  "main"
                              Name 14  "S"
                              MemberName 14(S) 0  "a"
                              MemberName 14(S) 1  "b"
                              MemberName 14(S) 2  "c"
                              Name 19  "Block140"
                              MemberName 19(Block140) 0  "u"
                              MemberName 19(Block140) 1  "s"
                              MemberName 19(Block140) 2  "v"
                              Name 21  "inst140"
                              Name 23  "S"
                              MemberName 23(S) 0  "a"
                              MemberName 23(S) 1  "b"
                              MemberName 23(S) 2  "c"
                              Name 26  "Block430"
                              MemberName 26(Block430) 0  "u"
                              MemberName 26(Block430) 1  "s"
                              MemberName 26(Block430) 2  "v"
                              Name 28  "inst430"
                              Name 29  "S"
                              MemberName 29(S) 0  "a"
                              MemberName 29(S) 1  "b"
                              MemberName 29(S) 2  "c"
                              Name 31  "s"
                              Name 32  "T"
                              MemberName 32(T) 0  "m"
                              MemberName 32(T) 1  "a"
                              Name 34  "t"
                              Name 35  "T"
                              MemberName 35(T) 0  "m"
                              MemberName 35(T) 1  "a"
                              Name 36  "Nestor"
                              MemberName 36(Nestor) 0  "nestorT"
                              Name 37  "Bt1"
                              MemberName 37(Bt1) 0  "nt"
                              Name 39  "Btn1"
                              Name 40  "T"
                              MemberName 40(T) 0  "m"
                              MemberName 40(T) 1  "a"
                              Name 41  "Nestor"
                              MemberName 41(Nestor) 0  "nestorT"
                              Name 42  "Bt2"
                              MemberName 42(Bt2) 0  "nt"
                              Name 44  "Btn2"
                              Name 45  "Bt3"
                              MemberName 45(Bt3) 0  "ntcol"
                              MemberName 45(Bt3) 1  "ntrow"
                              Name 47  "Btn3"
                              Name 48  "T"
                              MemberName 48(T) 0  "m"
                              MemberName 48(T) 1  "a"
                              Name 49  "Nestor"
                              MemberName 49(Nestor) 0  "nestorT"
                              Name 50  "bBt1"
                              MemberName 50(bBt1) 0  "nt"
                              Name 52  "bBtn1"
                              Name 53  "T"
                              MemberName 53(T) 0  "m"
                              MemberName 53(T) 1  "a"
                              Name 54  "Nestor"
                              MemberName 54(Nestor) 0  "nestorT"
                              Name 55  "bBt2"
                              MemberName 55(bBt2) 0  "nt"
                              Name 57  "bBtn2"
                              Name 58  "bBt3"
                              MemberName 58(bBt3) 0  "ntcol"
                              MemberName 58(bBt3) 1  "ntrow"
                              Name 60  "bBtn3"
                              Name 62  "sout"
                              Name 63  "S"
                              MemberName 63(S) 0  "a"
                              MemberName 63(S) 1  "b"
                              MemberName 63(S) 2  "c"
                              Name 65  "soutinv"
                              Decorate 13 ArrayStride 32
                              MemberDecorate 14(S) 0 Offset 0
                              MemberDecorate 14(S) 1 ColMajor
                              MemberDecorate 14(S) 1 RelaxedPrecision
                              MemberDecorate 14(S) 1 Offset 16
                              MemberDecorate 14(S) 1 MatrixStride 16
                              MemberDecorate 14(S) 2 RelaxedPrecision
                              MemberDecorate 14(S) 2 Offset 144
                              Decorate 16 ArrayStride 160
                              Decorate 18 ArrayStride 480
                              MemberDecorate 19(Block140) 0 RelaxedPrecision
                              MemberDecorate 19(Block140) 0 Offset 0
                              MemberDecorate 19(Block140) 1 Offset 16
                              MemberDecorate 19(Block140) 2 RelaxedPrecision
                              MemberDecorate 19(Block140) 2 Offset 976
                              Decorate 19(Block140) Block
                              Decorate 21(inst140) DescriptorSet 0
                              Decorate 21(inst140) Binding 0
                              Decorate 22 ArrayStride 16
                              MemberDecorate 23(S) 0 Offset 0
                              MemberDecorate 23(S) 1 ColMajor
                              MemberDecorate 23(S) 1 RelaxedPrecision
                              MemberDecorate 23(S) 1 Offset 16
                              MemberDecorate 23(S) 1 MatrixStride 8
                              MemberDecorate 23(S) 2 RelaxedPrecision
                              MemberDecorate 23(S) 2 Offset 80
                              Decorate 24 ArrayStride 96
                              Decorate 25 ArrayStride 288
                              MemberDecorate 26(Block430) 0 RelaxedPrecision
                              MemberDecorate 26(Block430) 0 Offset 0
                              MemberDecorate 26(Block430) 1 Offset 16
                              MemberDecorate 26(Block430) 2 RelaxedPrecision
                              MemberDecorate 26(Block430) 2 Offset 592
                              Decorate 26(Block430) BufferBlock
                              Decorate 28(inst430) DescriptorSet 0
                              Decorate 28(inst430) Binding 1
                              MemberDecorate 29(S) 1 RelaxedPrecision
                              MemberDecorate 29(S) 2 RelaxedPrecision
                              MemberDecorate 35(T) 0 RowMajor
                              MemberDecorate 35(T) 0 Offset 0
                              MemberDecorate 35(T) 0 MatrixStride 16
                              MemberDecorate 35(T) 1 Offset 32
                              MemberDecorate 36(Nestor) 0 Offset 0
                              MemberDecorate 37(Bt1) 0 Offset 0
                              Decorate 37(Bt1) Block
                              Decorate 39(Btn1) DescriptorSet 1
                              Decorate 39(Btn1) Binding 0
                              MemberDecorate 40(T) 0 ColMajor
                              MemberDecorate 40(T) 0 Offset 0
                              MemberDecorate 40(T) 0 MatrixStride 16
                              MemberDecorate 40(T) 1 Offset 32
                              MemberDecorate 41(Nestor) 0 Offset 0
                              MemberDecorate 42(Bt2) 0 Offset 0
                              Decorate 42(Bt2) Block
                              Decorate 44(Btn2) DescriptorSet 1
                              Decorate 44(Btn2) Binding 0
                              MemberDecorate 45(Bt3) 0 Offset 0
                              MemberDecorate 45(Bt3) 1 Offset 48
                              Decorate 45(Bt3) Block
                              Decorate 47(Btn3) DescriptorSet 1
                              Decorate 47(Btn3) Binding 0
                              MemberDecorate 48(T) 0 RowMajor
                              MemberDecorate 48(T) 0 Offset 0
                              MemberDecorate 48(T) 0 MatrixStride 8
                              MemberDecorate 48(T) 1 Offset 16
                              MemberDecorate 49(Nestor) 0 Offset 0
                              MemberDecorate 50(bBt1) 0 Offset 0
                              Decorate 50(bBt1) BufferBlock
                              Decorate 52(bBtn1) DescriptorSet 1
                              Decorate 52(bBtn1) Binding 0
                              MemberDecorate 53(T) 0 ColMajor
                              MemberDecorate 53(T) 0 Offset 0
                              MemberDecorate 53(T) 0 MatrixStride 8
                              MemberDecorate 53(T) 1 Offset 16
                              MemberDecorate 54(Nestor) 0 Offset 0
                              MemberDecorate 55(bBt2) 0 Offset 0
                              Decorate 55(bBt2) BufferBlock
                              Decorate 57(bBtn2) DescriptorSet 1
                              Decorate 57(bBtn2) Binding 0
                              MemberDecorate 58(bBt3) 0 Offset 0
                              MemberDecorate 58(bBt3) 1 Offset 24
                              Decorate 58(bBt3) BufferBlock
                              Decorate 60(bBtn3) DescriptorSet 1
                              Decorate 60(bBtn3) Binding 0
                              Decorate 62(sout) Flat
                              MemberDecorate 63(S) 0 Invariant
                              MemberDecorate 63(S) 1 RelaxedPrecision
                              MemberDecorate 63(S) 1 Invariant
                              MemberDecorate 63(S) 2 RelaxedPrecision
                              MemberDecorate 63(S) 2 Invariant
                              Decorate 65(soutinv) Invariant
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeInt 32 0
               8:             TypeVector 7(int) 3
               9:             TypeFloat 32
              10:             TypeVector 9(float) 2
              11:             TypeMatrix 10(fvec2) 2
              12:      7(int) Constant 4
              13:             TypeArray 11 12
           14(S):             TypeStruct 8(ivec3) 13 7(int)
              15:      7(int) Constant 3
              16:             TypeArray 14(S) 15
              17:      7(int) Constant 2
              18:             TypeArray 16 17
    19(Block140):             TypeStruct 6(int) 18 10(fvec2)
              20:             TypePointer Uniform 19(Block140)
     21(inst140):     20(ptr) Variable Uniform
              22:             TypeArray 11 12
           23(S):             TypeStruct 8(ivec3) 22 7(int)
              24:             TypeArray 23(S) 15
              25:             TypeArray 24 17
    26(Block430):             TypeStruct 6(int) 25 10(fvec2)
              27:             TypePointer Uniform 26(Block430)
     28(inst430):     27(ptr) Variable Uniform
           29(S):             TypeStruct 8(ivec3) 13 7(int)
              30:             TypePointer Private 29(S)
           31(s):     30(ptr) Variable Private
           32(T):             TypeStruct 11 6(int)
              33:             TypePointer Private 32(T)
           34(t):     33(ptr) Variable Private
           35(T):             TypeStruct 11 6(int)
      36(Nestor):             TypeStruct 35(T)
         37(Bt1):             TypeStruct 36(Nestor)
              38:             TypePointer Uniform 37(Bt1)
        39(Btn1):     38(ptr) Variable Uniform
           40(T):             TypeStruct 11 6(int)
      41(Nestor):             TypeStruct 40(T)
         42(Bt2):             TypeStruct 41(Nestor)
              43:             TypePointer Uniform 42(Bt2)
        44(Btn2):     43(ptr) Variable Uniform
         45(Bt3):             TypeStruct 41(Nestor) 36(Nestor)
              46:             TypePointer Uniform 45(Bt3)
        47(Btn3):     46(ptr) Variable Uniform
           48(T):             TypeStruct 11 6(int)
      49(Nestor):             TypeStruct 48(T)
        50(bBt1):             TypeStruct 49(Nestor)
              51:             TypePointer Uniform 50(bBt1)
       52(bBtn1):     51(ptr) Variable Uniform
           53(T):             TypeStruct 11 6(int)
      54(Nestor):             TypeStruct 53(T)
        55(bBt2):             TypeStruct 54(Nestor)
              56:             TypePointer Uniform 55(bBt2)
       57(bBtn2):     56(ptr) Variable Uniform
        58(bBt3):             TypeStruct 49(Nestor) 54(Nestor)
              59:             TypePointer Uniform 58(bBt3)
       60(bBtn3):     59(ptr) Variable Uniform
              61:             TypePointer Output 29(S)
        62(sout):     61(ptr) Variable Output
           63(S):             TypeStruct 8(ivec3) 13 7(int)
              64:             TypePointer Output 63(S)
     65(soutinv):     64(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
