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): 80009
// 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"
                              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 64(Vertex) Block
                              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
               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
