hlsl.inoutquals.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: MyFunc(f1;f1;f1; (temp 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:15  Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
0:15    Function Parameters: 
0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
0:15      'sampleMask' (out int SampleMaskIn)
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; (temp 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 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)
0:22          'psout' (temp structure{temp 4-component vector of float Color, temp float 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      Sequence
0:24        Sequence
0:24          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:24            Color: direct index for structure (temp 4-component vector of float)
0:24              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24              Constant:
0:24                0 (const int)
0:24          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:24            Depth: direct index for structure (temp float)
0:24              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24              Constant:
0:24                1 (const int)
0:24        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'inpos' (noperspective in 4-component vector of float FragCoord)
0:?     'sampleMask' (out int SampleMaskIn)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: MyFunc(f1;f1;f1; (temp 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:15  Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
0:15    Function Parameters: 
0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
0:15      'sampleMask' (out int SampleMaskIn)
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; (temp 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 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)
0:22          'psout' (temp structure{temp 4-component vector of float Color, temp float 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      Sequence
0:24        Sequence
0:24          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:24            Color: direct index for structure (temp 4-component vector of float)
0:24              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24              Constant:
0:24                0 (const int)
0:24          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:24            Depth: direct index for structure (temp float)
0:24              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:24              Constant:
0:24                1 (const int)
0:24        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'inpos' (noperspective in 4-component vector of float FragCoord)
0:?     'sampleMask' (out int SampleMaskIn)

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

                              Capability Shader
                              Capability SampleRateShading
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 45 53 57 62
                              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"
                              Name 53  "Color"
                              Name 57  "Depth"
                              Name 62  "sampleMask"
                              Decorate 45(inpos) NoPerspective
                              Decorate 45(inpos) BuiltIn FragCoord
                              Decorate 53(Color) Location 0
                              Decorate 57(Depth) BuiltIn FragDepth
                              Decorate 62(sampleMask) BuiltIn SampleMask
               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)
              52:             TypePointer Output 30(fvec4)
       53(Color):     52(ptr) Variable Output
              56:             TypePointer Output 6(float)
       57(Depth):     56(ptr) Variable Output
              61:             TypePointer Output 34(int)
  62(sampleMask):     61(ptr) Variable Output
         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
              54:     41(ptr) AccessChain 33(psout) 35
              55:   30(fvec4) Load 54
                              Store 53(Color) 55
              58:      7(ptr) AccessChain 33(psout) 43
              59:    6(float) Load 58
                              Store 57(Depth) 59
                              Return
                              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
