hlsl.array.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
0:8    Function Parameters: 
0:8      'i' (layout(location=0 ) in int)
0:8      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:?     Sequence
0:10      Sequence
0:10        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10          add (temp 4-component vector of float)
0:10            add (temp 4-component vector of float)
0:10              add (temp 4-component vector of float)
0:10                add (temp 4-component vector of float)
0:10                  add (temp 4-component vector of float)
0:10                    add (temp 4-component vector of float)
0:10                      direct index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        Constant:
0:10                          1 (const int)
0:10                      indirect index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'i' (layout(location=0 ) in int)
0:10                    direct index (layout(location=1 ) temp 4-component vector of float)
0:10                      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                      Constant:
0:10                        2 (const int)
0:10                  indirect index (layout(location=1 ) temp 4-component vector of float)
0:10                    'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                    'i' (layout(location=0 ) in int)
0:10                direct index (temp 4-component vector of float)
0:10                  'b' (temp 10-element array of 4-component vector of float)
0:10                  Constant:
0:10                    5 (const int)
0:10              indirect index (temp 4-component vector of float)
0:10                'b' (temp 10-element array of 4-component vector of float)
0:10                'i' (layout(location=0 ) in int)
0:10            indirect index (temp 4-component vector of float)
0:10              m: direct index for structure (temp 7-element array of 4-component vector of float)
0:10                indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m})
0:10                  s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10                    'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                    Constant:
0:10                      1 (const uint)
0:10                  'i' (layout(location=0 ) in int)
0:10                Constant:
0:10                  0 (const int)
0:10              'i' (layout(location=0 ) in int)
0:10        Branch: Return
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'i' (layout(location=0 ) in int)
0:?     'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
0:8    Function Parameters: 
0:8      'i' (layout(location=0 ) in int)
0:8      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:?     Sequence
0:10      Sequence
0:10        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10          add (temp 4-component vector of float)
0:10            add (temp 4-component vector of float)
0:10              add (temp 4-component vector of float)
0:10                add (temp 4-component vector of float)
0:10                  add (temp 4-component vector of float)
0:10                    add (temp 4-component vector of float)
0:10                      direct index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        Constant:
0:10                          1 (const int)
0:10                      indirect index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'i' (layout(location=0 ) in int)
0:10                    direct index (layout(location=1 ) temp 4-component vector of float)
0:10                      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                      Constant:
0:10                        2 (const int)
0:10                  indirect index (layout(location=1 ) temp 4-component vector of float)
0:10                    'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                    'i' (layout(location=0 ) in int)
0:10                direct index (temp 4-component vector of float)
0:10                  'b' (temp 10-element array of 4-component vector of float)
0:10                  Constant:
0:10                    5 (const int)
0:10              indirect index (temp 4-component vector of float)
0:10                'b' (temp 10-element array of 4-component vector of float)
0:10                'i' (layout(location=0 ) in int)
0:10            indirect index (temp 4-component vector of float)
0:10              m: direct index for structure (temp 7-element array of 4-component vector of float)
0:10                indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m})
0:10                  s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10                    'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                    Constant:
0:10                      1 (const uint)
0:10                  'i' (layout(location=0 ) in int)
0:10                Constant:
0:10                  0 (const int)
0:10              'i' (layout(location=0 ) in int)
0:10        Branch: Return
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'i' (layout(location=0 ) in int)
0:?     'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 9 28 36
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 9  "@entryPointOutput"
                              Name 15  ""
                              MemberName 15 0  "m"
                              Name 18  "$Global"
                              MemberName 18($Global) 0  "a"
                              MemberName 18($Global) 1  "s"
                              Name 20  ""
                              Name 28  "i"
                              Name 36  "input"
                              Name 49  "b"
                              Decorate 9(@entryPointOutput) Location 0
                              Decorate 12 ArrayStride 16
                              Decorate 14 ArrayStride 16
                              MemberDecorate 15 0 Offset 0
                              Decorate 17 ArrayStride 112
                              MemberDecorate 18($Global) 0 Offset 0
                              MemberDecorate 18($Global) 1 Offset 64
                              Decorate 18($Global) Block
                              Decorate 20 DescriptorSet 0
                              Decorate 28(i) Location 0
                              Decorate 36(input) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
9(@entryPointOutput):      8(ptr) Variable Output
              10:             TypeInt 32 0
              11:     10(int) Constant 4
              12:             TypeArray 7(fvec4) 11
              13:     10(int) Constant 7
              14:             TypeArray 7(fvec4) 13
              15:             TypeStruct 14
              16:     10(int) Constant 11
              17:             TypeArray 15(struct) 16
     18($Global):             TypeStruct 12 17
              19:             TypePointer Uniform 18($Global)
              20:     19(ptr) Variable Uniform
              21:             TypeInt 32 1
              22:     21(int) Constant 0
              23:     21(int) Constant 1
              24:             TypePointer Uniform 7(fvec4)
              27:             TypePointer Input 21(int)
           28(i):     27(ptr) Variable Input
              33:     10(int) Constant 3
              34:             TypeArray 7(fvec4) 33
              35:             TypePointer Input 34
       36(input):     35(ptr) Variable Input
              37:     21(int) Constant 2
              38:             TypePointer Input 7(fvec4)
              46:     10(int) Constant 10
              47:             TypeArray 7(fvec4) 46
              48:             TypePointer Function 47
              50:     21(int) Constant 5
              51:             TypePointer Function 7(fvec4)
4(PixelShaderFunction):           2 Function None 3
               5:             Label
           49(b):     48(ptr) Variable Function
              25:     24(ptr) AccessChain 20 22 23
              26:    7(fvec4) Load 25
              29:     21(int) Load 28(i)
              30:     24(ptr) AccessChain 20 22 29
              31:    7(fvec4) Load 30
              32:    7(fvec4) FAdd 26 31
              39:     38(ptr) AccessChain 36(input) 37
              40:    7(fvec4) Load 39
              41:    7(fvec4) FAdd 32 40
              42:     21(int) Load 28(i)
              43:     38(ptr) AccessChain 36(input) 42
              44:    7(fvec4) Load 43
              45:    7(fvec4) FAdd 41 44
              52:     51(ptr) AccessChain 49(b) 50
              53:    7(fvec4) Load 52
              54:    7(fvec4) FAdd 45 53
              55:     21(int) Load 28(i)
              56:     51(ptr) AccessChain 49(b) 55
              57:    7(fvec4) Load 56
              58:    7(fvec4) FAdd 54 57
              59:     21(int) Load 28(i)
              60:     21(int) Load 28(i)
              61:     24(ptr) AccessChain 20 23 59 22 60
              62:    7(fvec4) Load 61
              63:    7(fvec4) FAdd 58 62
                              Store 9(@entryPointOutput) 63
                              Return
                              FunctionEnd
