hlsl.inoutquals.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: MyFunc(f1;f1;f1; (global void)
0:8    Function Parameters: 
0:8      'x' (in float)
0:8      'y' (out float)
0:8      'z' (inout float)
0:?     Sequence
0:9      move second child to first child (temp float)
0:9        'y' (out float)
0:9        'x' (in float)
0:10      move second child to first child (temp float)
0:10        'z' (inout float)
0:10        'y' (out float)
0:11      move second child to first child (temp float)
0:11        'x' (in float)
0:11        Constant:
0:11          -1.000000
0:26  Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:15    Function Parameters: 
0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
0:?     Sequence
0:18      Sequence
0:18        move second child to first child (temp float)
0:18          'x' (temp float)
0:18          Constant:
0:18            7.000000
0:18        move second child to first child (temp float)
0:18          'z' (temp float)
0:18          Constant:
0:18            3.000000
0:19      Function Call: MyFunc(f1;f1;f1; (global void)
0:19        'x' (temp float)
0:19        'y' (temp float)
0:19        'z' (temp float)
0:21      move second child to first child (temp 4-component vector of float)
0:21        Color: direct index for structure (temp 4-component vector of float)
0:21          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:21          Constant:
0:21            0 (const int)
0:?         Construct vec4 (temp 4-component vector of float)
0:21          'x' (temp float)
0:21          'y' (temp float)
0:21          'z' (temp float)
0:21          Constant:
0:21            1.000000
0:22      move second child to first child (temp float)
0:22        Depth: direct index for structure (temp float FragDepth)
0:22          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:22          Constant:
0:22            1 (const int)
0:22        direct index (temp float)
0:22          'inpos' (noperspective in 4-component vector of float FragCoord)
0:22          Constant:
0:22            3 (const int)
0:24      Branch: Return with expression
0:24        'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:?   Linker Objects


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: MyFunc(f1;f1;f1; (global void)
0:8    Function Parameters: 
0:8      'x' (in float)
0:8      'y' (out float)
0:8      'z' (inout float)
0:?     Sequence
0:9      move second child to first child (temp float)
0:9        'y' (out float)
0:9        'x' (in float)
0:10      move second child to first child (temp float)
0:10        'z' (inout float)
0:10        'y' (out float)
0:11      move second child to first child (temp float)
0:11        'x' (in float)
0:11        Constant:
0:11          -1.000000
0:26  Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:15    Function Parameters: 
0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
0:?     Sequence
0:18      Sequence
0:18        move second child to first child (temp float)
0:18          'x' (temp float)
0:18          Constant:
0:18            7.000000
0:18        move second child to first child (temp float)
0:18          'z' (temp float)
0:18          Constant:
0:18            3.000000
0:19      Function Call: MyFunc(f1;f1;f1; (global void)
0:19        'x' (temp float)
0:19        'y' (temp float)
0:19        'z' (temp float)
0:21      move second child to first child (temp 4-component vector of float)
0:21        Color: direct index for structure (temp 4-component vector of float)
0:21          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:21          Constant:
0:21            0 (const int)
0:?         Construct vec4 (temp 4-component vector of float)
0:21          'x' (temp float)
0:21          'y' (temp float)
0:21          'z' (temp float)
0:21          Constant:
0:21            1.000000
0:22      move second child to first child (temp float)
0:22        Depth: direct index for structure (temp float FragDepth)
0:22          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:22          Constant:
0:22            1 (const int)
0:22        direct index (temp float)
0:22          'inpos' (noperspective in 4-component vector of float FragCoord)
0:22          Constant:
0:22            3 (const int)
0:24      Branch: Return with expression
0:24        'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:?   Linker Objects

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 45
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 12  "MyFunc(f1;f1;f1;"
                              Name 9  "x"
                              Name 10  "y"
                              Name 11  "z"
                              Name 17  "x"
                              Name 19  "z"
                              Name 21  "y"
                              Name 22  "param"
                              Name 24  "param"
                              Name 25  "param"
                              Name 31  "PS_OUTPUT"
                              MemberName 31(PS_OUTPUT) 0  "Color"
                              MemberName 31(PS_OUTPUT) 1  "Depth"
                              Name 33  "psout"
                              Name 45  "inpos"
                              MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth
                              Decorate 45(inpos) NoPerspective
                              Decorate 45(inpos) BuiltIn FragCoord
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 2 7(ptr) 7(ptr) 7(ptr)
              16:    6(float) Constant 3212836864
              18:    6(float) Constant 1088421888
              20:    6(float) Constant 1077936128
              30:             TypeVector 6(float) 4
   31(PS_OUTPUT):             TypeStruct 30(fvec4) 6(float)
              32:             TypePointer Function 31(PS_OUTPUT)
              34:             TypeInt 32 1
              35:     34(int) Constant 0
              39:    6(float) Constant 1065353216
              41:             TypePointer Function 30(fvec4)
              43:     34(int) Constant 1
              44:             TypePointer Input 30(fvec4)
       45(inpos):     44(ptr) Variable Input
              46:             TypeInt 32 0
              47:     46(int) Constant 3
              48:             TypePointer Input 6(float)
         4(main):           2 Function None 3
               5:             Label
           17(x):      7(ptr) Variable Function
           19(z):      7(ptr) Variable Function
           21(y):      7(ptr) Variable Function
       22(param):      7(ptr) Variable Function
       24(param):      7(ptr) Variable Function
       25(param):      7(ptr) Variable Function
       33(psout):     32(ptr) Variable Function
                              Store 17(x) 18
                              Store 19(z) 20
              23:    6(float) Load 17(x)
                              Store 22(param) 23
              26:    6(float) Load 19(z)
                              Store 25(param) 26
              27:           2 FunctionCall 12(MyFunc(f1;f1;f1;) 22(param) 24(param) 25(param)
              28:    6(float) Load 24(param)
                              Store 21(y) 28
              29:    6(float) Load 25(param)
                              Store 19(z) 29
              36:    6(float) Load 17(x)
              37:    6(float) Load 21(y)
              38:    6(float) Load 19(z)
              40:   30(fvec4) CompositeConstruct 36 37 38 39
              42:     41(ptr) AccessChain 33(psout) 35
                              Store 42 40
              49:     48(ptr) AccessChain 45(inpos) 47
              50:    6(float) Load 49
              51:      7(ptr) AccessChain 33(psout) 43
                              Store 51 50
              52:31(PS_OUTPUT) Load 33(psout)
                              ReturnValue 52
                              FunctionEnd
12(MyFunc(f1;f1;f1;):           2 Function None 8
            9(x):      7(ptr) FunctionParameter
           10(y):      7(ptr) FunctionParameter
           11(z):      7(ptr) FunctionParameter
              13:             Label
              14:    6(float) Load 9(x)
                              Store 10(y) 14
              15:    6(float) Load 10(y)
                              Store 11(z) 15
                              Store 9(x) 16
                              Return
                              FunctionEnd
