hlsl.matrixindex.frag
Shader version: 450
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 (layout(offset=0 ) uniform int)
0:43              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) 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 (layout(offset=16 ) temp 2-component vector of float)
0:44            um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float)
0:44              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:44              Constant:
0:44                1 (const uint)
0:44            idx: direct index for structure (layout(offset=0 ) uniform int)
0:44              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) 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      Sequence
0:48        Sequence
0:48          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:48            Color: direct index for structure (temp 4-component vector of float)
0:48              'psout' (temp structure{temp 4-component vector of float Color})
0:48              Constant:
0:48                0 (const int)
0:48        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})


Linked fragment stage:


Shader version: 450
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 (layout(offset=0 ) uniform int)
0:43              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) 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 (layout(offset=16 ) temp 2-component vector of float)
0:44            um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float)
0:44              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:44              Constant:
0:44                1 (const uint)
0:44            idx: direct index for structure (layout(offset=0 ) uniform int)
0:44              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) 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      Sequence
0:48        Sequence
0:48          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:48            Color: direct index for structure (temp 4-component vector of float)
0:48              'psout' (temp structure{temp 4-component vector of float Color})
0:48              Constant:
0:48                0 (const int)
0:48        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})

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

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