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): 80006
// Id's are bound by 88

                              Capability Shader
               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
