iomap.crossStage.vk.vert
Shader version: 460
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 highp 4-component vector of float)
0:28        'vgo1' ( smooth out highp 4-component vector of float)
0:28        Constant:
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:29      move second child to first child ( temp highp 2-component vector of float)
0:29        'vgo2' ( smooth out highp 2-component vector of float)
0:29        Constant:
0:29          0.000000
0:29          0.000000
0:30      move second child to first child ( temp highp 4-component vector of float)
0:30        o3: direct index for structure ( out highp 4-component vector of float)
0:30          'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:30          Constant:
0:30            0 (const uint)
0:30        Constant:
0:30          0.000000
0:30          0.000000
0:30          0.000000
0:30          0.000000
0:?   Linker Objects
0:?     'vgo1' ( smooth out highp 4-component vector of float)
0:?     'vgo2' ( smooth out highp 2-component vector of float)
0:?     'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:?     'glass' (layout( binding=0) uniform highp sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float vb1})
0:?     'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})

iomap.crossStage.vk.geom
Shader version: 460
invocations = -1
max_vertices = 3
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:25  Function Definition: main( ( global void)
0:25    Function Parameters: 
0:27    Sequence
0:27      Sequence
0:27        Sequence
0:27          move second child to first child ( temp highp int)
0:27            'i' ( temp highp int)
0:27            Constant:
0:27              0 (const int)
0:27        Loop with condition tested first
0:27          Loop Condition
0:27          Compare Less Than ( temp bool)
0:27            'i' ( temp highp int)
0:27            Constant:
0:27              3 (const int)
0:27          Loop Body
0:28          Sequence
0:28            move second child to first child ( temp highp 4-component vector of float)
0:28              'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:28              Constant:
0:28                0.000000
0:28                0.000000
0:28                0.000000
0:28                0.000000
0:29            move second child to first child ( temp highp 2-component vector of float)
0:29              'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:29              Constant:
0:29                0.000000
0:29                0.000000
0:30            move second child to first child ( temp highp 4-component vector of float)
0:30              o3: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:30                'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:30                Constant:
0:30                  0 (const int)
0:30              o3: direct index for structure ( in highp 4-component vector of float)
0:30                indirect index (layout( location=5) temp block{ in highp 4-component vector of float o3})
0:30                  'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:30                  'i' ( temp highp int)
0:30                Constant:
0:30                  0 (const int)
0:31            EmitVertex ( global void)
0:27          Loop Terminal Expression
0:27          Post-Increment ( temp highp int)
0:27            'i' ( temp highp int)
0:33      EndPrimitive ( global void)
0:?   Linker Objects
0:?     'vgo1' ( in 1-element array of highp 4-component vector of float)
0:?     'vgo2' ( in 1-element array of highp 2-component vector of float)
0:?     'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:?     'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:?     'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:?     'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:?     'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})

iomap.crossStage.vk.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:30  Function Definition: Bar( ( global highp 2-component vector of float)
0:30    Function Parameters: 
0:31    Sequence
0:31      Branch: Return with expression
0:32        add ( temp highp 2-component vector of float)
0:31          add ( temp highp 2-component vector of float)
0:31            fb1: direct index for structure (layout( column_major std430) readonly buffer highp 2-component vector of float)
0:31              'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:31              Constant:
0:31                0 (const uint)
0:32            b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:32              direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32                'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32                Constant:
0:32                  0 (const int)
0:32              Constant:
0:32                1 (const int)
0:33          b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:33            direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33              'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33              Constant:
0:33                1 (const int)
0:33            Constant:
0:33              1 (const int)
0:36  Function Definition: Foo( ( global highp 4-component vector of float)
0:36    Function Parameters: 
0:37    Sequence
0:37      Branch: Return with expression
0:40        add ( temp highp 4-component vector of float)
0:39          add ( temp highp 4-component vector of float)
0:38            add ( temp highp 4-component vector of float)
0:37              add ( temp highp 4-component vector of float)
0:37                a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:37                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:37                  Constant:
0:37                    0 (const uint)
0:38                b: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:38                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:38                  Constant:
0:38                    1 (const uint)
0:39              a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:39                direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39                  'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39                  Constant:
0:39                    0 (const int)
0:39                Constant:
0:39                  0 (const int)
0:40            a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:40              direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40                'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40                Constant:
0:40                  1 (const int)
0:40              Constant:
0:40                0 (const int)
0:41          Construct vec4 ( temp highp 4-component vector of float)
0:41            Function Call: Bar( ( global highp 2-component vector of float)
0:41            Constant:
0:41              0.000000
0:41            Constant:
0:41              0.000000
0:44  Function Definition: main( ( global void)
0:44    Function Parameters: 
0:46    Sequence
0:46      Sequence
0:46        move second child to first child ( temp highp 4-component vector of float)
0:46          'color' ( temp highp 4-component vector of float)
0:46          'gfo1' ( smooth in highp 4-component vector of float)
0:47      move second child to first child ( temp highp 4-component vector of float)
0:47        'color' ( temp highp 4-component vector of float)
0:47        add ( temp highp 4-component vector of float)
0:47          'color' ( temp highp 4-component vector of float)
0:47          Function Call: Foo( ( global highp 4-component vector of float)
0:48      move second child to first child ( temp highp 4-component vector of float)
0:48        'outColor' ( out highp 4-component vector of float)
0:48        'color' ( temp highp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( location=5) in block{ in highp 4-component vector of float o3})
0:?     'gfo1' ( smooth in highp 4-component vector of float)
0:?     'gfo2' ( smooth in highp 2-component vector of float)
0:?     'outColor' ( out highp 4-component vector of float)
0:?     'glass' (layout( binding=0) uniform highp sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})


Linked vertex stage:


Linked geometry stage:


Linked fragment stage:

WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
    blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}"

Shader version: 460
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 highp 4-component vector of float)
0:28        'vgo1' ( smooth out highp 4-component vector of float)
0:28        Constant:
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:29      move second child to first child ( temp highp 2-component vector of float)
0:29        'vgo2' ( smooth out highp 2-component vector of float)
0:29        Constant:
0:29          0.000000
0:29          0.000000
0:30      move second child to first child ( temp highp 4-component vector of float)
0:30        o3: direct index for structure ( out highp 4-component vector of float)
0:30          'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:30          Constant:
0:30            0 (const uint)
0:30        Constant:
0:30          0.000000
0:30          0.000000
0:30          0.000000
0:30          0.000000
0:?   Linker Objects
0:?     'vgo1' ( smooth out highp 4-component vector of float)
0:?     'vgo2' ( smooth out highp 2-component vector of float)
0:?     'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:?     'glass' (layout( binding=0) uniform highp sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float vb1})
0:?     'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
Shader version: 460
invocations = 1
max_vertices = 3
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:25  Function Definition: main( ( global void)
0:25    Function Parameters: 
0:27    Sequence
0:27      Sequence
0:27        Sequence
0:27          move second child to first child ( temp highp int)
0:27            'i' ( temp highp int)
0:27            Constant:
0:27              0 (const int)
0:27        Loop with condition tested first
0:27          Loop Condition
0:27          Compare Less Than ( temp bool)
0:27            'i' ( temp highp int)
0:27            Constant:
0:27              3 (const int)
0:27          Loop Body
0:28          Sequence
0:28            move second child to first child ( temp highp 4-component vector of float)
0:28              'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:28              Constant:
0:28                0.000000
0:28                0.000000
0:28                0.000000
0:28                0.000000
0:29            move second child to first child ( temp highp 2-component vector of float)
0:29              'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:29              Constant:
0:29                0.000000
0:29                0.000000
0:30            move second child to first child ( temp highp 4-component vector of float)
0:30              o3: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:30                'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:30                Constant:
0:30                  0 (const int)
0:30              o3: direct index for structure ( in highp 4-component vector of float)
0:30                indirect index (layout( location=5) temp block{ in highp 4-component vector of float o3})
0:30                  'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:30                  'i' ( temp highp int)
0:30                Constant:
0:30                  0 (const int)
0:31            EmitVertex ( global void)
0:27          Loop Terminal Expression
0:27          Post-Increment ( temp highp int)
0:27            'i' ( temp highp int)
0:33      EndPrimitive ( global void)
0:?   Linker Objects
0:?     'vgo1' ( in 1-element array of highp 4-component vector of float)
0:?     'vgo2' ( in 1-element array of highp 2-component vector of float)
0:?     'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:?     'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:?     'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:?     'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:?     'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:30  Function Definition: Bar( ( global highp 2-component vector of float)
0:30    Function Parameters: 
0:31    Sequence
0:31      Branch: Return with expression
0:32        add ( temp highp 2-component vector of float)
0:31          add ( temp highp 2-component vector of float)
0:31            fb1: direct index for structure (layout( column_major std430) readonly buffer highp 2-component vector of float)
0:31              'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:31              Constant:
0:31                0 (const uint)
0:32            b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:32              direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32                'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32                Constant:
0:32                  0 (const int)
0:32              Constant:
0:32                1 (const int)
0:33          b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:33            direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33              'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33              Constant:
0:33                1 (const int)
0:33            Constant:
0:33              1 (const int)
0:36  Function Definition: Foo( ( global highp 4-component vector of float)
0:36    Function Parameters: 
0:37    Sequence
0:37      Branch: Return with expression
0:40        add ( temp highp 4-component vector of float)
0:39          add ( temp highp 4-component vector of float)
0:38            add ( temp highp 4-component vector of float)
0:37              add ( temp highp 4-component vector of float)
0:37                a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:37                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:37                  Constant:
0:37                    0 (const uint)
0:38                b: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:38                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:38                  Constant:
0:38                    1 (const uint)
0:39              a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:39                direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39                  'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39                  Constant:
0:39                    0 (const int)
0:39                Constant:
0:39                  0 (const int)
0:40            a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:40              direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40                'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40                Constant:
0:40                  1 (const int)
0:40              Constant:
0:40                0 (const int)
0:41          Construct vec4 ( temp highp 4-component vector of float)
0:41            Function Call: Bar( ( global highp 2-component vector of float)
0:41            Constant:
0:41              0.000000
0:41            Constant:
0:41              0.000000
0:44  Function Definition: main( ( global void)
0:44    Function Parameters: 
0:46    Sequence
0:46      Sequence
0:46        move second child to first child ( temp highp 4-component vector of float)
0:46          'color' ( temp highp 4-component vector of float)
0:46          'gfo1' ( smooth in highp 4-component vector of float)
0:47      move second child to first child ( temp highp 4-component vector of float)
0:47        'color' ( temp highp 4-component vector of float)
0:47        add ( temp highp 4-component vector of float)
0:47          'color' ( temp highp 4-component vector of float)
0:47          Function Call: Foo( ( global highp 4-component vector of float)
0:48      move second child to first child ( temp highp 4-component vector of float)
0:48        'outColor' ( out highp 4-component vector of float)
0:48        'color' ( temp highp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( location=5) in block{ in highp 4-component vector of float o3})
0:?     'gfo1' ( smooth in highp 4-component vector of float)
0:?     'gfo2' ( smooth in highp 2-component vector of float)
0:?     'outColor' ( out highp 4-component vector of float)
0:?     'glass' (layout( binding=0) uniform highp sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 14 18
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "vgo1"
                              Name 14  "vgo2"
                              Name 16  "outBlock"
                              MemberName 16(outBlock) 0  "o3"
                              Name 18  ""
                              Name 25  "glass"
                              Name 26  "crossStageBlock1"
                              MemberName 26(crossStageBlock1) 0  "a"
                              MemberName 26(crossStageBlock1) 1  "b"
                              Name 28  ""
                              Name 29  "vertOnlyBlock"
                              MemberName 29(vertOnlyBlock) 0  "vb1"
                              Name 31  ""
                              Name 32  "crossStageBlock2"
                              MemberName 32(crossStageBlock2) 0  "a"
                              MemberName 32(crossStageBlock2) 1  "b"
                              Name 37  "blockName1"
                              Decorate 9(vgo1) Location 0
                              Decorate 14(vgo2) Location 1
                              Decorate 16(outBlock) Block
                              Decorate 18 Location 5
                              Decorate 25(glass) DescriptorSet 0
                              Decorate 25(glass) Binding 0
                              MemberDecorate 26(crossStageBlock1) 0 Offset 0
                              MemberDecorate 26(crossStageBlock1) 1 Offset 16
                              Decorate 26(crossStageBlock1) Block
                              Decorate 28 DescriptorSet 0
                              Decorate 28 Binding 1
                              MemberDecorate 29(vertOnlyBlock) 0 NonWritable
                              MemberDecorate 29(vertOnlyBlock) 0 Offset 0
                              Decorate 29(vertOnlyBlock) BufferBlock
                              Decorate 31 DescriptorSet 0
                              Decorate 31 Binding 0
                              MemberDecorate 32(crossStageBlock2) 0 Offset 0
                              MemberDecorate 32(crossStageBlock2) 1 Offset 16
                              Decorate 32(crossStageBlock2) Block
                              Decorate 37(blockName1) DescriptorSet 0
                              Decorate 37(blockName1) Binding 3
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
         9(vgo1):      8(ptr) Variable Output
              10:    6(float) Constant 0
              11:    7(fvec4) ConstantComposite 10 10 10 10
              12:             TypeVector 6(float) 2
              13:             TypePointer Output 12(fvec2)
        14(vgo2):     13(ptr) Variable Output
              15:   12(fvec2) ConstantComposite 10 10
    16(outBlock):             TypeStruct 7(fvec4)
              17:             TypePointer Output 16(outBlock)
              18:     17(ptr) Variable Output
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              22:             TypeImage 6(float) 2D sampled format:Unknown
              23:             TypeSampledImage 22
              24:             TypePointer UniformConstant 23
       25(glass):     24(ptr) Variable UniformConstant
26(crossStageBlock1):             TypeStruct 7(fvec4) 7(fvec4)
              27:             TypePointer Uniform 26(crossStageBlock1)
              28:     27(ptr) Variable Uniform
29(vertOnlyBlock):             TypeStruct 12(fvec2)
              30:             TypePointer Uniform 29(vertOnlyBlock)
              31:     30(ptr) Variable Uniform
32(crossStageBlock2):             TypeStruct 7(fvec4) 12(fvec2)
              33:             TypeInt 32 0
              34:     33(int) Constant 2
              35:             TypeArray 32(crossStageBlock2) 34
              36:             TypePointer Uniform 35
  37(blockName1):     36(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
                              Store 9(vgo1) 11
                              Store 14(vgo2) 15
              21:      8(ptr) AccessChain 18 20
                              Store 21 11
                              Return
                              FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 57

                              Capability Geometry
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 22 27 31 37 48 51
                              ExecutionMode 4 InputPoints
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputTriangleStrip
                              ExecutionMode 4 OutputVertices 3
                              Source GLSL 460
                              Name 4  "main"
                              Name 8  "i"
                              Name 22  "gfo1"
                              Name 27  "gfo2"
                              Name 29  "outBlock"
                              MemberName 29(outBlock) 0  "o3"
                              Name 31  "gf_out"
                              Name 32  "outBlock"
                              MemberName 32(outBlock) 0  "o3"
                              Name 37  "inBlock"
                              Name 48  "vgo1"
                              Name 51  "vgo2"
                              Name 52  "crossStageBlock2"
                              MemberName 52(crossStageBlock2) 0  "a"
                              MemberName 52(crossStageBlock2) 1  "b"
                              Name 56  "blockName1"
                              Decorate 22(gfo1) Location 0
                              Decorate 27(gfo2) Location 1
                              Decorate 29(outBlock) Block
                              Decorate 31(gf_out) Location 5
                              Decorate 32(outBlock) Block
                              Decorate 37(inBlock) Location 5
                              Decorate 48(vgo1) Location 0
                              Decorate 51(vgo2) Location 1
                              MemberDecorate 52(crossStageBlock2) 0 Offset 0
                              MemberDecorate 52(crossStageBlock2) 1 Offset 16
                              Decorate 52(crossStageBlock2) Block
                              Decorate 56(blockName1) DescriptorSet 0
                              Decorate 56(blockName1) Binding 3
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 0
              16:      6(int) Constant 3
              17:             TypeBool
              19:             TypeFloat 32
              20:             TypeVector 19(float) 4
              21:             TypePointer Output 20(fvec4)
        22(gfo1):     21(ptr) Variable Output
              23:   19(float) Constant 0
              24:   20(fvec4) ConstantComposite 23 23 23 23
              25:             TypeVector 19(float) 2
              26:             TypePointer Output 25(fvec2)
        27(gfo2):     26(ptr) Variable Output
              28:   25(fvec2) ConstantComposite 23 23
    29(outBlock):             TypeStruct 20(fvec4)
              30:             TypePointer Output 29(outBlock)
      31(gf_out):     30(ptr) Variable Output
    32(outBlock):             TypeStruct 20(fvec4)
              33:             TypeInt 32 0
              34:     33(int) Constant 1
              35:             TypeArray 32(outBlock) 34
              36:             TypePointer Input 35
     37(inBlock):     36(ptr) Variable Input
              39:             TypePointer Input 20(fvec4)
              44:      6(int) Constant 1
              46:             TypeArray 20(fvec4) 34
              47:             TypePointer Input 46
        48(vgo1):     47(ptr) Variable Input
              49:             TypeArray 25(fvec2) 34
              50:             TypePointer Input 49
        51(vgo2):     50(ptr) Variable Input
52(crossStageBlock2):             TypeStruct 20(fvec4) 25(fvec2)
              53:     33(int) Constant 2
              54:             TypeArray 52(crossStageBlock2) 53
              55:             TypePointer Uniform 54
  56(blockName1):     55(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
            8(i):      7(ptr) Variable Function
                              Store 8(i) 9
                              Branch 10
              10:             Label
                              LoopMerge 12 13 None
                              Branch 14
              14:             Label
              15:      6(int) Load 8(i)
              18:    17(bool) SLessThan 15 16
                              BranchConditional 18 11 12
              11:               Label
                                Store 22(gfo1) 24
                                Store 27(gfo2) 28
              38:      6(int)   Load 8(i)
              40:     39(ptr)   AccessChain 37(inBlock) 38 9
              41:   20(fvec4)   Load 40
              42:     21(ptr)   AccessChain 31(gf_out) 9
                                Store 42 41
                                EmitVertex
                                Branch 13
              13:               Label
              43:      6(int)   Load 8(i)
              45:      6(int)   IAdd 43 44
                                Store 8(i) 45
                                Branch 10
              12:             Label
                              EndPrimitive
                              Return
                              FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 81

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 64 70 74 76
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "Bar("
                              Name 13  "Foo("
                              Name 15  "fragOnlyBlock"
                              MemberName 15(fragOnlyBlock) 0  "fb1"
                              Name 17  ""
                              Name 23  "crossStageBlock2"
                              MemberName 23(crossStageBlock2) 0  "a"
                              MemberName 23(crossStageBlock2) 1  "b"
                              Name 28  "blockName2"
                              Name 38  "crossStageBlock1"
                              MemberName 38(crossStageBlock1) 0  "a"
                              MemberName 38(crossStageBlock1) 1  "b"
                              Name 40  ""
                              Name 62  "color"
                              Name 64  "gfo1"
                              Name 70  "outColor"
                              Name 72  "outBlock"
                              MemberName 72(outBlock) 0  "o3"
                              Name 74  ""
                              Name 76  "gfo2"
                              Name 80  "glass"
                              MemberDecorate 15(fragOnlyBlock) 0 NonWritable
                              MemberDecorate 15(fragOnlyBlock) 0 Offset 0
                              Decorate 15(fragOnlyBlock) BufferBlock
                              Decorate 17 DescriptorSet 0
                              Decorate 17 Binding 2
                              MemberDecorate 23(crossStageBlock2) 0 Offset 0
                              MemberDecorate 23(crossStageBlock2) 1 Offset 16
                              Decorate 23(crossStageBlock2) Block
                              Decorate 28(blockName2) DescriptorSet 0
                              Decorate 28(blockName2) Binding 3
                              MemberDecorate 38(crossStageBlock1) 0 Offset 0
                              MemberDecorate 38(crossStageBlock1) 1 Offset 16
                              Decorate 38(crossStageBlock1) Block
                              Decorate 40 DescriptorSet 0
                              Decorate 40 Binding 1
                              Decorate 64(gfo1) Location 0
                              Decorate 70(outColor) Location 0
                              Decorate 72(outBlock) Block
                              Decorate 74 Location 5
                              Decorate 76(gfo2) Location 1
                              Decorate 80(glass) DescriptorSet 0
                              Decorate 80(glass) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypeFunction 7(fvec2)
              11:             TypeVector 6(float) 4
              12:             TypeFunction 11(fvec4)
15(fragOnlyBlock):             TypeStruct 7(fvec2)
              16:             TypePointer Uniform 15(fragOnlyBlock)
              17:     16(ptr) Variable Uniform
              18:             TypeInt 32 1
              19:     18(int) Constant 0
              20:             TypePointer Uniform 7(fvec2)
23(crossStageBlock2):             TypeStruct 11(fvec4) 7(fvec2)
              24:             TypeInt 32 0
              25:     24(int) Constant 2
              26:             TypeArray 23(crossStageBlock2) 25
              27:             TypePointer Uniform 26
  28(blockName2):     27(ptr) Variable Uniform
              29:     18(int) Constant 1
38(crossStageBlock1):             TypeStruct 11(fvec4) 11(fvec4)
              39:             TypePointer Uniform 38(crossStageBlock1)
              40:     39(ptr) Variable Uniform
              41:             TypePointer Uniform 11(fvec4)
              54:    6(float) Constant 0
              61:             TypePointer Function 11(fvec4)
              63:             TypePointer Input 11(fvec4)
        64(gfo1):     63(ptr) Variable Input
              69:             TypePointer Output 11(fvec4)
    70(outColor):     69(ptr) Variable Output
    72(outBlock):             TypeStruct 11(fvec4)
              73:             TypePointer Input 72(outBlock)
              74:     73(ptr) Variable Input
              75:             TypePointer Input 7(fvec2)
        76(gfo2):     75(ptr) Variable Input
              77:             TypeImage 6(float) 2D sampled format:Unknown
              78:             TypeSampledImage 77
              79:             TypePointer UniformConstant 78
       80(glass):     79(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
       62(color):     61(ptr) Variable Function
              65:   11(fvec4) Load 64(gfo1)
                              Store 62(color) 65
              66:   11(fvec4) Load 62(color)
              67:   11(fvec4) FunctionCall 13(Foo()
              68:   11(fvec4) FAdd 66 67
                              Store 62(color) 68
              71:   11(fvec4) Load 62(color)
                              Store 70(outColor) 71
                              Return
                              FunctionEnd
         9(Bar():    7(fvec2) Function None 8
              10:             Label
              21:     20(ptr) AccessChain 17 19
              22:    7(fvec2) Load 21
              30:     20(ptr) AccessChain 28(blockName2) 19 29
              31:    7(fvec2) Load 30
              32:    7(fvec2) FAdd 22 31
              33:     20(ptr) AccessChain 28(blockName2) 29 29
              34:    7(fvec2) Load 33
              35:    7(fvec2) FAdd 32 34
                              ReturnValue 35
                              FunctionEnd
        13(Foo():   11(fvec4) Function None 12
              14:             Label
              42:     41(ptr) AccessChain 40 19
              43:   11(fvec4) Load 42
              44:     41(ptr) AccessChain 40 29
              45:   11(fvec4) Load 44
              46:   11(fvec4) FAdd 43 45
              47:     41(ptr) AccessChain 28(blockName2) 19 19
              48:   11(fvec4) Load 47
              49:   11(fvec4) FAdd 46 48
              50:     41(ptr) AccessChain 28(blockName2) 29 19
              51:   11(fvec4) Load 50
              52:   11(fvec4) FAdd 49 51
              53:    7(fvec2) FunctionCall 9(Bar()
              55:    6(float) CompositeExtract 53 0
              56:    6(float) CompositeExtract 53 1
              57:   11(fvec4) CompositeConstruct 55 56 54 54
              58:   11(fvec4) FAdd 52 57
                              ReturnValue 58
                              FunctionEnd
