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): 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
