link.vk.multiBlocksValid.1.0.geom
Shader version: 430
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:48  Function Definition: main( ( global void)
0:48    Function Parameters: 
0:50    Sequence
0:50      move second child to first child ( temp highp 4-component vector of float)
0:50        'oColor' (layout( stream=0) out highp 4-component vector of float)
0:50        component-wise multiply ( temp highp 4-component vector of float)
0:50          color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:50            '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:50            Constant:
0:50              0 (const int)
0:50          Function Call: getColor2( ( global highp 4-component vector of float)
0:52      move second child to first child ( temp highp float)
0:52        'globalF' ( global highp float)
0:52        Constant:
0:52          1.000000
0:54      Sequence
0:54        Sequence
0:54          move second child to first child ( temp highp int)
0:54            'i' ( temp highp int)
0:54            Constant:
0:54              0 (const int)
0:54        Loop with condition tested first
0:54          Loop Condition
0:54          Compare Less Than ( temp bool)
0:54            'i' ( temp highp int)
0:54            Constant:
0:54              3 (const int)
0:54          Loop Body
0:56          Sequence
0:56            move second child to first child ( temp highp 4-component vector of float)
0:56              gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position)
0:56                'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})
0:56                Constant:
0:56                  0 (const uint)
0:56              matrix-times-vector ( temp highp 4-component vector of float)
0:56                uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float)
0:56                  '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:56                  Constant:
0:56                    0 (const int)
0:56                Function Call: getWorld(i1; ( global highp 4-component vector of float)
0:56                  'i' ( temp highp int)
0:57            move second child to first child ( temp highp 4-component vector of float)
0:57              val1: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:57                'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
0:57                Constant:
0:57                  0 (const int)
0:57              add ( temp highp 4-component vector of float)
0:57                color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:57                  '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:57                  Constant:
0:57                    0 (const int)
0:57                vector-scale ( temp highp 4-component vector of float)
0:57                  v2: direct index for structure ( in highp 4-component vector of float)
0:57                    indirect index ( temp block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:57                      'iV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:57                      'i' ( temp highp int)
0:57                    Constant:
0:57                      1 (const int)
0:57                  'globalF' ( global highp float)
0:58            EmitVertex ( global void)
0:54          Loop Terminal Expression
0:54          Post-Increment ( temp highp int)
0:54            'i' ( temp highp int)
0:61      EndPrimitive ( global void)
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:?     'iV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:?     'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
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:?     'oColor' (layout( stream=0) out highp 4-component vector of float)
0:?     'globalF' ( global highp float)
0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance})

