hlsl.inoutquals.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: MyFunc(f1;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:8      'w' ( 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:12      multiply second child into first child ( temp float)
0:12        'w' ( inout float)
0:12        Constant:
0:12          1.000000
0:16  Function Definition: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16    Function Parameters: 
0:16      'inpos' ( in 4-component vector of float)
0:16      'sampleMask' ( out int)
0:?     Sequence
0:19      Sequence
0:19        move second child to first child ( temp float)
0:19          'x' ( temp float)
0:19          Constant:
0:19            7.000000
0:19        move second child to first child ( temp float)
0:19          'z' ( temp float)
0:19          Constant:
0:19            3.000000
0:20      Function Call: MyFunc(f1;f1;f1;f1; ( temp void)
0:20        'x' ( temp float)
0:20        'y' ( temp float)
0:20        'z' ( temp float)
0:20        direct index ( temp float)
0:20          'inpos' ( in 4-component vector of float)
0:20          Constant:
0:20            3 (const int)
0:22      move second child to first child ( temp 4-component vector of float)
0:22        Color: direct index for structure ( temp 4-component vector of float)
0:22          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:22          Constant:
0:22            0 (const int)
0:?         Construct vec4 ( temp 4-component vector of float)
0:22          'x' ( temp float)
0:22          'y' ( temp float)
0:22          'z' ( temp float)
0:22          Constant:
0:22            1.000000
0:23      move second child to first child ( temp float)
0:23        Depth: direct index for structure ( temp float)
0:23          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:23          Constant:
0:23            1 (const int)
0:23        direct index ( temp float)
0:23          'inpos' ( in 4-component vector of float)
0:23          Constant:
0:23            3 (const int)
0:25      Branch: Return with expression
0:25        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 4-component vector of float)
0:?         'inpos' ( temp 4-component vector of float)
0:?         'inpos' ( noperspective in 4-component vector of float FragCoord)
0:16      Sequence
0:16        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16          Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:?             'inpos' ( temp 4-component vector of float)
0:?             'sampleMask' ( temp int)
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:16          Color: direct index for structure ( temp 4-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:16          Depth: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16            Constant:
0:16              1 (const int)
0:16      move second child to first child ( temp int)
0:?         'sampleMask' ( out int SampleMaskIn)
0:?         'sampleMask' ( temp int)
0:?   Linker Objects
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:?     'inpos' ( noperspective in 4-component vector of float FragCoord)
0:?     'sampleMask' ( out int SampleMaskIn)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: MyFunc(f1;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:8      'w' ( 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:12      multiply second child into first child ( temp float)
0:12        'w' ( inout float)
0:12        Constant:
0:12          1.000000
0:16  Function Definition: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16    Function Parameters: 
0:16      'inpos' ( in 4-component vector of float)
0:16      'sampleMask' ( out int)
0:?     Sequence
0:19      Sequence
0:19        move second child to first child ( temp float)
0:19          'x' ( temp float)
0:19          Constant:
0:19            7.000000
0:19        move second child to first child ( temp float)
0:19          'z' ( temp float)
0:19          Constant:
0:19            3.000000
0:20      Function Call: MyFunc(f1;f1;f1;f1; ( temp void)
0:20        'x' ( temp float)
0:20        'y' ( temp float)
0:20        'z' ( temp float)
0:20        direct index ( temp float)
0:20          'inpos' ( in 4-component vector of float)
0:20          Constant:
0:20            3 (const int)
0:22      move second child to first child ( temp 4-component vector of float)
0:22        Color: direct index for structure ( temp 4-component vector of float)
0:22          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:22          Constant:
0:22            0 (const int)
0:?         Construct vec4 ( temp 4-component vector of float)
0:22          'x' ( temp float)
0:22          'y' ( temp float)
0:22          'z' ( temp float)
0:22          Constant:
0:22            1.000000
0:23      move second child to first child ( temp float)
0:23        Depth: direct index for structure ( temp float)
0:23          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:23          Constant:
0:23            1 (const int)
0:23        direct index ( temp float)
0:23          'inpos' ( in 4-component vector of float)
0:23          Constant:
0:23            3 (const int)
0:25      Branch: Return with expression
0:25        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 4-component vector of float)
0:?         'inpos' ( temp 4-component vector of float)
0:?         'inpos' ( noperspective in 4-component vector of float FragCoord)
0:16      Sequence
0:16        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16          Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:?             'inpos' ( temp 4-component vector of float)
0:?             'sampleMask' ( temp int)
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:16          Color: direct index for structure ( temp 4-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:16          Depth: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:16            Constant:
0:16              1 (const int)
0:16      move second child to first child ( temp int)
0:?         'sampleMask' ( out int SampleMaskIn)
0:?         'sampleMask' ( temp int)
0:?   Linker Objects
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:?     'inpos' ( noperspective in 4-component vector of float FragCoord)
0:?     'sampleMask' ( out int SampleMaskIn)

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

                              Capability Shader
                              Capability SampleRateShading
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 68 78 82 86
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 13  "MyFunc(f1;f1;f1;f1;"
                              Name 9  "x"
                              Name 10  "y"
                              Name 11  "z"
                              Name 12  "w"
                              Name 19  "PS_OUTPUT"
                              MemberName 19(PS_OUTPUT) 0  "Color"
                              MemberName 19(PS_OUTPUT) 1  "Depth"
                              Name 23  "@main(vf4;i1;"
                              Name 21  "inpos"
                              Name 22  "sampleMask"
                              Name 31  "x"
                              Name 33  "z"
                              Name 35  "y"
                              Name 36  "param"
                              Name 38  "param"
                              Name 39  "param"
                              Name 41  "param"
                              Name 52  "psout"
                              Name 66  "inpos"
                              Name 68  "inpos"
                              Name 70  "flattenTemp"
                              Name 71  "sampleMask"
                              Name 72  "param"
                              Name 74  "param"
                              Name 78  "@entryPointOutput.Color"
                              Name 82  "@entryPointOutput.Depth"
                              Name 86  "sampleMask"
                              Decorate 68(inpos) NoPerspective
                              Decorate 68(inpos) BuiltIn FragCoord
                              Decorate 78(@entryPointOutput.Color) Location 0
                              Decorate 82(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 86(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) 7(ptr)
              15:             TypeVector 6(float) 4
              16:             TypePointer Function 15(fvec4)
              17:             TypeInt 32 1
              18:             TypePointer Function 17(int)
   19(PS_OUTPUT):             TypeStruct 15(fvec4) 6(float)
              20:             TypeFunction 19(PS_OUTPUT) 16(ptr) 18(ptr)
              27:    6(float) Constant 3212836864
              28:    6(float) Constant 1065353216
              32:    6(float) Constant 1088421888
              34:    6(float) Constant 1077936128
              42:             TypeInt 32 0
              43:     42(int) Constant 3
              51:             TypePointer Function 19(PS_OUTPUT)
              53:     17(int) Constant 0
              59:     17(int) Constant 1
              67:             TypePointer Input 15(fvec4)
       68(inpos):     67(ptr) Variable Input
              77:             TypePointer Output 15(fvec4)
78(@entryPointOutput.Color):     77(ptr) Variable Output
              81:             TypePointer Output 6(float)
82(@entryPointOutput.Depth):     81(ptr) Variable Output
              85:             TypePointer Output 17(int)
  86(sampleMask):     85(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       66(inpos):     16(ptr) Variable Function
 70(flattenTemp):     51(ptr) Variable Function
  71(sampleMask):     18(ptr) Variable Function
       72(param):     16(ptr) Variable Function
       74(param):     18(ptr) Variable Function
              69:   15(fvec4) Load 68(inpos)
                              Store 66(inpos) 69
              73:   15(fvec4) Load 66(inpos)
                              Store 72(param) 73
              75:19(PS_OUTPUT) FunctionCall 23(@main(vf4;i1;) 72(param) 74(param)
              76:     17(int) Load 74(param)
                              Store 71(sampleMask) 76
                              Store 70(flattenTemp) 75
              79:     16(ptr) AccessChain 70(flattenTemp) 53
              80:   15(fvec4) Load 79
                              Store 78(@entryPointOutput.Color) 80
              83:      7(ptr) AccessChain 70(flattenTemp) 59
              84:    6(float) Load 83
                              Store 82(@entryPointOutput.Depth) 84
              87:     17(int) Load 71(sampleMask)
                              Store 86(sampleMask) 87
                              Return
                              FunctionEnd
13(MyFunc(f1;f1;f1;f1;):           2 Function None 8
            9(x):      7(ptr) FunctionParameter
           10(y):      7(ptr) FunctionParameter
           11(z):      7(ptr) FunctionParameter
           12(w):      7(ptr) FunctionParameter
              14:             Label
              25:    6(float) Load 9(x)
                              Store 10(y) 25
              26:    6(float) Load 10(y)
                              Store 11(z) 26
                              Store 9(x) 27
              29:    6(float) Load 12(w)
              30:    6(float) FMul 29 28
                              Store 12(w) 30
                              Return
                              FunctionEnd
23(@main(vf4;i1;):19(PS_OUTPUT) Function None 20
       21(inpos):     16(ptr) FunctionParameter
  22(sampleMask):     18(ptr) FunctionParameter
              24:             Label
           31(x):      7(ptr) Variable Function
           33(z):      7(ptr) Variable Function
           35(y):      7(ptr) Variable Function
       36(param):      7(ptr) Variable Function
       38(param):      7(ptr) Variable Function
       39(param):      7(ptr) Variable Function
       41(param):      7(ptr) Variable Function
       52(psout):     51(ptr) Variable Function
                              Store 31(x) 32
                              Store 33(z) 34
              37:    6(float) Load 31(x)
                              Store 36(param) 37
              40:    6(float) Load 33(z)
                              Store 39(param) 40
              44:      7(ptr) AccessChain 21(inpos) 43
              45:    6(float) Load 44
                              Store 41(param) 45
              46:           2 FunctionCall 13(MyFunc(f1;f1;f1;f1;) 36(param) 38(param) 39(param) 41(param)
              47:    6(float) Load 38(param)
                              Store 35(y) 47
              48:    6(float) Load 39(param)
                              Store 33(z) 48
              49:    6(float) Load 41(param)
              50:      7(ptr) AccessChain 21(inpos) 43
                              Store 50 49
              54:    6(float) Load 31(x)
              55:    6(float) Load 35(y)
              56:    6(float) Load 33(z)
              57:   15(fvec4) CompositeConstruct 54 55 56 28
              58:     16(ptr) AccessChain 52(psout) 53
                              Store 58 57
              60:      7(ptr) AccessChain 21(inpos) 43
              61:    6(float) Load 60
              62:      7(ptr) AccessChain 52(psout) 59
                              Store 62 61
              63:19(PS_OUTPUT) Load 52(psout)
                              ReturnValue 63
                              FunctionEnd
