hlsl.array.multidim.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:14      move second child to first child (temp 4-component vector of float)
0:14        direct index (temp 4-component vector of float)
0:14          direct index (temp 3-element array of 4-component vector of float)
0:14            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:14            Constant:
0:14              1 (const int)
0:14          Constant:
0:14            2 (const int)
0:14        Construct vec4 (temp 4-component vector of float)
0:14          direct index (layout(offset=0 ) temp float)
0:14            direct index (layout(offset=0 ) temp 3-element array of float)
0:14              direct index (layout(offset=0 ) temp 4-element array of 3-element array of float)
0:14                float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float)
0:14                  'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
0:14                  Constant:
0:14                    0 (const uint)
0:14                Constant:
0:14                  2 (const int)
0:14              Constant:
0:14                3 (const int)
0:14            Constant:
0:14              1 (const int)
0:15      move second child to first child (temp 3-element array of 4-component vector of float)
0:15        direct index (temp 3-element array of 4-component vector of float)
0:15          'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float)
0:15          Constant:
0:15            1 (const int)
0:15        direct index (temp 3-element array of 4-component vector of float)
0:15          'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:15          Constant:
0:15            0 (const int)
0:18      move second child to first child (temp 4-component vector of float)
0:18        Color: direct index for structure (temp 4-component vector of float)
0:18          'psout' (temp structure{temp 4-component vector of float Color})
0:18          Constant:
0:18            0 (const int)
0:18        direct index (temp 4-component vector of float)
0:18          direct index (temp 3-element array of 4-component vector of float)
0:18            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:18            Constant:
0:18              1 (const int)
0:18          Constant:
0:18            2 (const int)
0:19      Sequence
0:19        Sequence
0:19          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:19            Color: direct index for structure (temp 4-component vector of float)
0:19              'psout' (temp structure{temp 4-component vector of float Color})
0:19              Constant:
0:19                0 (const int)
0:19        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})


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:14      move second child to first child (temp 4-component vector of float)
0:14        direct index (temp 4-component vector of float)
0:14          direct index (temp 3-element array of 4-component vector of float)
0:14            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:14            Constant:
0:14              1 (const int)
0:14          Constant:
0:14            2 (const int)
0:14        Construct vec4 (temp 4-component vector of float)
0:14          direct index (layout(offset=0 ) temp float)
0:14            direct index (layout(offset=0 ) temp 3-element array of float)
0:14              direct index (layout(offset=0 ) temp 4-element array of 3-element array of float)
0:14                float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float)
0:14                  'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
0:14                  Constant:
0:14                    0 (const uint)
0:14                Constant:
0:14                  2 (const int)
0:14              Constant:
0:14                3 (const int)
0:14            Constant:
0:14              1 (const int)
0:15      move second child to first child (temp 3-element array of 4-component vector of float)
0:15        direct index (temp 3-element array of 4-component vector of float)
0:15          'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float)
0:15          Constant:
0:15            1 (const int)
0:15        direct index (temp 3-element array of 4-component vector of float)
0:15          'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:15          Constant:
0:15            0 (const int)
0:18      move second child to first child (temp 4-component vector of float)
0:18        Color: direct index for structure (temp 4-component vector of float)
0:18          'psout' (temp structure{temp 4-component vector of float Color})
0:18          Constant:
0:18            0 (const int)
0:18        direct index (temp 4-component vector of float)
0:18          direct index (temp 3-element array of 4-component vector of float)
0:18            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
0:18            Constant:
0:18              1 (const int)
0:18          Constant:
0:18            2 (const int)
0:19      Sequence
0:19        Sequence
0:19          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:19            Color: direct index for structure (temp 4-component vector of float)
0:19              'psout' (temp structure{temp 4-component vector of float Color})
0:19              Constant:
0:19                0 (const int)
0:19        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 48
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 14  "float4_array_1"
                              Name 23  "$Global"
                              MemberName 23($Global) 0  "float_array"
                              Name 25  ""
                              Name 36  "float4_array_2"
                              Name 41  "PS_OUTPUT"
                              MemberName 41(PS_OUTPUT) 0  "Color"
                              Name 43  "psout"
                              Name 48  "Color"
                              Decorate 18 ArrayStride 16
                              Decorate 20 ArrayStride 48
                              Decorate 22 ArrayStride 192
                              MemberDecorate 23($Global) 0 Offset 0
                              Decorate 23($Global) Block
                              Decorate 25 DescriptorSet 0
                              Decorate 48(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeInt 32 0
               9:      8(int) Constant 3
              10:             TypeArray 7(fvec4) 9
              11:      8(int) Constant 2
              12:             TypeArray 10 11
              13:             TypePointer Function 12
              15:             TypeInt 32 1
              16:     15(int) Constant 1
              17:     15(int) Constant 2
              18:             TypeArray 6(float) 9
              19:      8(int) Constant 4
              20:             TypeArray 18 19
              21:      8(int) Constant 5
              22:             TypeArray 20 21
     23($Global):             TypeStruct 22
              24:             TypePointer Uniform 23($Global)
              25:     24(ptr) Variable Uniform
              26:     15(int) Constant 0
              27:     15(int) Constant 3
              28:             TypePointer Uniform 6(float)
              32:             TypePointer Function 7(fvec4)
              34:             TypeArray 10 21
              35:             TypePointer Function 34
              37:             TypePointer Function 10
   41(PS_OUTPUT):             TypeStruct 7(fvec4)
              42:             TypePointer Function 41(PS_OUTPUT)
              47:             TypePointer Output 7(fvec4)
       48(Color):     47(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
14(float4_array_1):     13(ptr) Variable Function
36(float4_array_2):     35(ptr) Variable Function
       43(psout):     42(ptr) Variable Function
              29:     28(ptr) AccessChain 25 26 17 27 16
              30:    6(float) Load 29
              31:    7(fvec4) CompositeConstruct 30 30 30 30
              33:     32(ptr) AccessChain 14(float4_array_1) 16 17
                              Store 33 31
              38:     37(ptr) AccessChain 14(float4_array_1) 26
              39:          10 Load 38
              40:     37(ptr) AccessChain 36(float4_array_2) 16
                              Store 40 39
              44:     32(ptr) AccessChain 14(float4_array_1) 16 17
              45:    7(fvec4) Load 44
              46:     32(ptr) AccessChain 43(psout) 26
                              Store 46 45
              49:     32(ptr) AccessChain 43(psout) 26
              50:    7(fvec4) Load 49
                              Store 48(Color) 50
                              Return
                              FunctionEnd
