link.vk.multiBlocksValid.0.0.vert
Shader version: 430
0:? Sequence
0:43  Function Definition: main( ( global void)
0:43    Function Parameters: 
0:45    Sequence
0:45      move second child to first child ( temp highp 4-component vector of float)
0:45        'oColor' ( smooth out highp 4-component vector of float)
0:45        component-wise multiply ( temp highp 4-component vector of float)
0:45          component-wise multiply ( temp highp 4-component vector of float)
0:45            color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:45              'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:45              Constant:
0:45                0 (const int)
0:45            Function Call: getColor2( ( global highp 4-component vector of float)
0:45          c: direct index for structure (layout( column_major std430 offset=0) buffer highp 4-component vector of float)
0:45            'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
0:45            Constant:
0:45              0 (const int)
0:46      move second child to first child ( temp highp 4-component vector of float)
0:46        v1: direct index for structure ( out highp 4-component vector of float)
0:46          'oV' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:46          Constant:
0:46            0 (const int)
0:46        color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:46          'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:46          Constant:
0:46            0 (const int)
0:48      move second child to first child ( temp highp 4-component vector of float)
0:48        gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
0:48          'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:48          Constant:
0:48            0 (const uint)
0:48        matrix-times-vector ( temp highp 4-component vector of float)
0:48          uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float)
0:48            'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:48            Constant:
0:48              0 (const int)
0:48          Function Call: getWorld( ( global highp 4-component vector of float)
0:?   Linker Objects
0:?     'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:?     'oV' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:?     'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:?     'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p})
0:?     'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
0:?     'oColor' ( smooth out highp 4-component vector of float)
0:?     'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out unsized 1-element array of float ClipDistance gl_ClipDistance})

link.vk.multiBlocksValid.0.1.vert
Shader version: 430
0:? Sequence
0:36  Function Definition: getColor2( ( global highp 4-component vector of float)
0:36    Function Parameters: 
0:38    Sequence
0:38      Branch: Return with expression
0:38        color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float)
0:38          'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:38          Constant:
0:38            2 (const int)
0:41  Function Definition: getWorld( ( global highp 4-component vector of float)
0:41    Function Parameters: 
0:43    Sequence
0:43      move second child to first child ( temp highp 4-component vector of float)
0:43        v1: direct index for structure ( out highp 4-component vector of float)
0:43          'anon@0' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:43          Constant:
0:43            0 (const uint)
0:43        Constant:
0:43          1.000000
0:43          1.000000
0:43          1.000000
0:43          1.000000
0:44      Branch: Return with expression
0:44        matrix-times-vector ( temp highp 4-component vector of float)
0:44          uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float)
0:44            'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:44            Constant:
0:44              1 (const int)
0:44          'P' ( in highp 4-component vector of float)
0:?   Linker Objects
0:?     'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:?     'uBuffer' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p})
0:?     'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:?     'anon@0' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:?     'P' ( in highp 4-component vector of float)


Linked vertex stage:

WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
    vertex stage: Block: ColorBlock Instance: uC: ""
    vertex stage: Block: ColorBlock Instance: uColor: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
    vertex stage: Block: BufferBlock Instance: uBuf: ""
    vertex stage: Block: BufferBlock Instance: uBuffer: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
    vertex stage: Block: MatrixBlock Instance: uM: ""
    vertex stage: Block: MatrixBlock Instance: uMatrix: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
    vertex stage: Block: Vertex Instance: oV: ""
    vertex stage: Block: Vertex Instance: anon@0: ""

Shader version: 430
0:? Sequence
0:43  Function Definition: main( ( global void)
0:43    Function Parameters: 
0:45    Sequence
0:45      move second child to first child ( temp highp 4-component vector of float)
0:45        'oColor' ( smooth out highp 4-component vector of float)
0:45        component-wise multiply ( temp highp 4-component vector of float)
0:45          component-wise multiply ( temp highp 4-component vector of float)
0:45            color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:45              'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:45              Constant:
0:45                0 (const int)
0:45            Function Call: getColor2( ( global highp 4-component vector of float)
0:45          c: direct index for structure (layout( column_major std430 offset=0) buffer highp 4-component vector of float)
0:45            'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
0:45            Constant:
0:45              0 (const int)
0:46      move second child to first child ( temp highp 4-component vector of float)
0:46        v1: direct index for structure ( out highp 4-component vector of float)
0:46          'oV' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:46          Constant:
0:46            0 (const int)
0:46        color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:46          'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:46          Constant:
0:46            0 (const int)
0:48      move second child to first child ( temp highp 4-component vector of float)
0:48        gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
0:48          'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out 1-element array of float ClipDistance gl_ClipDistance})
0:48          Constant:
0:48            0 (const uint)
0:48        matrix-times-vector ( temp highp 4-component vector of float)
0:48          uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float)
0:48            'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:48            Constant:
0:48              0 (const int)
0:48          Function Call: getWorld( ( global highp 4-component vector of float)
0:36  Function Definition: getColor2( ( global highp 4-component vector of float)
0:36    Function Parameters: 
0:38    Sequence
0:38      Branch: Return with expression
0:38        color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float)
0:38          'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:38          Constant:
0:38            2 (const int)
0:41  Function Definition: getWorld( ( global highp 4-component vector of float)
0:41    Function Parameters: 
0:43    Sequence
0:43      move second child to first child ( temp highp 4-component vector of float)
0:43        v1: direct index for structure ( out highp 4-component vector of float)
0:43          'anon@0' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:43          Constant:
0:43            0 (const uint)
0:43        Constant:
0:43          1.000000
0:43          1.000000
0:43          1.000000
0:43          1.000000
0:44      Branch: Return with expression
0:44        matrix-times-vector ( temp highp 4-component vector of float)
0:44          uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float)
0:44            'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:44            Constant:
0:44              1 (const int)
0:44          'P' ( in highp 4-component vector of float)
0:?   Linker Objects
0:?     'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
0:?     'oV' ( out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2})
0:?     'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
0:?     'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p})
0:?     'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
0:?     'oColor' ( smooth out highp 4-component vector of float)
0:?     'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out 1-element array of float ClipDistance gl_ClipDistance})
0:?     'P' ( in highp 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 73

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 14 34 42 65
                              Source GLSL 430
                              Name 4  "main"
                              Name 9  "getColor2("
                              Name 11  "getWorld("
                              Name 14  "oColor"
                              Name 16  "ColorBlock"
                              MemberName 16(ColorBlock) 0  "color1"
                              MemberName 16(ColorBlock) 1  "b"
                              MemberName 16(ColorBlock) 2  "color2"
                              MemberName 16(ColorBlock) 3  "color3"
                              Name 18  "uC"
                              Name 26  "SecondaryColorBlock"
                              MemberName 26(SecondaryColorBlock) 0  "c"
                              Name 28  "uColorBuf"
                              Name 32  "Vertex"
                              MemberName 32(Vertex) 0  "v1"
                              MemberName 32(Vertex) 1  "v2"
                              Name 34  "oV"
                              Name 40  "gl_PerVertex"
                              MemberName 40(gl_PerVertex) 0  "gl_Position"
                              MemberName 40(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 40(gl_PerVertex) 2  "gl_ClipDistance"
                              Name 42  ""
                              Name 44  "MatrixBlock"
                              MemberName 44(MatrixBlock) 0  "uProj"
                              MemberName 44(MatrixBlock) 1  "uWorld"
                              Name 46  "uM"
                              Name 65  "P"
                              Name 70  "BufferBlock"
                              MemberName 70(BufferBlock) 0  "p"
                              Name 72  "uBuf"
                              Decorate 14(oColor) Location 2
                              MemberDecorate 16(ColorBlock) 0 Offset 0
                              MemberDecorate 16(ColorBlock) 1 Offset 16
                              MemberDecorate 16(ColorBlock) 2 Offset 32
                              MemberDecorate 16(ColorBlock) 3 Offset 48
                              Decorate 16(ColorBlock) Block
                              Decorate 18(uC) DescriptorSet 0
                              Decorate 18(uC) Binding 1
                              MemberDecorate 26(SecondaryColorBlock) 0 Offset 0
                              Decorate 26(SecondaryColorBlock) BufferBlock
                              Decorate 28(uColorBuf) DescriptorSet 0
                              Decorate 28(uColorBuf) Binding 0
                              Decorate 32(Vertex) Block
                              Decorate 34(oV) Location 0
                              MemberDecorate 40(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 40(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 40(gl_PerVertex) 2 BuiltIn ClipDistance
                              Decorate 40(gl_PerVertex) Block
                              MemberDecorate 44(MatrixBlock) 0 ColMajor
                              MemberDecorate 44(MatrixBlock) 0 Offset 0
                              MemberDecorate 44(MatrixBlock) 0 MatrixStride 16
                              MemberDecorate 44(MatrixBlock) 1 ColMajor
                              MemberDecorate 44(MatrixBlock) 1 Offset 64
                              MemberDecorate 44(MatrixBlock) 1 MatrixStride 16
                              Decorate 44(MatrixBlock) Block
                              Decorate 46(uM) DescriptorSet 0
                              Decorate 46(uM) Binding 0
                              Decorate 65(P) Location 0
                              MemberDecorate 70(BufferBlock) 0 ColMajor
                              MemberDecorate 70(BufferBlock) 0 Offset 0
                              MemberDecorate 70(BufferBlock) 0 MatrixStride 16
                              Decorate 70(BufferBlock) BufferBlock
                              Decorate 72(uBuf) DescriptorSet 0
                              Decorate 72(uBuf) Binding 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              13:             TypePointer Output 7(fvec4)
      14(oColor):     13(ptr) Variable Output
              15:             TypeInt 32 0
  16(ColorBlock):             TypeStruct 7(fvec4) 15(int) 7(fvec4) 7(fvec4)
              17:             TypePointer Uniform 16(ColorBlock)
          18(uC):     17(ptr) Variable Uniform
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              21:             TypePointer Uniform 7(fvec4)
26(SecondaryColorBlock):             TypeStruct 7(fvec4)
              27:             TypePointer Uniform 26(SecondaryColorBlock)
   28(uColorBuf):     27(ptr) Variable Uniform
      32(Vertex):             TypeStruct 7(fvec4) 7(fvec4)
              33:             TypePointer Output 32(Vertex)
          34(oV):     33(ptr) Variable Output
              38:     15(int) Constant 1
              39:             TypeArray 6(float) 38
40(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 39
              41:             TypePointer Output 40(gl_PerVertex)
              42:     41(ptr) Variable Output
              43:             TypeMatrix 7(fvec4) 4
 44(MatrixBlock):             TypeStruct 43 43
              45:             TypePointer Uniform 44(MatrixBlock)
          46(uM):     45(ptr) Variable Uniform
              47:             TypePointer Uniform 43
              53:     19(int) Constant 2
              58:    6(float) Constant 1065353216
              59:    7(fvec4) ConstantComposite 58 58 58 58
              61:     19(int) Constant 1
              64:             TypePointer Input 7(fvec4)
           65(P):     64(ptr) Variable Input
 70(BufferBlock):             TypeStruct 43
              71:             TypePointer Uniform 70(BufferBlock)
        72(uBuf):     71(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
              22:     21(ptr) AccessChain 18(uC) 20
              23:    7(fvec4) Load 22
              24:    7(fvec4) FunctionCall 9(getColor2()
              25:    7(fvec4) FMul 23 24
              29:     21(ptr) AccessChain 28(uColorBuf) 20
              30:    7(fvec4) Load 29
              31:    7(fvec4) FMul 25 30
                              Store 14(oColor) 31
              35:     21(ptr) AccessChain 18(uC) 20
              36:    7(fvec4) Load 35
              37:     13(ptr) AccessChain 34(oV) 20
                              Store 37 36
              48:     47(ptr) AccessChain 46(uM) 20
              49:          43 Load 48
              50:    7(fvec4) FunctionCall 11(getWorld()
              51:    7(fvec4) MatrixTimesVector 49 50
              52:     13(ptr) AccessChain 42 20
                              Store 52 51
                              Return
                              FunctionEnd
   9(getColor2():    7(fvec4) Function None 8
              10:             Label
              54:     21(ptr) AccessChain 18(uC) 53
              55:    7(fvec4) Load 54
                              ReturnValue 55
                              FunctionEnd
   11(getWorld():    7(fvec4) Function None 8
              12:             Label
              60:     13(ptr) AccessChain 34(oV) 20
                              Store 60 59
              62:     47(ptr) AccessChain 46(uM) 61
              63:          43 Load 62
              66:    7(fvec4) Load 65(P)
              67:    7(fvec4) MatrixTimesVector 63 66
                              ReturnValue 67
                              FunctionEnd
