hlsl.intrinsics.lit.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
0:2    Function Parameters: 
0:2      'n_dot_l' (layout(location=0 ) in float)
0:2      'n_dot_h' (layout(location=1 ) in float)
0:2      'm' (layout(location=2 ) in float)
0:?     Sequence
0:3      Sequence
0:3        move second child to first child (temp 4-component vector of float)
0:3          'r0' (temp 4-component vector of float)
0:3          Construct vec4 (temp 4-component vector of float)
0:3            Constant:
0:3              1.000000
0:3            max (temp float)
0:3              'n_dot_l' (layout(location=0 ) in float)
0:3              Constant:
0:3                0.000000
0:3            Test condition and select (temp float)
0:3              Condition
0:3              Compare Less Than (temp bool)
0:3                min (temp float)
0:3                  'n_dot_l' (layout(location=0 ) in float)
0:3                  'n_dot_h' (layout(location=1 ) in float)
0:3                Constant:
0:3                  0.000000
0:3              true case
0:3              Constant:
0:3                0.000000
0:3              false case
0:3              component-wise multiply (temp float)
0:3                'n_dot_h' (layout(location=1 ) in float)
0:3                'm' (layout(location=2 ) in float)
0:3            Constant:
0:3              1.000000
0:?   Linker Objects
0:?     'n_dot_l' (layout(location=0 ) in float)
0:?     'n_dot_h' (layout(location=1 ) in float)
0:?     'm' (layout(location=2 ) in float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
0:2    Function Parameters: 
0:2      'n_dot_l' (layout(location=0 ) in float)
0:2      'n_dot_h' (layout(location=1 ) in float)
0:2      'm' (layout(location=2 ) in float)
0:?     Sequence
0:3      Sequence
0:3        move second child to first child (temp 4-component vector of float)
0:3          'r0' (temp 4-component vector of float)
0:3          Construct vec4 (temp 4-component vector of float)
0:3            Constant:
0:3              1.000000
0:3            max (temp float)
0:3              'n_dot_l' (layout(location=0 ) in float)
0:3              Constant:
0:3                0.000000
0:3            Test condition and select (temp float)
0:3              Condition
0:3              Compare Less Than (temp bool)
0:3                min (temp float)
0:3                  'n_dot_l' (layout(location=0 ) in float)
0:3                  'n_dot_h' (layout(location=1 ) in float)
0:3                Constant:
0:3                  0.000000
0:3              true case
0:3              Constant:
0:3                0.000000
0:3              false case
0:3              component-wise multiply (temp float)
0:3                'n_dot_h' (layout(location=1 ) in float)
0:3                'm' (layout(location=2 ) in float)
0:3            Constant:
0:3              1.000000
0:?   Linker Objects
0:?     'n_dot_l' (layout(location=0 ) in float)
0:?     'n_dot_h' (layout(location=1 ) in float)
0:?     'm' (layout(location=2 ) in float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 12 19 28
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 9  "r0"
                              Name 12  "n_dot_l"
                              Name 19  "n_dot_h"
                              Name 28  "m"
                              Decorate 12(n_dot_l) Location 0
                              Decorate 19(n_dot_h) Location 1
                              Decorate 28(m) Location 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:    6(float) Constant 1065353216
              11:             TypePointer Input 6(float)
     12(n_dot_l):     11(ptr) Variable Input
              14:    6(float) Constant 0
              16:             TypePointer Function 6(float)
     19(n_dot_h):     11(ptr) Variable Input
              22:             TypeBool
           28(m):     11(ptr) Variable Input
4(PixelShaderFunction):           2 Function None 3
               5:             Label
           9(r0):      8(ptr) Variable Function
              17:     16(ptr) Variable Function
              13:    6(float) Load 12(n_dot_l)
              15:    6(float) ExtInst 1(GLSL.std.450) 40(FMax) 13 14
              18:    6(float) Load 12(n_dot_l)
              20:    6(float) Load 19(n_dot_h)
              21:    6(float) ExtInst 1(GLSL.std.450) 37(FMin) 18 20
              23:    22(bool) FOrdLessThan 21 14
                              SelectionMerge 25 None
                              BranchConditional 23 24 26
              24:               Label
                                Store 17 14
                                Branch 25
              26:               Label
              27:    6(float)   Load 19(n_dot_h)
              29:    6(float)   Load 28(m)
              30:    6(float)   FMul 27 29
                                Store 17 30
                                Branch 25
              25:             Label
              31:    6(float) Load 17
              32:    7(fvec4) CompositeConstruct 10 15 31 10
                              Store 9(r0) 32
                              Return
                              FunctionEnd
