iomap.crossStage.vert
Shader version: 460
0:? Sequence
0:32  Function Definition: main( ( global void)
0:32    Function Parameters: 
0:34    Sequence
0:34      move second child to first child ( temp 4-component vector of float)
0:34        'o1' ( smooth out 4-component vector of float)
0:34        Constant:
0:34          0.000000
0:34          0.000000
0:34          0.000000
0:34          0.000000
0:35      move second child to first child ( temp 2-component vector of float)
0:35        'o2' ( smooth out 2-component vector of float)
0:35        Constant:
0:35          0.000000
0:35          0.000000
0:36      move second child to first child ( temp 4-component vector of float)
0:36        o3: direct index for structure ( out 4-component vector of float)
0:36          'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:36          Constant:
0:36            0 (const uint)
0:36        Constant:
0:36          0.000000
0:36          0.000000
0:36          0.000000
0:36          0.000000
0:?   Linker Objects
0:?     'o1' ( smooth out 4-component vector of float)
0:?     'o2' ( smooth out 2-component vector of float)
0:?     'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:?     'u1' ( uniform 2-component vector of float)
0:?     'u2' ( uniform 3-component vector of float)
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?     'u3' ( uniform 4-component vector of float)
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?     'um2' ( uniform 2X2 matrix of float)
0:?       4.000000
0:?       0.000000
0:?       0.000000
0:?       4.000000
0:?     'glass' (layout( location=0 binding=0) uniform sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1})
0:?     'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
0:?     'gl_VertexID' ( gl_VertexId int VertexId)
0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)

iomap.crossStage.frag
Shader version: 460
0:? Sequence
0:36  Function Definition: main( ( global void)
0:36    Function Parameters: 
0:38    Sequence
0:38      Sequence
0:38        move second child to first child ( temp 4-component vector of float)
0:38          'color' ( temp 4-component vector of float)
0:38          component-wise multiply ( temp 4-component vector of float)
0:38            component-wise multiply ( temp 4-component vector of float)
0:38              component-wise multiply ( temp 4-component vector of float)
0:38                'o1' ( smooth in 4-component vector of float)
0:38                vector swizzle ( temp 4-component vector of float)
0:38                  'u1' ( uniform 2-component vector of float)
0:38                  Sequence
0:38                    Constant:
0:38                      0 (const int)
0:38                    Constant:
0:38                      1 (const int)
0:38                    Constant:
0:38                      0 (const int)
0:38                    Constant:
0:38                      1 (const int)
0:38              vector swizzle ( temp 4-component vector of float)
0:38                'u2' ( uniform 3-component vector of float)
0:38                Sequence
0:38                  Constant:
0:38                    0 (const int)
0:38                  Constant:
0:38                    1 (const int)
0:38                  Constant:
0:38                    2 (const int)
0:38                  Constant:
0:38                    0 (const int)
0:38            vector swizzle ( temp 4-component vector of float)
0:38              'u3' ( uniform 4-component vector of float)
0:38                0.000000
0:38                0.000000
0:38                0.000000
0:38                0.000000
0:38              Sequence
0:38                Constant:
0:38                  0 (const int)
0:38                Constant:
0:38                  1 (const int)
0:38                Constant:
0:38                  2 (const int)
0:38                Constant:
0:38                  3 (const int)
0:39      move second child to first child ( temp 4-component vector of float)
0:39        'outColor' ( out 4-component vector of float)
0:39        'color' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( location=5) in block{ in 4-component vector of float o3})
0:?     'o2' ( smooth in 2-component vector of float)
0:?     'o1' ( smooth in 4-component vector of float)
0:?     'outColor' ( out 4-component vector of float)
0:?     'u1' ( uniform 2-component vector of float)
0:?     'u2' ( uniform 3-component vector of float)
0:?     'u3' ( uniform 4-component vector of float)
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?     'um2' ( uniform 2X2 matrix of float)
0:?       4.000000
0:?       0.000000
0:?       0.000000
0:?       4.000000
0:?     'glass' (layout( location=0 binding=0) uniform sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1})
0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})


Linked vertex 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 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}"

