hlsl.amend.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
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 (layout(offset=0 ) uniform 4-component vector of float)
0:6          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6          Constant:
0:6            0 (const uint)
0:6        b: direct index for structure (layout(offset=16 ) uniform float)
0:6          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6          Constant:
0:6            1 (const uint)
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 (layout(offset=0 ) uniform 4-component vector of float)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=16 ) uniform float)
0:13            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=32 ) uniform 3-component vector of float)
0:13            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=32 ) uniform 3-component vector of float)
0:18        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=44 ) uniform int)
0:25            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25            Constant:
0:25              3 (const uint)
0:25        a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:25          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25          Constant:
0:25            0 (const uint)
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
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 (layout(offset=0 ) uniform 4-component vector of float)
0:6          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6          Constant:
0:6            0 (const uint)
0:6        b: direct index for structure (layout(offset=16 ) uniform float)
0:6          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:6          Constant:
0:6            1 (const uint)
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 (layout(offset=0 ) uniform 4-component vector of float)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=16 ) uniform float)
0:13            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=32 ) uniform 3-component vector of float)
0:13            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=32 ) uniform 3-component vector of float)
0:18        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) 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 (layout(offset=44 ) uniform int)
0:25            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25            Constant:
0:25              3 (const uint)
0:25        a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float)
0:25          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
0:25          Constant:
0:25            0 (const uint)
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})

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

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