hlsl.attribute.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(vf4; ( temp void)
0:2    Function Parameters: 
0:2      'input' ( in 4-component vector of float)
0:?     Sequence
0:11      Test condition and select ( temp void): DontFlatten
0:11        Condition
0:11        Constant:
0:11          false (const bool)
0:11        true case is null
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      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:2      Function Call: @PixelShaderFunction(vf4; ( temp void)
0:?         'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'input' (layout( location=0) in 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(vf4; ( temp void)
0:2    Function Parameters: 
0:2      'input' ( in 4-component vector of float)
0:?     Sequence
0:11      Test condition and select ( temp void): DontFlatten
0:11        Condition
0:11        Constant:
0:11          false (const bool)
0:11        true case is null
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      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:2      Function Call: @PixelShaderFunction(vf4; ( temp void)
0:?         'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'input' (layout( location=0) in 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 24

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 19
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 11  "@PixelShaderFunction(vf4;"
                              Name 10  "input"
                              Name 17  "input"
                              Name 19  "input"
                              Name 21  "param"
                              Decorate 19(input) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 2 8(ptr)
              13:             TypeBool
              14:    13(bool) ConstantFalse
              18:             TypePointer Input 7(fvec4)
       19(input):     18(ptr) Variable Input
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       17(input):      8(ptr) Variable Function
       21(param):      8(ptr) Variable Function
              20:    7(fvec4) Load 19(input)
                              Store 17(input) 20
              22:    7(fvec4) Load 17(input)
                              Store 21(param) 22
              23:           2 FunctionCall 11(@PixelShaderFunction(vf4;) 21(param)
                              Return
                              FunctionEnd
11(@PixelShaderFunction(vf4;):           2 Function None 9
       10(input):      8(ptr) FunctionParameter
              12:             Label
                              SelectionMerge 16 DontFlatten 
                              BranchConditional 14 15 16
              15:               Label
                                Branch 16
              16:             Label
                              Return
                              FunctionEnd
