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 stage: Matched shader interfaces are using different instance names.
    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}" versus 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}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
    uBuf: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}" versus uBuffer: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
    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}" versus 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}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
    oV: " out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2}" versus anon@0: " out block{ out highp 4-component vector of float v1,  out highp 4-component vector of float v2}"

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): 8000a
// 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