Shader version: 460
0:? Sequence
0:32  Function Definition: main( ( global void)
0:32    Function Parameters: 
0:34    Sequence
0:34      move second child to first child ( temp 4-component vector of float)
0:34        'o1' ( smooth out 4-component vector of float)
0:34        Constant:
0:34          0.000000
0:34          0.000000
0:34          0.000000
0:34          0.000000
0:35      move second child to first child ( temp 2-component vector of float)
0:35        'o2' ( smooth out 2-component vector of float)
0:35        Constant:
0:35          0.000000
0:35          0.000000
0:36      move second child to first child ( temp 4-component vector of float)
0:36        o3: direct index for structure ( out 4-component vector of float)
0:36          'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:36          Constant:
0:36            0 (const uint)
0:36        Constant:
0:36          0.000000
0:36          0.000000
0:36          0.000000
0:36          0.000000
0:?   Linker Objects
0:?     'o1' ( smooth out 4-component vector of float)
0:?     'o2' ( smooth out 2-component vector of float)
0:?     'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:?     'u1' ( uniform 2-component vector of float)
0:?     'u2' ( uniform 3-component vector of float)
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?     'u3' ( uniform 4-component vector of float)
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?     'um2' ( uniform 2X2 matrix of float)
0:?       4.000000
0:?       0.000000
0:?       0.000000
0:?       4.000000
0:?     'glass' (layout( location=0 binding=0) uniform sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1})
0:?     'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
0:?     'gl_VertexID' ( gl_VertexId int VertexId)
0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 460
0:? Sequence
0:36  Function Definition: main( ( global void)
0:36    Function Parameters: 
0:38    Sequence
0:38      Sequence
0:38        move second child to first child ( temp 4-component vector of float)
0:38          'color' ( temp 4-component vector of float)
0:38          component-wise multiply ( temp 4-component vector of float)
0:38            component-wise multiply ( temp 4-component vector of float)
0:38              component-wise multiply ( temp 4-component vector of float)
0:38                'o1' ( smooth in 4-component vector of float)
0:38                vector swizzle ( temp 4-component vector of float)
0:38                  'u1' ( uniform 2-component vector of float)
0:38                  Sequence
0:38                    Constant:
0:38                      0 (const int)
0:38                    Constant:
0:38                      1 (const int)
0:38                    Constant:
0:38                      0 (const int)
0:38                    Constant:
0:38                      1 (const int)
0:38              vector swizzle ( temp 4-component vector of float)
0:38                'u2' ( uniform 3-component vector of float)
0:38                Sequence
0:38                  Constant:
0:38                    0 (const int)
0:38                  Constant:
0:38                    1 (const int)
0:38                  Constant:
0:38                    2 (const int)
0:38                  Constant:
0:38                    0 (const int)
0:38            vector swizzle ( temp 4-component vector of float)
0:38              'u3' ( uniform 4-component vector of float)
0:38                0.000000
0:38                0.000000
0:38                0.000000
0:38                0.000000
0:38              Sequence
0:38                Constant:
0:38                  0 (const int)
0:38                Constant:
0:38                  1 (const int)
0:38                Constant:
0:38                  2 (const int)
0:38                Constant:
0:38                  3 (const int)
0:39      move second child to first child ( temp 4-component vector of float)
0:39        'outColor' ( out 4-component vector of float)
0:39        'color' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( location=5) in block{ in 4-component vector of float o3})
0:?     'o2' ( smooth in 2-component vector of float)
0:?     'o1' ( smooth in 4-component vector of float)
0:?     'outColor' ( out 4-component vector of float)
0:?     'u1' ( uniform 2-component vector of float)
0:?     'u2' ( uniform 3-component vector of float)
0:?     'u3' ( uniform 4-component vector of float)
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?       0.000000
0:?     'um2' ( uniform 2X2 matrix of float)
0:?       4.000000
0:?       0.000000
0:?       0.000000
0:?       4.000000
0:?     'glass' (layout( location=0 binding=0) uniform sampler2D)
0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:?     'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1})
0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 9 14 18 54 55
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "o1"
                              Name 14  "o2"
                              Name 16  "outBlock"
                              MemberName 16(outBlock) 0  "o3"
                              Name 18  ""
                              Name 23  "u1"
                              Name 27  "u2"
                              Name 29  "u3"
                              Name 36  "um2"
                              Name 40  "glass"
                              Name 41  "crossStageBlock1"
                              MemberName 41(crossStageBlock1) 0  "a"
                              MemberName 41(crossStageBlock1) 1  "b"
                              Name 43  ""
                              Name 44  "vertOnlyBlock"
                              MemberName 44(vertOnlyBlock) 0  "vb1"
                              Name 46  ""
                              Name 47  "crossStageBlock2"
                              MemberName 47(crossStageBlock2) 0  "a"
                              MemberName 47(crossStageBlock2) 1  "b"
                              Name 52  "blockName1"
                              Name 54  "gl_VertexID"
                              Name 55  "gl_InstanceID"
                              Decorate 9(o1) Location 0
                              Decorate 14(o2) Location 1
                              Decorate 16(outBlock) Block
                              Decorate 18 Location 5
                              Decorate 23(u1) Location 1
                              Decorate 23(u1) DescriptorSet 0
                              Decorate 27(u2) Location 2
                              Decorate 27(u2) DescriptorSet 0
                              Decorate 29(u3) Location 3
                              Decorate 29(u3) DescriptorSet 0
                              Decorate 36(um2) Location 4
                              Decorate 36(um2) DescriptorSet 0
                              Decorate 40(glass) Location 0
                              Decorate 40(glass) DescriptorSet 0
                              Decorate 40(glass) Binding 0
                              MemberDecorate 41(crossStageBlock1) 0 Offset 0
                              MemberDecorate 41(crossStageBlock1) 1 Offset 16
                              Decorate 41(crossStageBlock1) Block
                              Decorate 43 DescriptorSet 0
                              Decorate 43 Binding 0
                              MemberDecorate 44(vertOnlyBlock) 0 Offset 0
                              Decorate 44(vertOnlyBlock) BufferBlock
                              Decorate 46 DescriptorSet 0
                              Decorate 46 Binding 0
                              MemberDecorate 47(crossStageBlock2) 0 Offset 0
                              MemberDecorate 47(crossStageBlock2) 1 Offset 16
                              Decorate 47(crossStageBlock2) Block
                              Decorate 52(blockName1) DescriptorSet 0
                              Decorate 52(blockName1) Binding 0
                              Decorate 54(gl_VertexID) BuiltIn VertexId
                              Decorate 55(gl_InstanceID) BuiltIn InstanceId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
           9(o1):      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(o2):     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:             TypePointer UniformConstant 12(fvec2)
          23(u1):     22(ptr) Variable UniformConstant
              24:             TypeVector 6(float) 3
              25:   24(fvec3) ConstantComposite 10 10 10
              26:             TypePointer UniformConstant 24(fvec3)
          27(u2):     26(ptr) Variable UniformConstant 25
              28:             TypePointer UniformConstant 7(fvec4)
          29(u3):     28(ptr) Variable UniformConstant 11
              30:             TypeMatrix 12(fvec2) 2
              31:    6(float) Constant 1082130432
              32:   12(fvec2) ConstantComposite 31 10
              33:   12(fvec2) ConstantComposite 10 31
              34:          30 ConstantComposite 32 33
              35:             TypePointer UniformConstant 30
         36(um2):     35(ptr) Variable UniformConstant 34
              37:             TypeImage 6(float) 2D sampled format:Unknown
              38:             TypeSampledImage 37
              39:             TypePointer UniformConstant 38
       40(glass):     39(ptr) Variable UniformConstant
