hlsl.array.flatten.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:17  Function Definition: TestFn1( (temp 4-component vector of float)
0:17    Function Parameters: 
0:?     Sequence
0:18      Branch: Return with expression
0:18        texture (temp 4-component vector of float)
0:18          Construct combined texture-sampler (temp sampler1D)
0:?             'g_tex[1]' (uniform texture1D)
0:?             'g_samp[1]' (uniform sampler)
0:18          Constant:
0:18            0.200000
0:22  Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:22    Function Parameters: 
0:22      'l_tex' (in 3-element array of texture1D)
0:22      'l_samp' (in 3-element array of sampler)
0:?     Sequence
0:23      Branch: Return with expression
0:23        texture (temp 4-component vector of float)
0:23          Construct combined texture-sampler (temp sampler1D)
0:23            direct index (temp texture1D)
0:23              'l_tex' (in 3-element array of texture1D)
0:23              Constant:
0:23                2 (const int)
0:23            direct index (temp sampler)
0:23              'l_samp' (in 3-element array of sampler)
0:23              Constant:
0:23                2 (const int)
0:23          Constant:
0:23            0.200000
0:26  Sequence
0:26    move second child to first child (temp 5-element array of int)
0:26      'not_flattened_a' (global 5-element array of int)
0:26      Constant:
0:26        1 (const int)
0:26        2 (const int)
0:26        3 (const int)
0:26        4 (const int)
0:26        5 (const int)
0:31  Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
0:31    Function Parameters: 
0:31      'ps_output' (out structure{temp 4-component vector of float color})
0:?     Sequence
0:33      Sequence
0:33        Sequence
0:33          move second child to first child (temp sampler)
0:33            direct index (temp sampler)
0:33              'local_sampler_array' (temp 3-element array of sampler)
0:33              Constant:
0:33                0 (const int)
0:?             'g_samp[0]' (uniform sampler)
0:33          move second child to first child (temp sampler)
0:33            direct index (temp sampler)
0:33              'local_sampler_array' (temp 3-element array of sampler)
0:33              Constant:
0:33                1 (const int)
0:?             'g_samp[1]' (uniform sampler)
0:33          move second child to first child (temp sampler)
0:33            direct index (temp sampler)
0:33              'local_sampler_array' (temp 3-element array of sampler)
0:33              Constant:
0:33                2 (const int)
0:?             'g_samp[2]' (uniform sampler)
0:34      Sequence
0:34        Sequence
0:34          move second child to first child (temp texture1D)
0:34            direct index (temp texture1D)
0:34              'local_texture_array' (temp 3-element array of texture1D)
0:34              Constant:
0:34                0 (const int)
0:?             'g_tex[0]' (uniform texture1D)
0:34          move second child to first child (temp texture1D)
0:34            direct index (temp texture1D)
0:34              'local_texture_array' (temp 3-element array of texture1D)
0:34              Constant:
0:34                1 (const int)
0:?             'g_tex[1]' (uniform texture1D)
0:34          move second child to first child (temp texture1D)
0:34            direct index (temp texture1D)
0:34              'local_texture_array' (temp 3-element array of texture1D)
0:34              Constant:
0:34                2 (const int)
0:?             'g_tex[2]' (uniform texture1D)
0:35      Sequence
0:35        move second child to first child (temp 4-element array of float)
0:35          'local_float_array' (temp 4-element array of float)
0:35          g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float)
0:35            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:35            Constant:
0:35              2 (const uint)
0:37      move second child to first child (temp 4-component vector of float)
0:?         'color' (layout(location=0 ) out 4-component vector of float)
0:37        add (temp 4-component vector of float)
0:37          Function Call: TestFn1( (temp 4-component vector of float)
0:37          Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:37            Comma (temp 3-element array of texture1D)
0:37              Sequence
0:37                move second child to first child (temp texture1D)
0:37                  direct index (temp texture1D)
0:37                    'aggShadow' (temp 3-element array of texture1D)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_tex[0]' (uniform texture1D)
0:37                move second child to first child (temp texture1D)
0:37                  direct index (temp texture1D)
0:37                    'aggShadow' (temp 3-element array of texture1D)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_tex[1]' (uniform texture1D)
0:37                move second child to first child (temp texture1D)
0:37                  direct index (temp texture1D)
0:37                    'aggShadow' (temp 3-element array of texture1D)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_tex[2]' (uniform texture1D)
0:37              'aggShadow' (temp 3-element array of texture1D)
0:37            Comma (temp 3-element array of sampler)
0:37              Sequence
0:37                move second child to first child (temp sampler)
0:37                  direct index (temp sampler)
0:37                    'aggShadow' (temp 3-element array of sampler)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_samp[0]' (uniform sampler)
0:37                move second child to first child (temp sampler)
0:37                  direct index (temp sampler)
0:37                    'aggShadow' (temp 3-element array of sampler)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_samp[1]' (uniform sampler)
0:37                move second child to first child (temp sampler)
0:37                  direct index (temp sampler)
0:37                    'aggShadow' (temp 3-element array of sampler)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_samp[2]' (uniform sampler)
0:37              'aggShadow' (temp 3-element array of sampler)
0:?   Linker Objects
0:?     'g_tex[0]' (uniform texture1D)
0:?     'g_tex[1]' (uniform texture1D)
0:?     'g_tex[2]' (uniform texture1D)
0:?     'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D)
0:?     'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D)
0:?     'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D)
0:?     'g_samp[0]' (uniform sampler)
0:?     'g_samp[1]' (uniform sampler)
0:?     'g_samp[2]' (uniform sampler)
0:?     'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler)
0:?     'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler)
0:?     'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:?     'not_flattened_a' (global 5-element array of int)
0:?     'color' (layout(location=0 ) out 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:17  Function Definition: TestFn1( (temp 4-component vector of float)
0:17    Function Parameters: 
0:?     Sequence
0:18      Branch: Return with expression
0:18        texture (temp 4-component vector of float)
0:18          Construct combined texture-sampler (temp sampler1D)
0:?             'g_tex[1]' (uniform texture1D)
0:?             'g_samp[1]' (uniform sampler)
0:18          Constant:
0:18            0.200000
0:22  Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:22    Function Parameters: 
0:22      'l_tex' (in 3-element array of texture1D)
0:22      'l_samp' (in 3-element array of sampler)
0:?     Sequence
0:23      Branch: Return with expression
0:23        texture (temp 4-component vector of float)
0:23          Construct combined texture-sampler (temp sampler1D)
0:23            direct index (temp texture1D)
0:23              'l_tex' (in 3-element array of texture1D)
0:23              Constant:
0:23                2 (const int)
0:23            direct index (temp sampler)
0:23              'l_samp' (in 3-element array of sampler)
0:23              Constant:
0:23                2 (const int)
0:23          Constant:
0:23            0.200000
0:26  Sequence
0:26    move second child to first child (temp 5-element array of int)
0:26      'not_flattened_a' (global 5-element array of int)
0:26      Constant:
0:26        1 (const int)
0:26        2 (const int)
0:26        3 (const int)
0:26        4 (const int)
0:26        5 (const int)
0:31  Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
0:31    Function Parameters: 
0:31      'ps_output' (out structure{temp 4-component vector of float color})
0:?     Sequence
0:33      Sequence
0:33        Sequence
0:33          move second child to first child (temp sampler)
0:33            direct index (temp sampler)
0:33              'local_sampler_array' (temp 3-element array of sampler)
0:33              Constant:
0:33                0 (const int)
0:?             'g_samp[0]' (uniform sampler)
0:33          move second child to first child (temp sampler)
0:33            direct index (temp sampler)
0:33              'local_sampler_array' (temp 3-element array of sampler)
0:33              Constant:
0:33                1 (const int)
0:?             'g_samp[1]' (uniform sampler)
0:33          move second child to first child (temp sampler)
0:33            direct index (temp sampler)
0:33              'local_sampler_array' (temp 3-element array of sampler)
0:33              Constant:
0:33                2 (const int)
0:?             'g_samp[2]' (uniform sampler)
0:34      Sequence
0:34        Sequence
0:34          move second child to first child (temp texture1D)
0:34            direct index (temp texture1D)
0:34              'local_texture_array' (temp 3-element array of texture1D)
0:34              Constant:
0:34                0 (const int)
0:?             'g_tex[0]' (uniform texture1D)
0:34          move second child to first child (temp texture1D)
0:34            direct index (temp texture1D)
0:34              'local_texture_array' (temp 3-element array of texture1D)
0:34              Constant:
0:34                1 (const int)
0:?             'g_tex[1]' (uniform texture1D)
0:34          move second child to first child (temp texture1D)
0:34            direct index (temp texture1D)
0:34              'local_texture_array' (temp 3-element array of texture1D)
0:34              Constant:
0:34                2 (const int)
0:?             'g_tex[2]' (uniform texture1D)
0:35      Sequence
0:35        move second child to first child (temp 4-element array of float)
0:35          'local_float_array' (temp 4-element array of float)
0:35          g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float)
0:35            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:35            Constant:
0:35              2 (const uint)
0:37      move second child to first child (temp 4-component vector of float)
0:?         'color' (layout(location=0 ) out 4-component vector of float)
0:37        add (temp 4-component vector of float)
0:37          Function Call: TestFn1( (temp 4-component vector of float)
0:37          Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float)
0:37            Comma (temp 3-element array of texture1D)
0:37              Sequence
0:37                move second child to first child (temp texture1D)
0:37                  direct index (temp texture1D)
0:37                    'aggShadow' (temp 3-element array of texture1D)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_tex[0]' (uniform texture1D)
0:37                move second child to first child (temp texture1D)
0:37                  direct index (temp texture1D)
0:37                    'aggShadow' (temp 3-element array of texture1D)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_tex[1]' (uniform texture1D)
0:37                move second child to first child (temp texture1D)
0:37                  direct index (temp texture1D)
0:37                    'aggShadow' (temp 3-element array of texture1D)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_tex[2]' (uniform texture1D)
0:37              'aggShadow' (temp 3-element array of texture1D)
0:37            Comma (temp 3-element array of sampler)
0:37              Sequence
0:37                move second child to first child (temp sampler)
0:37                  direct index (temp sampler)
0:37                    'aggShadow' (temp 3-element array of sampler)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_samp[0]' (uniform sampler)
0:37                move second child to first child (temp sampler)
0:37                  direct index (temp sampler)
0:37                    'aggShadow' (temp 3-element array of sampler)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_samp[1]' (uniform sampler)
0:37                move second child to first child (temp sampler)
0:37                  direct index (temp sampler)
0:37                    'aggShadow' (temp 3-element array of sampler)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_samp[2]' (uniform sampler)
0:37              'aggShadow' (temp 3-element array of sampler)
0:?   Linker Objects
0:?     'g_tex[0]' (uniform texture1D)
0:?     'g_tex[1]' (uniform texture1D)
0:?     'g_tex[2]' (uniform texture1D)
0:?     'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D)
0:?     'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D)
0:?     'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D)
0:?     'g_samp[0]' (uniform sampler)
0:?     'g_samp[1]' (uniform sampler)
0:?     'g_samp[2]' (uniform sampler)
0:?     'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler)
0:?     'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler)
0:?     'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:?     'not_flattened_a' (global 5-element array of int)
0:?     'color' (layout(location=0 ) out 4-component vector of float)

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 99
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 9  "TestFn1("
                              Name 22  "TestFn2(t11[3];p1[3];"
                              Name 20  "l_tex"
                              Name 21  "l_samp"
                              Name 28  "not_flattened_a"
                              Name 36  "g_tex[1]"
                              Name 39  "g_samp[1]"
                              Name 55  "local_sampler_array"
                              Name 57  "g_samp[0]"
                              Name 62  "g_samp[2]"
                              Name 65  "local_texture_array"
                              Name 66  "g_tex[0]"
                              Name 71  "g_tex[2]"
                              Name 77  "local_float_array"
                              Name 83  "$Global"
                              MemberName 83($Global) 0  "g_mats"
                              MemberName 83($Global) 1  "g_mats_explicit"
                              MemberName 83($Global) 2  "g_floats"
                              Name 85  ""
                              Name 99  "color"
                              Name 101  "aggShadow"
                              Name 108  "aggShadow"
                              Name 117  "g_tex_explicit[0]"
                              Name 118  "g_tex_explicit[1]"
                              Name 119  "g_tex_explicit[2]"
                              Name 120  "g_samp_explicit[0]"
                              Name 121  "g_samp_explicit[1]"
                              Name 122  "g_samp_explicit[2]"
                              Decorate 36(g_tex[1]) DescriptorSet 0
                              Decorate 39(g_samp[1]) DescriptorSet 0
                              Decorate 57(g_samp[0]) DescriptorSet 0
                              Decorate 62(g_samp[2]) DescriptorSet 0
                              Decorate 66(g_tex[0]) DescriptorSet 0
                              Decorate 71(g_tex[2]) DescriptorSet 0
                              Decorate 80 ArrayStride 48
                              Decorate 81 ArrayStride 48
                              Decorate 82 ArrayStride 16
                              MemberDecorate 83($Global) 0 RowMajor
                              MemberDecorate 83($Global) 0 Offset 0
                              MemberDecorate 83($Global) 0 MatrixStride 16
                              MemberDecorate 83($Global) 1 RowMajor
                              MemberDecorate 83($Global) 1 Offset 192
                              MemberDecorate 83($Global) 1 MatrixStride 16
                              MemberDecorate 83($Global) 2 Offset 384
                              Decorate 83($Global) Block
                              Decorate 85 DescriptorSet 0
                              Decorate 99(color) Location 0
                              Decorate 117(g_tex_explicit[0]) DescriptorSet 0
                              Decorate 117(g_tex_explicit[0]) Binding 1
                              Decorate 118(g_tex_explicit[1]) DescriptorSet 0
                              Decorate 118(g_tex_explicit[1]) Binding 2
                              Decorate 119(g_tex_explicit[2]) DescriptorSet 0
                              Decorate 119(g_tex_explicit[2]) Binding 3
                              Decorate 120(g_samp_explicit[0]) DescriptorSet 0
                              Decorate 120(g_samp_explicit[0]) Binding 5
                              Decorate 121(g_samp_explicit[1]) DescriptorSet 0
                              Decorate 121(g_samp_explicit[1]) Binding 6
                              Decorate 122(g_samp_explicit[2]) DescriptorSet 0
                              Decorate 122(g_samp_explicit[2]) Binding 7
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeImage 6(float) 1D sampled format:Unknown
              12:             TypeInt 32 0
              13:     12(int) Constant 3
              14:             TypeArray 11 13
              15:             TypePointer UniformConstant 14
              16:             TypeSampler
              17:             TypeArray 16 13
              18:             TypePointer UniformConstant 17
              19:             TypeFunction 7(fvec4) 15(ptr) 18(ptr)
              24:             TypeInt 32 1
              25:     12(int) Constant 5
              26:             TypeArray 24(int) 25
              27:             TypePointer Private 26
28(not_flattened_a):     27(ptr) Variable Private
              29:     24(int) Constant 1
              30:     24(int) Constant 2
              31:     24(int) Constant 3
              32:     24(int) Constant 4
              33:     24(int) Constant 5
              34:          26 ConstantComposite 29 30 31 32 33
              35:             TypePointer UniformConstant 11
    36(g_tex[1]):     35(ptr) Variable UniformConstant
              38:             TypePointer UniformConstant 16
   39(g_samp[1]):     38(ptr) Variable UniformConstant
              41:             TypeSampledImage 11
              43:    6(float) Constant 1045220557
55(local_sampler_array):     18(ptr) Variable UniformConstant
              56:     24(int) Constant 0
   57(g_samp[0]):     38(ptr) Variable UniformConstant
   62(g_samp[2]):     38(ptr) Variable UniformConstant
65(local_texture_array):     15(ptr) Variable UniformConstant
    66(g_tex[0]):     35(ptr) Variable UniformConstant
    71(g_tex[2]):     35(ptr) Variable UniformConstant
              74:     12(int) Constant 4
              75:             TypeArray 6(float) 74
              76:             TypePointer Function 75
              78:             TypeVector 6(float) 3
              79:             TypeMatrix 78(fvec3) 3
              80:             TypeArray 79 74
              81:             TypeArray 79 74
              82:             TypeArray 6(float) 74
     83($Global):             TypeStruct 80 81 82
              84:             TypePointer Uniform 83($Global)
              85:     84(ptr) Variable Uniform
              86:             TypePointer Uniform 82
              90:             TypePointer Function 6(float)
              98:             TypePointer Output 7(fvec4)
       99(color):     98(ptr) Variable Output
  101(aggShadow):     15(ptr) Variable UniformConstant
  108(aggShadow):     18(ptr) Variable UniformConstant
117(g_tex_explicit[0]):     35(ptr) Variable UniformConstant
118(g_tex_explicit[1]):     35(ptr) Variable UniformConstant
119(g_tex_explicit[2]):     35(ptr) Variable UniformConstant
120(g_samp_explicit[0]):     38(ptr) Variable UniformConstant
121(g_samp_explicit[1]):     38(ptr) Variable UniformConstant
122(g_samp_explicit[2]):     38(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
77(local_float_array):     76(ptr) Variable Function
                              Store 28(not_flattened_a) 34
              58:          16 Load 57(g_samp[0])
              59:     38(ptr) AccessChain 55(local_sampler_array) 56
                              Store 59 58
              60:          16 Load 39(g_samp[1])
              61:     38(ptr) AccessChain 55(local_sampler_array) 29
                              Store 61 60
              63:          16 Load 62(g_samp[2])
              64:     38(ptr) AccessChain 55(local_sampler_array) 30
                              Store 64 63
              67:          11 Load 66(g_tex[0])
              68:     35(ptr) AccessChain 65(local_texture_array) 56
                              Store 68 67
              69:          11 Load 36(g_tex[1])
              70:     35(ptr) AccessChain 65(local_texture_array) 29
                              Store 70 69
              72:          11 Load 71(g_tex[2])
              73:     35(ptr) AccessChain 65(local_texture_array) 30
                              Store 73 72
              87:     86(ptr) AccessChain 85 30
              88:          82 Load 87
              89:    6(float) CompositeExtract 88 0
              91:     90(ptr) AccessChain 77(local_float_array) 56
                              Store 91 89
              92:    6(float) CompositeExtract 88 1
              93:     90(ptr) AccessChain 77(local_float_array) 29
                              Store 93 92
              94:    6(float) CompositeExtract 88 2
              95:     90(ptr) AccessChain 77(local_float_array) 30
                              Store 95 94
              96:    6(float) CompositeExtract 88 3
              97:     90(ptr) AccessChain 77(local_float_array) 31
                              Store 97 96
             100:    7(fvec4) FunctionCall 9(TestFn1()
             102:          11 Load 66(g_tex[0])
             103:     35(ptr) AccessChain 101(aggShadow) 56
                              Store 103 102
             104:          11 Load 36(g_tex[1])
             105:     35(ptr) AccessChain 101(aggShadow) 29
                              Store 105 104
             106:          11 Load 71(g_tex[2])
             107:     35(ptr) AccessChain 101(aggShadow) 30
                              Store 107 106
             109:          16 Load 57(g_samp[0])
             110:     38(ptr) AccessChain 108(aggShadow) 56
                              Store 110 109
             111:          16 Load 39(g_samp[1])
             112:     38(ptr) AccessChain 108(aggShadow) 29
                              Store 112 111
             113:          16 Load 62(g_samp[2])
             114:     38(ptr) AccessChain 108(aggShadow) 30
                              Store 114 113
             115:    7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 101(aggShadow) 108(aggShadow)
             116:    7(fvec4) FAdd 100 115
                              Store 99(color) 116
                              Return
                              FunctionEnd
     9(TestFn1():    7(fvec4) Function None 8
              10:             Label
              37:          11 Load 36(g_tex[1])
              40:          16 Load 39(g_samp[1])
              42:          41 SampledImage 37 40
              44:    7(fvec4) ImageSampleImplicitLod 42 43
                              ReturnValue 44
                              FunctionEnd
22(TestFn2(t11[3];p1[3];):    7(fvec4) Function None 19
       20(l_tex):     15(ptr) FunctionParameter
      21(l_samp):     18(ptr) FunctionParameter
              23:             Label
              47:     35(ptr) AccessChain 20(l_tex) 30
              48:          11 Load 47
              49:     38(ptr) AccessChain 21(l_samp) 30
              50:          16 Load 49
              51:          41 SampledImage 48 50
              52:    7(fvec4) ImageSampleImplicitLod 51 43
                              ReturnValue 52
                              FunctionEnd
