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): 80007
// 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
               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
