hlsl.depthGreater.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_greater
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(f1; ( temp void)
0:2    Function Parameters: 
0:2      'depth' ( out float)
0:?     Sequence
0:3      move second child to first child ( temp float)
0:3        'depth' ( out float)
0:3        Constant:
0:3          0.200000
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      Function Call: @PixelShaderFunction(f1; ( temp void)
0:?         'depth' ( temp float)
0:2      move second child to first child ( temp float)
0:?         'depth' ( out float FragDepth)
0:?         'depth' ( temp float)
0:?   Linker Objects
0:?     'depth' ( out float FragDepth)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_greater
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(f1; ( temp void)
0:2    Function Parameters: 
0:2      'depth' ( out float)
0:?     Sequence
0:3      move second child to first child ( temp float)
0:3        'depth' ( out float)
0:3        Constant:
0:3          0.200000
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      Function Call: @PixelShaderFunction(f1; ( temp void)
0:?         'depth' ( temp float)
0:2      move second child to first child ( temp float)
0:?         'depth' ( out float FragDepth)
0:?         'depth' ( temp float)
0:?   Linker Objects
0:?     'depth' ( out float FragDepth)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 18
                              ExecutionMode 4 OriginUpperLeft
                              ExecutionMode 4 DepthReplacing
                              ExecutionMode 4 DepthGreater
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 10  "@PixelShaderFunction(f1;"
                              Name 9  "depth"
                              Name 13  "depth"
                              Name 14  "param"
                              Name 18  "depth"
                              Decorate 18(depth) BuiltIn FragDepth
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 2 7(ptr)
              12:    6(float) Constant 1045220557
              17:             TypePointer Output 6(float)
       18(depth):     17(ptr) Variable Output
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       13(depth):      7(ptr) Variable Function
       14(param):      7(ptr) Variable Function
              15:           2 FunctionCall 10(@PixelShaderFunction(f1;) 14(param)
              16:    6(float) Load 14(param)
                              Store 13(depth) 16
              19:    6(float) Load 13(depth)
                              Store 18(depth) 19
                              Return
                              FunctionEnd
10(@PixelShaderFunction(f1;):           2 Function None 8
        9(depth):      7(ptr) FunctionParameter
              11:             Label
                              Store 9(depth) 12
                              Return
                              FunctionEnd
