hlsl.float4.frag
Shader version: 450
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      'AmbientColor' (global 4-component vector of float)
0:?       Constant:
0:?         1.000000
0:?         0.500000
0:?         0.000000
0:?         1.000000
0:12  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
0:9    Function Parameters: 
0:9      'input' (in 4-component vector of float)
0:?     Sequence
0:10      Branch: Return with expression
0:10        component-wise multiply (temp 4-component vector of float)
0:10          'input' (in 4-component vector of float)
0:10          'AmbientColor' (global 4-component vector of float)
0:?   Linker Objects
0:?     'AmbientColor' (global 4-component vector of float)
0:?     'ff1' (global bool Face)
0:?     'ff2' (global 4-component vector of float)
0:?     'ff3' (global 4-component vector of float)
0:?     'ff4' (global 4-component vector of float FragCoord)


Linked fragment stage:


Shader version: 450
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      'AmbientColor' (global 4-component vector of float)
0:?       Constant:
0:?         1.000000
0:?         0.500000
0:?         0.000000
0:?         1.000000
0:12  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
0:9    Function Parameters: 
0:9      'input' (in 4-component vector of float)
0:?     Sequence
0:10      Branch: Return with expression
0:10        component-wise multiply (temp 4-component vector of float)
0:10          'input' (in 4-component vector of float)
0:10          'AmbientColor' (global 4-component vector of float)
0:?   Linker Objects
0:?     'AmbientColor' (global 4-component vector of float)
0:?     'ff1' (global bool Face)
0:?     'ff2' (global 4-component vector of float)
0:?     'ff3' (global 4-component vector of float)
0:?     'ff4' (global 4-component vector of float FragCoord)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction"
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 450
                              Name 4  "PixelShaderFunction"
                              Name 11  "ShaderFunction(vf4;"
                              Name 10  "input"
                              Name 14  "AmbientColor"
                              Name 26  "ff1"
                              Name 27  "ff2"
                              Name 28  "ff3"
                              Name 29  "ff4"
                              Decorate 26(ff1) BuiltIn FrontFacing
                              Decorate 29(ff4) BuiltIn FragCoord
               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(AmbientColor):     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
              24:             TypeBool
              25:             TypePointer Private 24(bool)
         26(ff1):     25(ptr) Variable Private
         27(ff2):     13(ptr) Variable Private
         28(ff3):     13(ptr) Variable Private
         29(ff4):     13(ptr) Variable Private
4(PixelShaderFunction):           2 Function None 3
               5:             Label
                              Store 14(AmbientColor) 18
                              FunctionEnd
11(ShaderFunction(vf4;):    7(fvec4) Function None 9
       10(input):      8(ptr) FunctionParameter
              12:             Label
              19:    7(fvec4) Load 10(input)
              20:    7(fvec4) Load 14(AmbientColor)
              21:    7(fvec4) FMul 19 20
                              ReturnValue 21
                              FunctionEnd
