hlsl.init.frag
WARNING: 0:40: 'typedef' : struct-member initializers ignored 
WARNING: 0:40: 'typedef' : struct-member initializers ignored 

Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:1  Sequence
0:1    move second child to first child ( temp 4-component vector of float)
0:1      'a1' ( global 4-component vector of float)
0:?       Constant:
0:?         1.000000
0:?         0.500000
0:?         0.000000
0:?         1.000000
0:1    move second child to first child ( temp 4-component vector of float)
0:1      'b1' ( global 4-component vector of float)
0:?       Constant:
0:?         2.000000
0:?         2.500000
0:?         2.100000
0:?         2.200000
0:2  Sequence
0:2    move second child to first child ( temp 4-component vector of float)
0:2      'a1i' ( global 4-component vector of float)
0:2      Constant:
0:2        1.000000
0:2        0.500000
0:2        0.000000
0:2        1.000000
0:2    move second child to first child ( temp 4-component vector of float)
0:2      'b1i' ( global 4-component vector of float)
0:2      Constant:
0:2        2.000000
0:2        2.500000
0:2        2.100000
0:2        2.200000
0:3  Sequence
0:3    move second child to first child ( temp float)
0:3      'a2' ( global float)
0:3      Constant:
0:3        0.200000
0:4  Sequence
0:4    move second child to first child ( temp float)
0:4      'b3' ( global float)
0:4      Constant:
0:4        0.300000
0:5  Sequence
0:5    move second child to first child ( temp float)
0:5      'b4' ( global float)
0:5      Constant:
0:5        0.400000
0:6  Sequence
0:6    move second child to first child ( temp float)
0:6      'a5' ( global float)
0:6      Constant:
0:6        0.500000
0:6    move second child to first child ( temp float)
0:6      'c5' ( global float)
0:6      Constant:
0:6        1.500000
0:9  Sequence
0:9    move second child to first child ( temp structure{ temp int f})
0:9      'single1' ( global structure{ temp int f})
0:9      Constant:
0:9        10 (const int)
0:12  Sequence
0:12    move second child to first child ( temp structure{ temp 2-component vector of uint v})
0:12      'single2' ( global structure{ temp 2-component vector of uint v})
0:12      Constant:
0:12        1 (const uint)
0:12        2 (const uint)
0:15  Sequence
0:15    move second child to first child ( temp structure{ temp structure{ temp int f} s1})
0:15      'single3' ( global structure{ temp structure{ temp int f} s1})
0:15      Constant:
0:15        3 (const int)
0:18  Sequence
0:18    move second child to first child ( temp structure{ temp structure{ temp 2-component vector of uint v} s1})
0:18      'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1})
0:18      Constant:
0:18        4 (const uint)
0:18        5 (const uint)
0:21  Function Definition: @ShaderFunction(vf4; ( temp 4-component vector of float)
0:21    Function Parameters: 
0:21      'input' ( in 4-component vector of float)
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp 4-component vector of float)
0:22          'a2' ( temp 4-component vector of float)
0:?           Constant:
0:?             0.200000
0:?             0.300000
0:?             0.400000
0:?             0.500000
0:32      Sequence
0:32        move second child to first child ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32          's2i' ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32          Construct structure ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32            Constant:
0:32              9 (const int)
0:32            'a5' ( global float)
0:32            Construct structure ( temp structure{ temp float f,  temp int i})
0:32              Comma ( temp float)
0:32                'a3' ( global float)
0:32                'a4' ( global float)
0:32              Constant:
0:32                12 (const int)
0:32        move second child to first child ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32          's2' ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:?           Construct structure ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32            Constant:
0:32              9 (const int)
0:32            'a5' ( global float)
0:?             Construct structure ( temp structure{ temp float f,  temp int i})
0:32              Comma ( temp float)
0:32                'a3' ( global float)
0:32                'a4' ( global float)
0:32              Constant:
0:32                12 (const int)
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'a8' ( temp float)
0:33          Comma ( temp float)
0:33            'a2' ( temp 4-component vector of float)
0:33            'b2' ( global float)
0:33        move second child to first child ( temp float)
0:33          'a9' ( temp float)
0:33          'a5' ( global float)
0:35      Branch: Return with expression
0:35        component-wise multiply ( temp 4-component vector of float)
0:35          'input' ( in 4-component vector of float)
0:35          'a1' ( global 4-component vector of float)
0:21  Function Definition: ShaderFunction( ( temp void)
0:21    Function Parameters: 
0:?     Sequence
0:21      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:21      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:21        Function Call: @ShaderFunction(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'a1' ( global 4-component vector of float)
0:?     'b1' ( global 4-component vector of float)
0:?     'a1i' ( global 4-component vector of float)
0:?     'b1i' ( global 4-component vector of float)
0:?     'a2' ( global float)
0:?     'b2' ( global float)
0:?     'a3' ( global float)
0:?     'b3' ( global float)
0:?     'a4' ( global float)
0:?     'b4' ( global float)
0:?     'c4' ( global float)
0:?     'a5' ( global float)
0:?     'b5' ( global float)
0:?     'c5' ( global float)
0:?     'single1' ( global structure{ temp int f})
0:?     'single2' ( global structure{ temp 2-component vector of uint v})
0:?     'single3' ( global structure{ temp structure{ temp int f} s1})
0:?     'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)
0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c})


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:1  Sequence
0:1    move second child to first child ( temp 4-component vector of float)
0:1      'a1' ( global 4-component vector of float)
0:?       Constant:
0:?         1.000000
0:?         0.500000
0:?         0.000000
0:?         1.000000
0:1    move second child to first child ( temp 4-component vector of float)
0:1      'b1' ( global 4-component vector of float)
0:?       Constant:
0:?         2.000000
0:?         2.500000
0:?         2.100000
0:?         2.200000
0:2  Sequence
0:2    move second child to first child ( temp 4-component vector of float)
0:2      'a1i' ( global 4-component vector of float)
0:2      Constant:
0:2        1.000000
0:2        0.500000
0:2        0.000000
0:2        1.000000
0:2    move second child to first child ( temp 4-component vector of float)
0:2      'b1i' ( global 4-component vector of float)
0:2      Constant:
0:2        2.000000
0:2        2.500000
0:2        2.100000
0:2        2.200000
0:3  Sequence
0:3    move second child to first child ( temp float)
0:3      'a2' ( global float)
0:3      Constant:
0:3        0.200000
0:4  Sequence
0:4    move second child to first child ( temp float)
0:4      'b3' ( global float)
0:4      Constant:
0:4        0.300000
0:5  Sequence
0:5    move second child to first child ( temp float)
0:5      'b4' ( global float)
0:5      Constant:
0:5        0.400000
0:6  Sequence
0:6    move second child to first child ( temp float)
0:6      'a5' ( global float)
0:6      Constant:
0:6        0.500000
0:6    move second child to first child ( temp float)
0:6      'c5' ( global float)
0:6      Constant:
0:6        1.500000
0:9  Sequence
0:9    move second child to first child ( temp structure{ temp int f})
0:9      'single1' ( global structure{ temp int f})
0:9      Constant:
0:9        10 (const int)
0:12  Sequence
0:12    move second child to first child ( temp structure{ temp 2-component vector of uint v})
0:12      'single2' ( global structure{ temp 2-component vector of uint v})
0:12      Constant:
0:12        1 (const uint)
0:12        2 (const uint)
0:15  Sequence
0:15    move second child to first child ( temp structure{ temp structure{ temp int f} s1})
0:15      'single3' ( global structure{ temp structure{ temp int f} s1})
0:15      Constant:
0:15        3 (const int)
0:18  Sequence
0:18    move second child to first child ( temp structure{ temp structure{ temp 2-component vector of uint v} s1})
0:18      'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1})
0:18      Constant:
0:18        4 (const uint)
0:18        5 (const uint)
0:21  Function Definition: @ShaderFunction(vf4; ( temp 4-component vector of float)
0:21    Function Parameters: 
0:21      'input' ( in 4-component vector of float)
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp 4-component vector of float)
0:22          'a2' ( temp 4-component vector of float)
0:?           Constant:
0:?             0.200000
0:?             0.300000
0:?             0.400000
0:?             0.500000
0:32      Sequence
0:32        move second child to first child ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32          's2i' ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32          Construct structure ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32            Constant:
0:32              9 (const int)
0:32            'a5' ( global float)
0:32            Construct structure ( temp structure{ temp float f,  temp int i})
0:32              Comma ( temp float)
0:32                'a3' ( global float)
0:32                'a4' ( global float)
0:32              Constant:
0:32                12 (const int)
0:32        move second child to first child ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32          's2' ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:?           Construct structure ( temp structure{ temp int j,  temp float g,  temp structure{ temp float f,  temp int i} s1})
0:32            Constant:
0:32              9 (const int)
0:32            'a5' ( global float)
0:?             Construct structure ( temp structure{ temp float f,  temp int i})
0:32              Comma ( temp float)
0:32                'a3' ( global float)
0:32                'a4' ( global float)
0:32              Constant:
0:32                12 (const int)
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'a8' ( temp float)
0:33          Comma ( temp float)
0:33            'a2' ( temp 4-component vector of float)
0:33            'b2' ( global float)
0:33        move second child to first child ( temp float)
0:33          'a9' ( temp float)
0:33          'a5' ( global float)
0:35      Branch: Return with expression
0:35        component-wise multiply ( temp 4-component vector of float)
0:35          'input' ( in 4-component vector of float)
0:35          'a1' ( global 4-component vector of float)
0:21  Function Definition: ShaderFunction( ( temp void)
0:21    Function Parameters: 
0:?     Sequence
0:21      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:21      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:21        Function Call: @ShaderFunction(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'a1' ( global 4-component vector of float)
0:?     'b1' ( global 4-component vector of float)
0:?     'a1i' ( global 4-component vector of float)
0:?     'b1i' ( global 4-component vector of float)
0:?     'a2' ( global float)
0:?     'b2' ( global float)
0:?     'a3' ( global float)
0:?     'b3' ( global float)
0:?     'a4' ( global float)
0:?     'b4' ( global float)
0:?     'c4' ( global float)
0:?     'a5' ( global float)
0:?     'b5' ( global float)
0:?     'c5' ( global float)
0:?     'single1' ( global structure{ temp int f})
0:?     'single2' ( global structure{ temp 2-component vector of uint v})
0:?     'single3' ( global structure{ temp structure{ temp int f} s1})
0:?     'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)
0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "ShaderFunction" 98 101
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "ShaderFunction"
                              Name 11  "@ShaderFunction(vf4;"
                              Name 10  "input"
                              Name 14  "a1"
                              Name 19  "b1"
                              Name 25  "a1i"
                              Name 26  "b1i"
                              Name 28  "a2"
                              Name 30  "b3"
                              Name 32  "b4"
                              Name 34  "a5"
                              Name 35  "c5"
                              Name 38  "Single1"
                              MemberName 38(Single1) 0  "f"
                              Name 40  "single1"
                              Name 45  "Single2"
                              MemberName 45(Single2) 0  "v"
                              Name 47  "single2"
                              Name 52  "Single3"
                              MemberName 52(Single3) 0  "s1"
                              Name 54  "single3"
                              Name 58  "Single4"
                              MemberName 58(Single4) 0  "s1"
                              Name 60  "single4"
                              Name 66  "a2"
                              Name 68  "S1"
                              MemberName 68(S1) 0  "f"
                              MemberName 68(S1) 1  "i"
                              Name 69  "S2"
                              MemberName 69(S2) 0  "j"
                              MemberName 69(S2) 1  "g"
                              MemberName 69(S2) 2  "s1"
                              Name 71  "s2i"
                              Name 74  "a3"
                              Name 75  "a4"
                              Name 80  "s2"
                              Name 86  "a8"
                              Name 87  "b2"
                              Name 89  "a9"
                              Name 96  "input"
                              Name 98  "input"
                              Name 101  "@entryPointOutput"
                              Name 102  "param"
                              Name 105  "c4"
                              Name 106  "b5"
                              Name 107  "Constants"
                              MemberName 107(Constants) 0  "a"
                              MemberName 107(Constants) 1  "b"
                              MemberName 107(Constants) 2  "c"
                              Name 109  ""
                              Decorate 98(input) Location 0
                              Decorate 101(@entryPointOutput) Location 0
                              MemberDecorate 107(Constants) 0 Offset 0
                              MemberDecorate 107(Constants) 1 Offset 4
                              MemberDecorate 107(Constants) 2 Offset 8
                              Decorate 107(Constants) Block
                              Decorate 109 DescriptorSet 0
                              Decorate 109 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 7(fvec4) 8(ptr)
              13:             TypePointer Private 7(fvec4)
          14(a1):     13(ptr) Variable Private
              15:    6(float) Constant 1065353216
              16:    6(float) Constant 1056964608
              17:    6(float) Constant 0
              18:    7(fvec4) ConstantComposite 15 16 17 15
          19(b1):     13(ptr) Variable Private
              20:    6(float) Constant 1073741824
              21:    6(float) Constant 1075838976
              22:    6(float) Constant 1074161254
              23:    6(float) Constant 1074580685
              24:    7(fvec4) ConstantComposite 20 21 22 23
         25(a1i):     13(ptr) Variable Private
         26(b1i):     13(ptr) Variable Private
              27:             TypePointer Private 6(float)
          28(a2):     27(ptr) Variable Private
              29:    6(float) Constant 1045220557
          30(b3):     27(ptr) Variable Private
              31:    6(float) Constant 1050253722
          32(b4):     27(ptr) Variable Private
              33:    6(float) Constant 1053609165
          34(a5):     27(ptr) Variable Private
          35(c5):     27(ptr) Variable Private
              36:    6(float) Constant 1069547520
              37:             TypeInt 32 1
     38(Single1):             TypeStruct 37(int)
              39:             TypePointer Private 38(Single1)
     40(single1):     39(ptr) Variable Private
              41:     37(int) Constant 10
              42: 38(Single1) ConstantComposite 41
              43:             TypeInt 32 0
              44:             TypeVector 43(int) 2
     45(Single2):             TypeStruct 44(ivec2)
              46:             TypePointer Private 45(Single2)
     47(single2):     46(ptr) Variable Private
              48:     43(int) Constant 1
              49:     43(int) Constant 2
              50:   44(ivec2) ConstantComposite 48 49
              51: 45(Single2) ConstantComposite 50
     52(Single3):             TypeStruct 38(Single1)
              53:             TypePointer Private 52(Single3)
     54(single3):     53(ptr) Variable Private
              55:     37(int) Constant 3
              56: 38(Single1) ConstantComposite 55
              57: 52(Single3) ConstantComposite 56
     58(Single4):             TypeStruct 45(Single2)
              59:             TypePointer Private 58(Single4)
     60(single4):     59(ptr) Variable Private
              61:     43(int) Constant 4
              62:     43(int) Constant 5
              63:   44(ivec2) ConstantComposite 61 62
              64: 45(Single2) ConstantComposite 63
              65: 58(Single4) ConstantComposite 64
              67:    7(fvec4) ConstantComposite 29 31 33 16
          68(S1):             TypeStruct 6(float) 37(int)
          69(S2):             TypeStruct 37(int) 6(float) 68(S1)
              70:             TypePointer Function 69(S2)
              72:     37(int) Constant 9
          74(a3):     27(ptr) Variable Private
          75(a4):     27(ptr) Variable Private
              77:     37(int) Constant 12
              85:             TypePointer Function 6(float)
          87(b2):     27(ptr) Variable Private
              97:             TypePointer Input 7(fvec4)
       98(input):     97(ptr) Variable Input
             100:             TypePointer Output 7(fvec4)
101(@entryPointOutput):    100(ptr) Variable Output
         105(c4):     27(ptr) Variable Private
         106(b5):     27(ptr) Variable Private
  107(Constants):             TypeStruct 6(float) 6(float) 6(float)
             108:             TypePointer Uniform 107(Constants)
             109:    108(ptr) Variable Uniform
4(ShaderFunction):           2 Function None 3
               5:             Label
       96(input):      8(ptr) Variable Function
      102(param):      8(ptr) Variable Function
                              Store 14(a1) 18
                              Store 19(b1) 24
                              Store 25(a1i) 18
                              Store 26(b1i) 24
                              Store 28(a2) 29
                              Store 30(b3) 31
                              Store 32(b4) 33
                              Store 34(a5) 16
                              Store 35(c5) 36
                              Store 40(single1) 42
                              Store 47(single2) 51
                              Store 54(single3) 57
                              Store 60(single4) 65
              99:    7(fvec4) Load 98(input)
                              Store 96(input) 99
             103:    7(fvec4) Load 96(input)
                              Store 102(param) 103
             104:    7(fvec4) FunctionCall 11(@ShaderFunction(vf4;) 102(param)
                              Store 101(@entryPointOutput) 104
                              Return
                              FunctionEnd
11(@ShaderFunction(vf4;):    7(fvec4) Function None 9
       10(input):      8(ptr) FunctionParameter
              12:             Label
          66(a2):      8(ptr) Variable Function
         71(s2i):     70(ptr) Variable Function
          80(s2):     70(ptr) Variable Function
          86(a8):     85(ptr) Variable Function
          89(a9):     85(ptr) Variable Function
                              Store 66(a2) 67
              73:    6(float) Load 34(a5)
              76:    6(float) Load 75(a4)
              78:      68(S1) CompositeConstruct 76 77
              79:      69(S2) CompositeConstruct 72 73 78
                              Store 71(s2i) 79
              81:    6(float) Load 34(a5)
              82:    6(float) Load 75(a4)
              83:      68(S1) CompositeConstruct 82 77
              84:      69(S2) CompositeConstruct 72 81 83
                              Store 80(s2) 84
              88:    6(float) Load 87(b2)
                              Store 86(a8) 88
              90:    6(float) Load 34(a5)
                              Store 89(a9) 90
              91:    7(fvec4) Load 10(input)
              92:    7(fvec4) Load 14(a1)
              93:    7(fvec4) FMul 91 92
                              ReturnValue 93
                              FunctionEnd
