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