hlsl.amend.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Sequence
0:3    move second child to first child ( temp 4-component vector of float)
0:3      'm' ( global 4-component vector of float)
0:3      vector-scale ( temp 4-component vector of float)
0:3        a: direct index for structure ( uniform 4-component vector of float)
0:3          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:3          Constant:
0:3            0 (const uint)
0:3        b: direct index for structure ( uniform float)
0:3          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:3          Constant:
0:3            1 (const uint)
0:5  Function Definition: @f1( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:6      vector-scale ( temp 4-component vector of float)
0:6        a: direct index for structure ( uniform 4-component vector of float)
0:6          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:6          Constant:
0:6            0 (const uint)
0:6        b: direct index for structure ( uniform float)
0:6          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:6          Constant:
0:6            1 (const uint)
0:5  Function Definition: f1( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      Function Call: @f1( ( temp void)
0:12  Function Definition: f2( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:13      add ( temp float)
0:13        add ( temp float)
0:13          direct index ( temp float)
0:13            a: direct index for structure ( uniform 4-component vector of float)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:13              Constant:
0:13                0 (const uint)
0:13            Constant:
0:13              0 (const int)
0:13          b: direct index for structure ( uniform float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:13            Constant:
0:13              1 (const uint)
0:13        direct index ( temp float)
0:13          c: direct index for structure ( uniform 3-component vector of float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:13            Constant:
0:13              2 (const uint)
0:13          Constant:
0:13            0 (const int)
0:17  Function Definition: f3( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:18      c: direct index for structure ( uniform 3-component vector of float)
0:18        'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:18        Constant:
0:18          2 (const uint)
0:24  Function Definition: f4( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:25      vector-scale ( temp 4-component vector of float)
0:25        Convert int to float ( temp float)
0:25          d: direct index for structure ( uniform int)
0:25            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:25            Constant:
0:25              3 (const uint)
0:25        a: direct index for structure ( uniform 4-component vector of float)
0:25          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:25          Constant:
0:25            0 (const uint)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:?     'm' ( global 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Sequence
0:3    move second child to first child ( temp 4-component vector of float)
0:3      'm' ( global 4-component vector of float)
0:3      vector-scale ( temp 4-component vector of float)
0:3        a: direct index for structure ( uniform 4-component vector of float)
0:3          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:3          Constant:
0:3            0 (const uint)
0:3        b: direct index for structure ( uniform float)
0:3          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:3          Constant:
0:3            1 (const uint)
0:5  Function Definition: @f1( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:6      vector-scale ( temp 4-component vector of float)
0:6        a: direct index for structure ( uniform 4-component vector of float)
0:6          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:6          Constant:
0:6            0 (const uint)
0:6        b: direct index for structure ( uniform float)
0:6          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:6          Constant:
0:6            1 (const uint)
0:5  Function Definition: f1( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      Function Call: @f1( ( temp void)
0:12  Function Definition: f2( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:13      add ( temp float)
0:13        add ( temp float)
0:13          direct index ( temp float)
0:13            a: direct index for structure ( uniform 4-component vector of float)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:13              Constant:
0:13                0 (const uint)
0:13            Constant:
0:13              0 (const int)
0:13          b: direct index for structure ( uniform float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:13            Constant:
0:13              1 (const uint)
0:13        direct index ( temp float)
0:13          c: direct index for structure ( uniform 3-component vector of float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:13            Constant:
0:13              2 (const uint)
0:13          Constant:
0:13            0 (const int)
0:17  Function Definition: f3( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:18      c: direct index for structure ( uniform 3-component vector of float)
0:18        'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:18        Constant:
0:18          2 (const uint)
0:24  Function Definition: f4( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:25      vector-scale ( temp 4-component vector of float)
0:25        Convert int to float ( temp float)
0:25          d: direct index for structure ( uniform int)
0:25            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:25            Constant:
0:25              3 (const uint)
0:25        a: direct index for structure ( uniform 4-component vector of float)
0:25          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:25          Constant:
0:25            0 (const uint)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a,  uniform float b,  uniform 3-component vector of float c,  uniform int d,  uniform int e})
0:?     'm' ( global 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "f1"
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "f1"
                              Name 6  "@f1("
                              Name 8  "f2("
                              Name 10  "f3("
                              Name 12  "f4("
                              Name 17  "m"
                              Name 20  "$Global"
                              MemberName 20($Global) 0  "a"
                              MemberName 20($Global) 1  "b"
                              MemberName 20($Global) 2  "c"
                              MemberName 20($Global) 3  "d"
                              MemberName 20($Global) 4  "e"
                              Name 22  ""
                              MemberDecorate 20($Global) 0 Offset 0
                              MemberDecorate 20($Global) 1 Offset 16
                              MemberDecorate 20($Global) 2 Offset 32
                              MemberDecorate 20($Global) 3 Offset 44
                              MemberDecorate 20($Global) 4 Offset 48
                              Decorate 20($Global) Block
                              Decorate 22 DescriptorSet 0
                              Decorate 22 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
              14:             TypeFloat 32
              15:             TypeVector 14(float) 4
              16:             TypePointer Private 15(fvec4)
           17(m):     16(ptr) Variable Private
              18:             TypeVector 14(float) 3
              19:             TypeInt 32 1
     20($Global):             TypeStruct 15(fvec4) 14(float) 18(fvec3) 19(int) 19(int)
              21:             TypePointer Uniform 20($Global)
              22:     21(ptr) Variable Uniform
              23:     19(int) Constant 0
              24:             TypePointer Uniform 15(fvec4)
              27:     19(int) Constant 1
              28:             TypePointer Uniform 14(float)
              38:             TypeInt 32 0
              39:     38(int) Constant 0
              45:     19(int) Constant 2
              49:     19(int) Constant 3
              50:             TypePointer Uniform 19(int)
           4(f1):           2 Function None 3
               5:             Label
              25:     24(ptr) AccessChain 22 23
              26:   15(fvec4) Load 25
              29:     28(ptr) AccessChain 22 27
              30:   14(float) Load 29
              31:   15(fvec4) VectorTimesScalar 26 30
                              Store 17(m) 31
              37:           2 FunctionCall 6(@f1()
                              Return
                              FunctionEnd
         6(@f1():           2 Function None 3
               7:             Label
              32:     24(ptr) AccessChain 22 23
              33:   15(fvec4) Load 32
              34:     28(ptr) AccessChain 22 27
              35:   14(float) Load 34
              36:   15(fvec4) VectorTimesScalar 33 35
                              Return
                              FunctionEnd
          8(f2():           2 Function None 3
               9:             Label
              40:     28(ptr) AccessChain 22 23 39
              41:   14(float) Load 40
              42:     28(ptr) AccessChain 22 27
              43:   14(float) Load 42
              44:   14(float) FAdd 41 43
              46:     28(ptr) AccessChain 22 45 39
              47:   14(float) Load 46
              48:   14(float) FAdd 44 47
                              Return
                              FunctionEnd
         10(f3():           2 Function None 3
              11:             Label
                              Return
                              FunctionEnd
         12(f4():           2 Function None 3
              13:             Label
              51:     50(ptr) AccessChain 22 49
              52:     19(int) Load 51
              53:   14(float) ConvertSToF 52
              54:     24(ptr) AccessChain 22 23
              55:   15(fvec4) Load 54
              56:   15(fvec4) VectorTimesScalar 55 53
                              Return
                              FunctionEnd
