hlsl.matrixindex.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:10  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:10    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp float)
0:22          'e1_00' ( temp float)
0:22          Constant:
0:22            10.000000
0:23      Sequence
0:23        move second child to first child ( temp float)
0:23          'e1_01' ( temp float)
0:23          Constant:
0:23            11.000000
0:24      Sequence
0:24        move second child to first child ( temp float)
0:24          'e1_10' ( temp float)
0:24          Constant:
0:24            12.000000
0:25      Sequence
0:25        move second child to first child ( temp float)
0:25          'e1_11' ( temp float)
0:25          Constant:
0:25            13.000000
0:26      Sequence
0:26        move second child to first child ( temp float)
0:26          'e1_20' ( temp float)
0:26          Constant:
0:26            14.000000
0:27      Sequence
0:27        move second child to first child ( temp float)
0:27          'e1_21' ( temp float)
0:27          Constant:
0:27            15.000000
0:29      Sequence
0:29        move second child to first child ( temp float)
0:29          'e2_00' ( temp float)
0:29          Constant:
0:29            20.000000
0:30      Sequence
0:30        move second child to first child ( temp float)
0:30          'e2_01' ( temp float)
0:30          Constant:
0:30            21.000000
0:31      Sequence
0:31        move second child to first child ( temp float)
0:31          'e2_10' ( temp float)
0:31          Constant:
0:31            22.000000
0:32      Sequence
0:32        move second child to first child ( temp float)
0:32          'e2_11' ( temp float)
0:32          Constant:
0:32            23.000000
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'e2_20' ( temp float)
0:33          Constant:
0:33            24.000000
0:34      Sequence
0:34        move second child to first child ( temp float)
0:34          'e2_21' ( temp float)
0:34          Constant:
0:34            25.000000
0:39      Sequence
0:39        move second child to first child ( temp 2-component vector of float)
0:39          'r0a' ( temp 2-component vector of float)
0:39          Constant:
0:39            10.000000
0:39            11.000000
0:40      Sequence
0:40        move second child to first child ( temp 2-component vector of float)
0:40          'r1a' ( temp 2-component vector of float)
0:40          Constant:
0:40            12.000000
0:40            13.000000
0:41      Sequence
0:41        move second child to first child ( temp 2-component vector of float)
0:41          'r2a' ( temp 2-component vector of float)
0:41          Constant:
0:41            14.000000
0:41            15.000000
0:43      Sequence
0:43        move second child to first child ( temp 2-component vector of float)
0:43          'r0b' ( temp 2-component vector of float)
0:43          indirect index ( temp 2-component vector of float)
0:43            Constant:
0:43              20.000000
0:43              21.000000
0:43              22.000000
0:43              23.000000
0:43              24.000000
0:43              25.000000
0:43            idx: direct index for structure ( uniform int)
0:43              'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:43              Constant:
0:43                0 (const uint)
0:44      Sequence
0:44        move second child to first child ( temp 2-component vector of float)
0:44          'r0c' ( temp 2-component vector of float)
0:44          indirect index ( temp 2-component vector of float)
0:44            um: direct index for structure ( uniform 3X2 matrix of float)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:44              Constant:
0:44                1 (const uint)
0:44            idx: direct index for structure ( uniform int)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:44              Constant:
0:44                0 (const uint)
0:47      move second child to first child ( temp 4-component vector of float)
0:47        Color: direct index for structure ( temp 4-component vector of float)
0:47          'psout' ( temp structure{ temp 4-component vector of float Color})
0:47          Constant:
0:47            0 (const int)
0:47        Construct vec4 ( temp 4-component vector of float)
0:47          'e2_11' ( temp float)
0:48      Branch: Return with expression
0:48        'psout' ( temp structure{ temp 4-component vector of float Color})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp 4-component vector of float)
0:?           'Color' (layout( location=0) out 4-component vector of float)
0:10          Color: direct index for structure ( temp 4-component vector of float)
0:10            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:10            Constant:
0:10              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:?     'Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:10  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:10    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp float)
0:22          'e1_00' ( temp float)
0:22          Constant:
0:22            10.000000
0:23      Sequence
0:23        move second child to first child ( temp float)
0:23          'e1_01' ( temp float)
0:23          Constant:
0:23            11.000000
0:24      Sequence
0:24        move second child to first child ( temp float)
0:24          'e1_10' ( temp float)
0:24          Constant:
0:24            12.000000
0:25      Sequence
0:25        move second child to first child ( temp float)
0:25          'e1_11' ( temp float)
0:25          Constant:
0:25            13.000000
0:26      Sequence
0:26        move second child to first child ( temp float)
0:26          'e1_20' ( temp float)
0:26          Constant:
0:26            14.000000
0:27      Sequence
0:27        move second child to first child ( temp float)
0:27          'e1_21' ( temp float)
0:27          Constant:
0:27            15.000000
0:29      Sequence
0:29        move second child to first child ( temp float)
0:29          'e2_00' ( temp float)
0:29          Constant:
0:29            20.000000
0:30      Sequence
0:30        move second child to first child ( temp float)
0:30          'e2_01' ( temp float)
0:30          Constant:
0:30            21.000000
0:31      Sequence
0:31        move second child to first child ( temp float)
0:31          'e2_10' ( temp float)
0:31          Constant:
0:31            22.000000
0:32      Sequence
0:32        move second child to first child ( temp float)
0:32          'e2_11' ( temp float)
0:32          Constant:
0:32            23.000000
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'e2_20' ( temp float)
0:33          Constant:
0:33            24.000000
0:34      Sequence
0:34        move second child to first child ( temp float)
0:34          'e2_21' ( temp float)
0:34          Constant:
0:34            25.000000
0:39      Sequence
0:39        move second child to first child ( temp 2-component vector of float)
0:39          'r0a' ( temp 2-component vector of float)
0:39          Constant:
0:39            10.000000
0:39            11.000000
0:40      Sequence
0:40        move second child to first child ( temp 2-component vector of float)
0:40          'r1a' ( temp 2-component vector of float)
0:40          Constant:
0:40            12.000000
0:40            13.000000
0:41      Sequence
0:41        move second child to first child ( temp 2-component vector of float)
0:41          'r2a' ( temp 2-component vector of float)
0:41          Constant:
0:41            14.000000
0:41            15.000000
0:43      Sequence
0:43        move second child to first child ( temp 2-component vector of float)
0:43          'r0b' ( temp 2-component vector of float)
0:43          indirect index ( temp 2-component vector of float)
0:43            Constant:
0:43              20.000000
0:43              21.000000
0:43              22.000000
0:43              23.000000
0:43              24.000000
0:43              25.000000
0:43            idx: direct index for structure ( uniform int)
0:43              'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:43              Constant:
0:43                0 (const uint)
0:44      Sequence
0:44        move second child to first child ( temp 2-component vector of float)
0:44          'r0c' ( temp 2-component vector of float)
0:44          indirect index ( temp 2-component vector of float)
0:44            um: direct index for structure ( uniform 3X2 matrix of float)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:44              Constant:
0:44                1 (const uint)
0:44            idx: direct index for structure ( uniform int)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:44              Constant:
0:44                0 (const uint)
0:47      move second child to first child ( temp 4-component vector of float)
0:47        Color: direct index for structure ( temp 4-component vector of float)
0:47          'psout' ( temp structure{ temp 4-component vector of float Color})
0:47          Constant:
0:47            0 (const int)
0:47        Construct vec4 ( temp 4-component vector of float)
0:47          'e2_11' ( temp float)
0:48      Branch: Return with expression
0:48        'psout' ( temp structure{ temp 4-component vector of float Color})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp 4-component vector of float)
0:?           'Color' (layout( location=0) out 4-component vector of float)
0:10          Color: direct index for structure ( temp 4-component vector of float)
0:10            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:10            Constant:
0:10              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int idx,  uniform 3X2 matrix of float um})
0:?     'Color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 83

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 80
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "@main("
                              Name 13  "e1_00"
                              Name 15  "e1_01"
                              Name 17  "e1_10"
                              Name 19  "e1_11"
                              Name 21  "e1_20"
                              Name 23  "e1_21"
                              Name 25  "e2_00"
                              Name 27  "e2_01"
                              Name 29  "e2_10"
                              Name 31  "e2_11"
                              Name 33  "e2_20"
                              Name 35  "e2_21"
                              Name 39  "r0a"
                              Name 41  "r1a"
                              Name 43  "r2a"
                              Name 45  "r0b"
                              Name 52  "$Global"
                              MemberName 52($Global) 0  "idx"
                              MemberName 52($Global) 1  "um"
                              Name 54  ""
                              Name 60  "indexable"
                              Name 63  "r0c"
                              Name 71  "psout"
                              Name 80  "Color"
                              MemberDecorate 52($Global) 0 Offset 0
                              MemberDecorate 52($Global) 1 RowMajor
                              MemberDecorate 52($Global) 1 Offset 16
                              MemberDecorate 52($Global) 1 MatrixStride 16
                              Decorate 52($Global) Block
                              Decorate 54 DescriptorSet 0
                              Decorate 80(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 6(float)
              14:    6(float) Constant 1092616192
              16:    6(float) Constant 1093664768
              18:    6(float) Constant 1094713344
              20:    6(float) Constant 1095761920
              22:    6(float) Constant 1096810496
              24:    6(float) Constant 1097859072
              26:    6(float) Constant 1101004800
              28:    6(float) Constant 1101529088
              30:    6(float) Constant 1102053376
              32:    6(float) Constant 1102577664
              34:    6(float) Constant 1103101952
              36:    6(float) Constant 1103626240
              37:             TypeVector 6(float) 2
              38:             TypePointer Function 37(fvec2)
              40:   37(fvec2) ConstantComposite 14 16
              42:   37(fvec2) ConstantComposite 18 20
              44:   37(fvec2) ConstantComposite 22 24
              46:             TypeMatrix 37(fvec2) 3
              47:   37(fvec2) ConstantComposite 26 28
              48:   37(fvec2) ConstantComposite 30 32
              49:   37(fvec2) ConstantComposite 34 36
              50:          46 ConstantComposite 47 48 49
              51:             TypeInt 32 1
     52($Global):             TypeStruct 51(int) 46
              53:             TypePointer Uniform 52($Global)
              54:     53(ptr) Variable Uniform
              55:     51(int) Constant 0
              56:             TypePointer Uniform 51(int)
              59:             TypePointer Function 46
              64:     51(int) Constant 1
              67:             TypePointer Uniform 37(fvec2)
              70:             TypePointer Function 8(PS_OUTPUT)
              74:             TypePointer Function 7(fvec4)
              79:             TypePointer Output 7(fvec4)
       80(Color):     79(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              81:8(PS_OUTPUT) FunctionCall 10(@main()
              82:    7(fvec4) CompositeExtract 81 0
                              Store 80(Color) 82
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
       13(e1_00):     12(ptr) Variable Function
       15(e1_01):     12(ptr) Variable Function
       17(e1_10):     12(ptr) Variable Function
       19(e1_11):     12(ptr) Variable Function
       21(e1_20):     12(ptr) Variable Function
       23(e1_21):     12(ptr) Variable Function
       25(e2_00):     12(ptr) Variable Function
       27(e2_01):     12(ptr) Variable Function
       29(e2_10):     12(ptr) Variable Function
       31(e2_11):     12(ptr) Variable Function
       33(e2_20):     12(ptr) Variable Function
       35(e2_21):     12(ptr) Variable Function
         39(r0a):     38(ptr) Variable Function
         41(r1a):     38(ptr) Variable Function
         43(r2a):     38(ptr) Variable Function
         45(r0b):     38(ptr) Variable Function
   60(indexable):     59(ptr) Variable Function
         63(r0c):     38(ptr) Variable Function
       71(psout):     70(ptr) Variable Function
                              Store 13(e1_00) 14
                              Store 15(e1_01) 16
                              Store 17(e1_10) 18
                              Store 19(e1_11) 20
                              Store 21(e1_20) 22
                              Store 23(e1_21) 24
                              Store 25(e2_00) 26
                              Store 27(e2_01) 28
                              Store 29(e2_10) 30
                              Store 31(e2_11) 32
                              Store 33(e2_20) 34
                              Store 35(e2_21) 36
                              Store 39(r0a) 40
                              Store 41(r1a) 42
                              Store 43(r2a) 44
              57:     56(ptr) AccessChain 54 55
              58:     51(int) Load 57
                              Store 60(indexable) 50
              61:     38(ptr) AccessChain 60(indexable) 58
              62:   37(fvec2) Load 61
                              Store 45(r0b) 62
              65:     56(ptr) AccessChain 54 55
              66:     51(int) Load 65
              68:     67(ptr) AccessChain 54 64 66
              69:   37(fvec2) Load 68
                              Store 63(r0c) 69
              72:    6(float) Load 31(e2_11)
              73:    7(fvec4) CompositeConstruct 72 72 72 72
              75:     74(ptr) AccessChain 71(psout) 55
                              Store 75 73
              76:8(PS_OUTPUT) Load 71(psout)
                              ReturnValue 76
                              FunctionEnd
