link.multiBlocksValid.1.0.vert
Shader version: 430
0:? Sequence
0:26  Function Definition: main( ( global void)
0:26    Function Parameters: 
0:28    Sequence
0:28      move second child to first child ( temp 4-component vector of float)
0:28        'oColor' ( smooth out 4-component vector of float)
0:28        component-wise multiply ( temp 4-component vector of float)
0:28          color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:28            'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:28            Constant:
0:28              0 (const int)
0:28          Function Call: getColor2( ( global 4-component vector of float)
0:29      move second child to first child ( temp 4-component vector of float)
0:29        v1: direct index for structure ( out 4-component vector of float)
0:29          'b' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:29          Constant:
0:29            0 (const int)
0:29        color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:29          'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:29          Constant:
0:29            0 (const int)
0:31      move second child to first child ( temp 4-component vector of float)
0:31        gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:31          '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,  gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex,  out 4-component vector of float FrontColor gl_FrontColor,  out 4-component vector of float BackColor gl_BackColor,  out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor,  out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor,  out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord,  out float FogFragCoord gl_FogFragCoord})
0:31          Constant:
0:31            0 (const uint)
0:31        matrix-times-vector ( temp 4-component vector of float)
0:31          uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float)
0:31            'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:31            Constant:
0:31              0 (const int)
0:31          Function Call: getWorld( ( global 4-component vector of float)
0:?   Linker Objects
0:?     'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:?     'b' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:?     'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:?     'oColor' ( smooth out 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,  gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex,  out 4-component vector of float FrontColor gl_FrontColor,  out 4-component vector of float BackColor gl_BackColor,  out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor,  out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor,  out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord,  out float FogFragCoord gl_FogFragCoord})
0:?     'gl_VertexID' ( gl_VertexId int VertexId)
0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)

link.multiBlocksValid.1.1.vert
Shader version: 430
0:? Sequence
0:24  Function Definition: getColor2( ( global 4-component vector of float)
0:24    Function Parameters: 
0:26    Sequence
0:26      Branch: Return with expression
0:26        color2: direct index for structure (layout( column_major std140 offset=16) uniform 4-component vector of float)
0:26          'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:26          Constant:
0:26            1 (const int)
0:29  Function Definition: getWorld( ( global 4-component vector of float)
0:29    Function Parameters: 
0:31    Sequence
0:31      Branch: Return with expression
0:31        matrix-times-vector ( temp 4-component vector of float)
0:31          uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float)
0:31            'b' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:31            Constant:
0:31              1 (const int)
0:31          'P' ( in 4-component vector of float)
0:32      move second child to first child ( temp 4-component vector of float)
0:32        v2: direct index for structure ( out 4-component vector of float)
0:32          'c' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:32          Constant:
0:32            1 (const int)
0:32        Constant:
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:?   Linker Objects
0:?     'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:?     'b' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:?     'c' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:?     'P' ( in 4-component vector of float)
0:?     'gl_VertexID' ( gl_VertexId int VertexId)
0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)


Linked vertex stage:

WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
    c: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}" versus a: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
    a: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}" versus b: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
    b: " out block{ out 4-component vector of float v1,  out 4-component vector of float v2}" versus c: " out block{ out 4-component vector of float v1,  out 4-component vector of float v2}"

Shader version: 430
0:? Sequence
0:26  Function Definition: main( ( global void)
0:26    Function Parameters: 
0:28    Sequence
0:28      move second child to first child ( temp 4-component vector of float)
0:28        'oColor' ( smooth out 4-component vector of float)
0:28        component-wise multiply ( temp 4-component vector of float)
0:28          color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:28            'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:28            Constant:
0:28              0 (const int)
0:28          Function Call: getColor2( ( global 4-component vector of float)
0:29      move second child to first child ( temp 4-component vector of float)
0:29        v1: direct index for structure ( out 4-component vector of float)
0:29          'b' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:29          Constant:
0:29            0 (const int)
0:29        color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:29          'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:29          Constant:
0:29            0 (const int)
0:31      move second child to first child ( temp 4-component vector of float)
0:31        gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:31          '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,  gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex,  out 4-component vector of float FrontColor gl_FrontColor,  out 4-component vector of float BackColor gl_BackColor,  out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor,  out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor,  out 1-element array of 4-component vector of float TexCoord gl_TexCoord,  out float FogFragCoord gl_FogFragCoord})
0:31          Constant:
0:31            0 (const uint)
0:31        matrix-times-vector ( temp 4-component vector of float)
0:31          uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float)
0:31            'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:31            Constant:
0:31              0 (const int)
0:31          Function Call: getWorld( ( global 4-component vector of float)
0:24  Function Definition: getColor2( ( global 4-component vector of float)
0:24    Function Parameters: 
0:26    Sequence
0:26      Branch: Return with expression
0:26        color2: direct index for structure (layout( column_major std140 offset=16) uniform 4-component vector of float)
0:26          'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:26          Constant:
0:26            1 (const int)
0:29  Function Definition: getWorld( ( global 4-component vector of float)
0:29    Function Parameters: 
0:31    Sequence
0:31      Branch: Return with expression
0:31        matrix-times-vector ( temp 4-component vector of float)
0:31          uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float)
0:31            'b' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:31            Constant:
0:31              1 (const int)
0:31          'P' ( in 4-component vector of float)
0:32      move second child to first child ( temp 4-component vector of float)
0:32        v2: direct index for structure ( out 4-component vector of float)
0:32          'c' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:32          Constant:
0:32            1 (const int)
0:32        Constant:
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:32          1.000000
0:?   Linker Objects
0:?     'a' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:?     'b' ( out block{ out 4-component vector of float v1,  out 4-component vector of float v2})
0:?     'c' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2})
0:?     'oColor' ( smooth out 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,  gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex,  out 4-component vector of float FrontColor gl_FrontColor,  out 4-component vector of float BackColor gl_BackColor,  out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor,  out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor,  out 1-element array of 4-component vector of float TexCoord gl_TexCoord,  out float FogFragCoord gl_FogFragCoord})
0:?     'gl_VertexID' ( gl_VertexId int VertexId)
0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
0:?     'P' ( in 4-component vector of float)

