hlsl.array.implicit-size.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Sequence
0:3    move second child to first child ( temp 5-element array of float)
0:3      'g_array' ( global 5-element array of float)
0:3      Constant:
0:3        1.000000
0:3        2.000000
0:3        3.000000
0:3        4.000000
0:3        5.000000
0:6  Sequence
0:6    move second child to first child ( temp 7-element array of float)
0:6      'g_array_unused' ( global 7-element array of float)
0:6      Constant:
0:6        1.000000
0:6        2.000000
0:6        3.000000
0:6        4.000000
0:6        5.000000
0:6        6.000000
0:6        7.000000
0:12  Sequence
0:12    move second child to first child ( temp 2-element array of structure{ temp int i,  temp float f})
0:12      'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})
0:12      Constant:
0:12        1 (const int)
0:12        2.000000
0:12        3 (const int)
0:12        4.000000
0:26  Function Definition: main(struct-PS_OUTPUT-vf41; ( temp void)
0:26    Function Parameters: 
0:26      'ps_output' ( out structure{ temp 4-component vector of float color})
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp 3-element array of float)
0:28          'l_array' ( temp 3-element array of float)
0:28          Constant:
0:28            1.000000
0:28            2.000000
0:28            3.000000
0:31      move second child to first child ( temp 4-component vector of float)
0:31        color: direct index for structure ( temp 4-component vector of float)
0:31          'ps_output' ( out structure{ temp 4-component vector of float color})
0:31          Constant:
0:31            0 (const int)
0:31        Construct vec4 ( temp 4-component vector of float)
0:31          add ( temp float)
0:31            add ( temp float)
0:31              add ( temp float)
0:31                add ( temp float)
0:31                  direct index ( temp float)
0:31                    'g_array' ( global 5-element array of float)
0:31                    Constant:
0:31                      0 (const int)
0:31                  direct index ( temp float)
0:31                    'g_array' ( global 5-element array of float)
0:31                    Constant:
0:31                      4 (const int)
0:31                direct index ( temp float)
0:31                  'l_array' ( temp 3-element array of float)
0:31                  Constant:
0:31                    1 (const int)
0:31              f: direct index for structure ( temp float)
0:31                direct index ( temp structure{ temp int i,  temp float f})
0:31                  'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})
0:31                  Constant:
0:31                    0 (const int)
0:31                Constant:
0:31                  1 (const int)
0:31            indirect index ( temp float)
0:31              'g_array' ( global 5-element array of float)
0:31              'idx' ( temp int)
0:?   Linker Objects
0:?     'g_array' ( global 5-element array of float)
0:?     'g_array_unused' ( global 7-element array of float)
0:?     'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})


Linked fragment stage:

WARNING: Linking fragment stage: Entry point not found

Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Sequence
0:3    move second child to first child ( temp 5-element array of float)
0:3      'g_array' ( global 5-element array of float)
0:3      Constant:
0:3        1.000000
0:3        2.000000
0:3        3.000000
0:3        4.000000
0:3        5.000000
0:6  Sequence
0:6    move second child to first child ( temp 7-element array of float)
0:6      'g_array_unused' ( global 7-element array of float)
0:6      Constant:
0:6        1.000000
0:6        2.000000
0:6        3.000000
0:6        4.000000
0:6        5.000000
0:6        6.000000
0:6        7.000000
0:12  Sequence
0:12    move second child to first child ( temp 2-element array of structure{ temp int i,  temp float f})
0:12      'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})
0:12      Constant:
0:12        1 (const int)
0:12        2.000000
0:12        3 (const int)
0:12        4.000000
0:26  Function Definition: main(struct-PS_OUTPUT-vf41; ( temp void)
0:26    Function Parameters: 
0:26      'ps_output' ( out structure{ temp 4-component vector of float color})
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp 3-element array of float)
0:28          'l_array' ( temp 3-element array of float)
0:28          Constant:
0:28            1.000000
0:28            2.000000
0:28            3.000000
0:31      move second child to first child ( temp 4-component vector of float)
0:31        color: direct index for structure ( temp 4-component vector of float)
0:31          'ps_output' ( out structure{ temp 4-component vector of float color})
0:31          Constant:
0:31            0 (const int)
0:31        Construct vec4 ( temp 4-component vector of float)
0:31          add ( temp float)
0:31            add ( temp float)
0:31              add ( temp float)
0:31                add ( temp float)
0:31                  direct index ( temp float)
0:31                    'g_array' ( global 5-element array of float)
0:31                    Constant:
0:31                      0 (const int)
0:31                  direct index ( temp float)
0:31                    'g_array' ( global 5-element array of float)
0:31                    Constant:
0:31                      4 (const int)
0:31                direct index ( temp float)
0:31                  'l_array' ( temp 3-element array of float)
0:31                  Constant:
0:31                    1 (const int)
0:31              f: direct index for structure ( temp float)
0:31                direct index ( temp structure{ temp int i,  temp float f})
0:31                  'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})
0:31                  Constant:
0:31                    0 (const int)
0:31                Constant:
0:31                  1 (const int)
0:31            indirect index ( temp float)
0:31              'g_array' ( global 5-element array of float)
0:31              'idx' ( temp int)
0:?   Linker Objects
0:?     'g_array' ( global 5-element array of float)
0:?     'g_array_unused' ( global 7-element array of float)
0:?     'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction"
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "color"
                              Name 12  "main(struct-PS_OUTPUT-vf41;"
                              Name 11  "ps_output"
                              Name 18  "g_array"
                              Name 28  "g_array_unused"
                              Name 33  "mystruct"
                              MemberName 33(mystruct) 0  "i"
                              MemberName 33(mystruct) 1  "f"
                              Name 37  "g_mystruct"
                              Name 46  "l_array"
                              Name 64  "idx"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypePointer Function 8(PS_OUTPUT)
              10:             TypeFunction 2 9(ptr)
              14:             TypeInt 32 0
              15:     14(int) Constant 5
              16:             TypeArray 6(float) 15
              17:             TypePointer Private 16
     18(g_array):     17(ptr) Variable Private
              19:    6(float) Constant 1065353216
              20:    6(float) Constant 1073741824
              21:    6(float) Constant 1077936128
              22:    6(float) Constant 1082130432
              23:    6(float) Constant 1084227584
              24:          16 ConstantComposite 19 20 21 22 23
              25:     14(int) Constant 7
              26:             TypeArray 6(float) 25
              27:             TypePointer Private 26
28(g_array_unused):     27(ptr) Variable Private
              29:    6(float) Constant 1086324736
              30:    6(float) Constant 1088421888
              31:          26 ConstantComposite 19 20 21 22 23 29 30
              32:             TypeInt 32 1
    33(mystruct):             TypeStruct 32(int) 6(float)
              34:     14(int) Constant 2
              35:             TypeArray 33(mystruct) 34
              36:             TypePointer Private 35
  37(g_mystruct):     36(ptr) Variable Private
              38:     32(int) Constant 1
              39:33(mystruct) ConstantComposite 38 20
              40:     32(int) Constant 3
              41:33(mystruct) ConstantComposite 40 22
              42:          35 ConstantComposite 39 41
              43:     14(int) Constant 3
              44:             TypeArray 6(float) 43
              45:             TypePointer Function 44
              47:          44 ConstantComposite 19 20 21
              48:     32(int) Constant 0
              49:             TypePointer Private 6(float)
              52:     32(int) Constant 4
              56:             TypePointer Function 6(float)
              63:             TypePointer Function 32(int)
              70:             TypePointer Function 7(fvec4)
4(PixelShaderFunction):           2 Function None 3
               5:             Label
                              Store 18(g_array) 24
                              Store 28(g_array_unused) 31
                              Store 37(g_mystruct) 42
                              Return
                              FunctionEnd
12(main(struct-PS_OUTPUT-vf41;):           2 Function None 10
   11(ps_output):      9(ptr) FunctionParameter
              13:             Label
     46(l_array):     45(ptr) Variable Function
         64(idx):     63(ptr) Variable Function
                              Store 46(l_array) 47
              50:     49(ptr) AccessChain 18(g_array) 48
              51:    6(float) Load 50
              53:     49(ptr) AccessChain 18(g_array) 52
              54:    6(float) Load 53
              55:    6(float) FAdd 51 54
              57:     56(ptr) AccessChain 46(l_array) 38
              58:    6(float) Load 57
              59:    6(float) FAdd 55 58
              60:     49(ptr) AccessChain 37(g_mystruct) 48 38
              61:    6(float) Load 60
              62:    6(float) FAdd 59 61
              65:     32(int) Load 64(idx)
              66:     49(ptr) AccessChain 18(g_array) 65
              67:    6(float) Load 66
              68:    6(float) FAdd 62 67
              69:    7(fvec4) CompositeConstruct 68 68 68 68
              71:     70(ptr) AccessChain 11(ps_output) 48
                              Store 71 69
                              Return
                              FunctionEnd