link.vk.multiBlocksValid.1.1.geom
Shader version: 430
invocations = -1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:44  Function Definition: getColor2( ( global highp 4-component vector of float)
0:44    Function Parameters: 
0:46    Sequence
0:46      Branch: Return with expression
0:46        color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float)
0:46          '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:46          Constant:
0:46            2 (const int)
0:49  Function Definition: getWorld(i1; ( global highp 4-component vector of float)
0:49    Function Parameters: 
0:49      'i' ( in highp int)
0:51    Sequence
0:51      move second child to first child ( temp highp 4-component vector of float)
0:51        val1: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:51          'anon@0' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
0:51          Constant:
0:51            0 (const uint)
0:51        Constant:
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:52      Branch: Return with expression
0:52        matrix-times-vector ( temp highp 4-component vector of float)
0:52          uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float)
0:52            '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:52            Constant:
0:52              1 (const int)
0:52          v1: direct index for structure ( in highp 4-component vector of float)
0:52            indirect index ( temp block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:52              'iVV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:52              'i' ( in highp int)
0:52            Constant:
0:52              0 (const int)
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' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
0:?     'iVV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:?     'P' ( in 3-element array of highp 4-component vector of float)


Linked geometry stage:

WARNING: Linking geometry 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 geometry 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 geometry 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 geometry stage: Matched shader interfaces are using different instance names.
    oV: "layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}" versus anon@0: "layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}"
WARNING: Linking geometry stage: Matched shader interfaces are using different instance names.
    iV: " in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2}" versus iVV: " in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2}"

Shader version: 430
invocations = 1
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:48  Function Definition: main( ( global void)
0:48    Function Parameters: 
0:50    Sequence
0:50      move second child to first child ( temp highp 4-component vector of float)
0:50        'oColor' (layout( stream=0) out highp 4-component vector of float)
0:50        component-wise multiply ( temp highp 4-component vector of float)
0:50          color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:50            '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:50            Constant:
0:50              0 (const int)
0:50          Function Call: getColor2( ( global highp 4-component vector of float)
0:52      move second child to first child ( temp highp float)
0:52        'globalF' ( global highp float)
0:52        Constant:
0:52          1.000000
0:54      Sequence
0:54        Sequence
0:54          move second child to first child ( temp highp int)
0:54            'i' ( temp highp int)
0:54            Constant:
0:54              0 (const int)
0:54        Loop with condition tested first
0:54          Loop Condition
0:54          Compare Less Than ( temp bool)
0:54            'i' ( temp highp int)
0:54            Constant:
0:54              3 (const int)
0:54          Loop Body
0:56          Sequence
0:56            move second child to first child ( temp highp 4-component vector of float)
0:56              gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position)
0:56                'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:56                Constant:
0:56                  0 (const uint)
0:56              matrix-times-vector ( temp highp 4-component vector of float)
0:56                uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float)
0:56                  '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:56                  Constant:
0:56                    0 (const int)
0:56                Function Call: getWorld(i1; ( global highp 4-component vector of float)
0:56                  'i' ( temp highp int)
0:57            move second child to first child ( temp highp 4-component vector of float)
0:57              val1: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:57                'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
0:57                Constant:
0:57                  0 (const int)
0:57              add ( temp highp 4-component vector of float)
0:57                color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
0:57                  '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:57                  Constant:
0:57                    0 (const int)
0:57                vector-scale ( temp highp 4-component vector of float)
0:57                  v2: direct index for structure ( in highp 4-component vector of float)
0:57                    indirect index ( temp block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:57                      'iV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:57                      'i' ( temp highp int)
0:57                    Constant:
0:57                      1 (const int)
0:57                  'globalF' ( global highp float)
0:58            EmitVertex ( global void)
0:54          Loop Terminal Expression
0:54          Post-Increment ( temp highp int)
0:54            'i' ( temp highp int)
0:61      EndPrimitive ( global void)
0:44  Function Definition: getColor2( ( global highp 4-component vector of float)
0:44    Function Parameters: 
0:46    Sequence
0:46      Branch: Return with expression
0:46        color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float)
0:46          '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:46          Constant:
0:46            2 (const int)
0:49  Function Definition: getWorld(i1; ( global highp 4-component vector of float)
0:49    Function Parameters: 
0:49      'i' ( in highp int)
0:51    Sequence
0:51      move second child to first child ( temp highp 4-component vector of float)
0:51        val1: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:51          'anon@0' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
0:51          Constant:
0:51            0 (const uint)
0:51        Constant:
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:52      Branch: Return with expression
0:52        matrix-times-vector ( temp highp 4-component vector of float)
0:52          uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float)
0:52            '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:52            Constant:
0:52              1 (const int)
0:52          v1: direct index for structure ( in highp 4-component vector of float)
0:52            indirect index ( temp block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:52              'iVV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:52              'i' ( in highp int)
0:52            Constant:
0:52              0 (const int)
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:?     'iV' ( in 3-element array of block{ in highp 4-component vector of float v1,  in highp 4-component vector of float v2})
0:?     'oV' (layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1})
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:?     'oColor' (layout( stream=0) out highp 4-component vector of float)
0:?     'globalF' ( global highp float)
0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
0:?     'P' ( in 3-element array of highp 4-component vector of float)

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

                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 18 46 61 68 100
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputTriangleStrip
                              ExecutionMode 4 OutputVertices 3
                              Source GLSL 430
                              Name 4  "main"
                              Name 9  "getColor2("
                              Name 15  "getWorld(i1;"
                              Name 14  "i"
                              Name 18  "oColor"
                              Name 20  "ColorBlock"
                              MemberName 20(ColorBlock) 0  "color1"
                              MemberName 20(ColorBlock) 1  "b"
                              MemberName 20(ColorBlock) 2  "color2"
                              MemberName 20(ColorBlock) 3  "color3"
                              Name 22  "uC"
                              Name 30  "globalF"
                              Name 32  "i"
                              Name 44  "gl_PerVertex"
                              MemberName 44(gl_PerVertex) 0  "gl_Position"
                              MemberName 44(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 44(gl_PerVertex) 2  "gl_ClipDistance"
                              Name 46  ""
                              Name 48  "MatrixBlock"
                              MemberName 48(MatrixBlock) 0  "uProj"
                              MemberName 48(MatrixBlock) 1  "uWorld"
                              Name 50  "uM"
                              Name 54  "param"
                              Name 59  "Vertex"
                              MemberName 59(Vertex) 0  "val1"
                              Name 61  "oV"
                              Name 64  "Vertex"
                              MemberName 64(Vertex) 0  "v1"
                              MemberName 64(Vertex) 1  "v2"
                              Name 68  "iV"
                              Name 95  "BufferBlock"
                              MemberName 95(BufferBlock) 0  "p"
                              Name 97  "uBuf"
                              Name 100  "P"
                              Decorate 18(oColor) Location 1
                              MemberDecorate 20(ColorBlock) 0 Offset 0
                              MemberDecorate 20(ColorBlock) 1 Offset 16
                              MemberDecorate 20(ColorBlock) 2 Offset 32
                              MemberDecorate 20(ColorBlock) 3 Offset 48
                              Decorate 20(ColorBlock) Block
                              Decorate 22(uC) DescriptorSet 0
                              Decorate 22(uC) Binding 1
                              MemberDecorate 44(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 44(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 44(gl_PerVertex) 2 BuiltIn ClipDistance
                              Decorate 44(gl_PerVertex) Block
                              MemberDecorate 48(MatrixBlock) 0 ColMajor
                              MemberDecorate 48(MatrixBlock) 0 Offset 0
                              MemberDecorate 48(MatrixBlock) 0 MatrixStride 16
                              MemberDecorate 48(MatrixBlock) 1 ColMajor
                              MemberDecorate 48(MatrixBlock) 1 Offset 64
                              MemberDecorate 48(MatrixBlock) 1 MatrixStride 16
                              Decorate 48(MatrixBlock) Block
                              Decorate 50(uM) DescriptorSet 0
                              Decorate 50(uM) Binding 0
                              Decorate 59(Vertex) Block
                              Decorate 61(oV) Location 0
                              Decorate 64(Vertex) Block
                              Decorate 68(iV) Location 0
                              MemberDecorate 95(BufferBlock) 0 ColMajor
                              MemberDecorate 95(BufferBlock) 0 Offset 0
                              MemberDecorate 95(BufferBlock) 0 MatrixStride 16
                              Decorate 95(BufferBlock) BufferBlock
                              Decorate 97(uBuf) DescriptorSet 0
                              Decorate 97(uBuf) Binding 1
                              Decorate 100(P) Location 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeInt 32 1
              12:             TypePointer Function 11(int)
              13:             TypeFunction 7(fvec4) 12(ptr)
              17:             TypePointer Output 7(fvec4)
      18(oColor):     17(ptr) Variable Output
              19:             TypeInt 32 0
  20(ColorBlock):             TypeStruct 7(fvec4) 19(int) 7(fvec4) 7(fvec4)
              21:             TypePointer Uniform 20(ColorBlock)
          22(uC):     21(ptr) Variable Uniform
              23:     11(int) Constant 0
              24:             TypePointer Uniform 7(fvec4)
              29:             TypePointer Private 6(float)
     30(globalF):     29(ptr) Variable Private
              31:    6(float) Constant 1065353216
              39:     11(int) Constant 3
              40:             TypeBool
              42:     19(int) Constant 1
              43:             TypeArray 6(float) 42
44(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 43
              45:             TypePointer Output 44(gl_PerVertex)
              46:     45(ptr) Variable Output
              47:             TypeMatrix 7(fvec4) 4
 48(MatrixBlock):             TypeStruct 47 47
              49:             TypePointer Uniform 48(MatrixBlock)
          50(uM):     49(ptr) Variable Uniform
              51:             TypePointer Uniform 47
      59(Vertex):             TypeStruct 7(fvec4)
              60:             TypePointer Output 59(Vertex)
          61(oV):     60(ptr) Variable Output
      64(Vertex):             TypeStruct 7(fvec4) 7(fvec4)
              65:     19(int) Constant 3
              66:             TypeArray 64(Vertex) 65
              67:             TypePointer Input 66
          68(iV):     67(ptr) Variable Input
              70:     11(int) Constant 1
              71:             TypePointer Input 7(fvec4)
              80:     11(int) Constant 2
              85:    7(fvec4) ConstantComposite 31 31 31 31
 95(BufferBlock):             TypeStruct 47
              96:             TypePointer Uniform 95(BufferBlock)
        97(uBuf):     96(ptr) Variable Uniform
              98:             TypeArray 7(fvec4) 65
              99:             TypePointer Input 98
          100(P):     99(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
           32(i):     12(ptr) Variable Function
       54(param):     12(ptr) Variable Function
              25:     24(ptr) AccessChain 22(uC) 23
              26:    7(fvec4) Load 25
              27:    7(fvec4) FunctionCall 9(getColor2()
              28:    7(fvec4) FMul 26 27
                              Store 18(oColor) 28
                              Store 30(globalF) 31
                              Store 32(i) 23
                              Branch 33
              33:             Label
                              LoopMerge 35 36 None
                              Branch 37
              37:             Label
              38:     11(int) Load 32(i)
              41:    40(bool) SLessThan 38 39
                              BranchConditional 41 34 35
              34:               Label
              52:     51(ptr)   AccessChain 50(uM) 23
              53:          47   Load 52
              55:     11(int)   Load 32(i)
                                Store 54(param) 55
              56:    7(fvec4)   FunctionCall 15(getWorld(i1;) 54(param)
              57:    7(fvec4)   MatrixTimesVector 53 56
              58:     17(ptr)   AccessChain 46 23
                                Store 58 57
              62:     24(ptr)   AccessChain 22(uC) 23
              63:    7(fvec4)   Load 62
              69:     11(int)   Load 32(i)
              72:     71(ptr)   AccessChain 68(iV) 69 70
              73:    7(fvec4)   Load 72
              74:    6(float)   Load 30(globalF)
              75:    7(fvec4)   VectorTimesScalar 73 74
              76:    7(fvec4)   FAdd 63 75
              77:     17(ptr)   AccessChain 61(oV) 23
                                Store 77 76
                                EmitVertex
                                Branch 36
              36:               Label
              78:     11(int)   Load 32(i)
              79:     11(int)   IAdd 78 70
                                Store 32(i) 79
                                Branch 33
              35:             Label
                              EndPrimitive
                              Return
                              FunctionEnd
   9(getColor2():    7(fvec4) Function None 8
              10:             Label
              81:     24(ptr) AccessChain 22(uC) 80
              82:    7(fvec4) Load 81
                              ReturnValue 82
                              FunctionEnd
15(getWorld(i1;):    7(fvec4) Function None 13
           14(i):     12(ptr) FunctionParameter
              16:             Label
              86:     17(ptr) AccessChain 61(oV) 23
                              Store 86 85
              87:     51(ptr) AccessChain 50(uM) 70
              88:          47 Load 87
              89:     11(int) Load 14(i)
              90:     71(ptr) AccessChain 68(iV) 89 23
              91:    7(fvec4) Load 90
              92:    7(fvec4) MatrixTimesVector 88 91
                              ReturnValue 92
                              FunctionEnd
