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 and fragment stages: Matched shader interfaces are using different instance names.
    unknown stage stage: Block: crossStageBlock2 Instance: blockName1: ""
    fragment stage: Block: crossStageBlock2 Instance: blockName2: ""

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