41(crossStageBlock1):             TypeStruct 7(fvec4) 7(fvec4)
              42:             TypePointer Uniform 41(crossStageBlock1)
              43:     42(ptr) Variable Uniform
44(vertOnlyBlock):             TypeStruct 12(fvec2)
              45:             TypePointer Uniform 44(vertOnlyBlock)
              46:     45(ptr) Variable Uniform
47(crossStageBlock2):             TypeStruct 7(fvec4) 12(fvec2)
              48:             TypeInt 32 0
              49:     48(int) Constant 2
              50:             TypeArray 47(crossStageBlock2) 49
              51:             TypePointer Uniform 50
  52(blockName1):     51(ptr) Variable Uniform
              53:             TypePointer Input 19(int)
 54(gl_VertexID):     53(ptr) Variable Input
55(gl_InstanceID):     53(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
                              Store 9(o1) 11
                              Store 14(o2) 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 62

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 11 32 36 38
                              ExecutionMode 4 OriginLowerLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 9  "color"
                              Name 11  "o1"
                              Name 15  "u1"
                              Name 21  "u2"
                              Name 28  "u3"
                              Name 32  "outColor"
                              Name 34  "outBlock"
                              MemberName 34(outBlock) 0  "o3"
                              Name 36  ""
                              Name 38  "o2"
                              Name 45  "um2"
                              Name 49  "glass"
                              Name 50  "crossStageBlock1"
                              MemberName 50(crossStageBlock1) 0  "a"
                              MemberName 50(crossStageBlock1) 1  "b"
                              Name 52  ""
                              Name 53  "fragOnlyBlock"
                              MemberName 53(fragOnlyBlock) 0  "fb1"
                              Name 55  ""
                              Name 56  "crossStageBlock2"
                              MemberName 56(crossStageBlock2) 0  "a"
                              MemberName 56(crossStageBlock2) 1  "b"
                              Name 61  "blockName2"
                              Decorate 11(o1) Location 0
                              Decorate 15(u1) Location 1
                              Decorate 15(u1) DescriptorSet 0
                              Decorate 21(u2) Location 2
                              Decorate 21(u2) DescriptorSet 0
                              Decorate 28(u3) Location 3
                              Decorate 28(u3) DescriptorSet 0
                              Decorate 32(outColor) Location 0
                              Decorate 34(outBlock) Block
                              Decorate 36 Location 5
                              Decorate 38(o2) Location 1
                              Decorate 45(um2) Location 4
                              Decorate 45(um2) DescriptorSet 0
                              Decorate 49(glass) Location 0
                              Decorate 49(glass) DescriptorSet 0
                              Decorate 49(glass) Binding 0
                              MemberDecorate 50(crossStageBlock1) 0 Offset 0
                              MemberDecorate 50(crossStageBlock1) 1 Offset 16
                              Decorate 50(crossStageBlock1) Block
                              Decorate 52 DescriptorSet 0
                              Decorate 52 Binding 0
                              MemberDecorate 53(fragOnlyBlock) 0 Offset 0
                              Decorate 53(fragOnlyBlock) BufferBlock
                              Decorate 55 DescriptorSet 0
                              Decorate 55 Binding 0
                              MemberDecorate 56(crossStageBlock2) 0 Offset 0
                              MemberDecorate 56(crossStageBlock2) 1 Offset 16
                              Decorate 56(crossStageBlock2) Block
                              Decorate 61(blockName2) DescriptorSet 0
                              Decorate 61(blockName2) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypePointer Input 7(fvec4)
          11(o1):     10(ptr) Variable Input
              13:             TypeVector 6(float) 2
              14:             TypePointer UniformConstant 13(fvec2)
          15(u1):     14(ptr) Variable UniformConstant
              19:             TypeVector 6(float) 3
              20:             TypePointer UniformConstant 19(fvec3)
          21(u2):     20(ptr) Variable UniformConstant
              25:    6(float) Constant 0
              26:    7(fvec4) ConstantComposite 25 25 25 25
              27:             TypePointer UniformConstant 7(fvec4)
          28(u3):     27(ptr) Variable UniformConstant 26
              31:             TypePointer Output 7(fvec4)
    32(outColor):     31(ptr) Variable Output
    34(outBlock):             TypeStruct 7(fvec4)
              35:             TypePointer Input 34(outBlock)
              36:     35(ptr) Variable Input
              37:             TypePointer Input 13(fvec2)
          38(o2):     37(ptr) Variable Input
              39:             TypeMatrix 13(fvec2) 2
              40:    6(float) Constant 1082130432
              41:   13(fvec2) ConstantComposite 40 25
              42:   13(fvec2) ConstantComposite 25 40
              43:          39 ConstantComposite 41 42
              44:             TypePointer UniformConstant 39
         45(um2):     44(ptr) Variable UniformConstant 43
              46:             TypeImage 6(float) 2D sampled format:Unknown
              47:             TypeSampledImage 46
              48:             TypePointer UniformConstant 47
       49(glass):     48(ptr) Variable UniformConstant
50(crossStageBlock1):             TypeStruct 7(fvec4) 7(fvec4)
              51:             TypePointer Uniform 50(crossStageBlock1)
              52:     51(ptr) Variable Uniform
53(fragOnlyBlock):             TypeStruct 13(fvec2)
              54:             TypePointer Uniform 53(fragOnlyBlock)
              55:     54(ptr) Variable Uniform
56(crossStageBlock2):             TypeStruct 7(fvec4) 13(fvec2)
              57:             TypeInt 32 0
              58:     57(int) Constant 2
              59:             TypeArray 56(crossStageBlock2) 58
              60:             TypePointer Uniform 59
  61(blockName2):     60(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
        9(color):      8(ptr) Variable Function
              12:    7(fvec4) Load 11(o1)
              16:   13(fvec2) Load 15(u1)
              17:    7(fvec4) VectorShuffle 16 16 0 1 0 1
              18:    7(fvec4) FMul 12 17
              22:   19(fvec3) Load 21(u2)
              23:    7(fvec4) VectorShuffle 22 22 0 1 2 0
              24:    7(fvec4) FMul 18 23
              29:    7(fvec4) Load 28(u3)
              30:    7(fvec4) FMul 24 29
                              Store 9(color) 30
              33:    7(fvec4) Load 9(color)
                              Store 32(outColor) 33
                              Return
                              FunctionEnd
