hlsl: "in out" is also an inout qualifier.

This commit is contained in:
xavier 2017-06-20 07:49:22 +02:00
parent f02c8e6ba1
commit b1d97537e8
3 changed files with 262 additions and 230 deletions

View File

@ -2,11 +2,12 @@ hlsl.inoutquals.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: MyFunc(f1;f1;f1; ( temp void)
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)
@ -18,71 +19,79 @@ gl_FragCoord origin is upper left
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' ( in 4-component vector of float)
0:15 'sampleMask' ( out int)
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: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: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 1 (const int)
0:22 direct index ( temp float)
0:22 'inpos' ( in 4-component vector of float)
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 3 (const int)
0:24 Branch: Return with expression
0:24 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Function Definition: main( ( temp void)
0:15 Function Parameters:
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:15 move second child to first child ( temp 4-component vector of float)
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:15 Sequence
0:15 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth})
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:15 move second child to first child ( temp 4-component vector of float)
0:16 move second child to first child ( temp 4-component vector of float)
0:? 'Color' (layout( location=0) out 4-component vector of float)
0:15 Color: direct index for structure ( temp 4-component vector of float)
0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Constant:
0:15 0 (const int)
0:15 move second child to first child ( temp 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:? 'Depth' ( out float FragDepth)
0:15 Depth: direct index for structure ( temp float)
0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Constant:
0:15 1 (const int)
0:15 move second child to first child ( temp int)
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
@ -98,11 +107,12 @@ Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: MyFunc(f1;f1;f1; ( temp void)
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)
@ -114,71 +124,79 @@ gl_FragCoord origin is upper left
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' ( in 4-component vector of float)
0:15 'sampleMask' ( out int)
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: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: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 1 (const int)
0:22 direct index ( temp float)
0:22 'inpos' ( in 4-component vector of float)
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 3 (const int)
0:24 Branch: Return with expression
0:24 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Function Definition: main( ( temp void)
0:15 Function Parameters:
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:15 move second child to first child ( temp 4-component vector of float)
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:15 Sequence
0:15 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth})
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:15 move second child to first child ( temp 4-component vector of float)
0:16 move second child to first child ( temp 4-component vector of float)
0:? 'Color' (layout( location=0) out 4-component vector of float)
0:15 Color: direct index for structure ( temp 4-component vector of float)
0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Constant:
0:15 0 (const int)
0:15 move second child to first child ( temp 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:? 'Depth' ( out float FragDepth)
0:15 Depth: direct index for structure ( temp float)
0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:15 Constant:
0:15 1 (const int)
0:15 move second child to first child ( temp int)
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
@ -189,144 +207,157 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 80
// Id's are bound by 88
Capability Shader
Capability SampleRateShading
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 60 70 74 78
EntryPoint Fragment 4 "main" 68 78 82 86
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 12 "MyFunc(f1;f1;f1;"
Name 13 "MyFunc(f1;f1;f1;f1;"
Name 9 "x"
Name 10 "y"
Name 11 "z"
Name 18 "PS_OUTPUT"
MemberName 18(PS_OUTPUT) 0 "Color"
MemberName 18(PS_OUTPUT) 1 "Depth"
Name 22 "@main(vf4;i1;"
Name 20 "inpos"
Name 21 "sampleMask"
Name 27 "x"
Name 29 "z"
Name 31 "y"
Name 32 "param"
Name 34 "param"
Name 35 "param"
Name 41 "psout"
Name 58 "inpos"
Name 60 "inpos"
Name 62 "flattenTemp"
Name 63 "sampleMask"
Name 64 "param"
Name 66 "param"
Name 70 "Color"
Name 74 "Depth"
Name 78 "sampleMask"
Decorate 60(inpos) NoPerspective
Decorate 60(inpos) BuiltIn FragCoord
Decorate 70(Color) Location 0
Decorate 74(Depth) BuiltIn FragDepth
Decorate 78(sampleMask) BuiltIn SampleMask
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 "Color"
Name 82 "Depth"
Name 86 "sampleMask"
Decorate 68(inpos) NoPerspective
Decorate 68(inpos) BuiltIn FragCoord
Decorate 78(Color) Location 0
Decorate 82(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)
14: TypeVector 6(float) 4
15: TypePointer Function 14(fvec4)
16: TypeInt 32 1
17: TypePointer Function 16(int)
18(PS_OUTPUT): TypeStruct 14(fvec4) 6(float)
19: TypeFunction 18(PS_OUTPUT) 15(ptr) 17(ptr)
26: 6(float) Constant 3212836864
28: 6(float) Constant 1088421888
30: 6(float) Constant 1077936128
40: TypePointer Function 18(PS_OUTPUT)
42: 16(int) Constant 0
46: 6(float) Constant 1065353216
49: 16(int) Constant 1
50: TypeInt 32 0
51: 50(int) Constant 3
59: TypePointer Input 14(fvec4)
60(inpos): 59(ptr) Variable Input
69: TypePointer Output 14(fvec4)
70(Color): 69(ptr) Variable Output
73: TypePointer Output 6(float)
74(Depth): 73(ptr) Variable Output
77: TypePointer Output 16(int)
78(sampleMask): 77(ptr) Variable Output
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(Color): 77(ptr) Variable Output
81: TypePointer Output 6(float)
82(Depth): 81(ptr) Variable Output
85: TypePointer Output 17(int)
86(sampleMask): 85(ptr) Variable Output
4(main): 2 Function None 3
5: Label
58(inpos): 15(ptr) Variable Function
62(flattenTemp): 40(ptr) Variable Function
63(sampleMask): 17(ptr) Variable Function
64(param): 15(ptr) Variable Function
66(param): 17(ptr) Variable Function
61: 14(fvec4) Load 60(inpos)
Store 58(inpos) 61
65: 14(fvec4) Load 58(inpos)
Store 64(param) 65
67:18(PS_OUTPUT) FunctionCall 22(@main(vf4;i1;) 64(param) 66(param)
68: 16(int) Load 66(param)
Store 63(sampleMask) 68
Store 62(flattenTemp) 67
71: 15(ptr) AccessChain 62(flattenTemp) 42
72: 14(fvec4) Load 71
Store 70(Color) 72
75: 7(ptr) AccessChain 62(flattenTemp) 49
76: 6(float) Load 75
Store 74(Depth) 76
79: 16(int) Load 63(sampleMask)
Store 78(sampleMask) 79
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(Color) 80
83: 7(ptr) AccessChain 70(flattenTemp) 59
84: 6(float) Load 83
Store 82(Depth) 84
87: 17(int) Load 71(sampleMask)
Store 86(sampleMask) 87
Return
FunctionEnd
12(MyFunc(f1;f1;f1;): 2 Function None 8
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
13: Label
24: 6(float) Load 9(x)
Store 10(y) 24
25: 6(float) Load 10(y)
Store 11(z) 25
Store 9(x) 26
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
22(@main(vf4;i1;):18(PS_OUTPUT) Function None 19
20(inpos): 15(ptr) FunctionParameter
21(sampleMask): 17(ptr) FunctionParameter
23: Label
27(x): 7(ptr) Variable Function
29(z): 7(ptr) Variable Function
31(y): 7(ptr) Variable Function
32(param): 7(ptr) Variable Function
34(param): 7(ptr) Variable Function
35(param): 7(ptr) Variable Function
41(psout): 40(ptr) Variable Function
Store 27(x) 28
Store 29(z) 30
33: 6(float) Load 27(x)
Store 32(param) 33
36: 6(float) Load 29(z)
Store 35(param) 36
37: 2 FunctionCall 12(MyFunc(f1;f1;f1;) 32(param) 34(param) 35(param)
38: 6(float) Load 34(param)
Store 31(y) 38
39: 6(float) Load 35(param)
Store 29(z) 39
43: 6(float) Load 27(x)
44: 6(float) Load 31(y)
45: 6(float) Load 29(z)
47: 14(fvec4) CompositeConstruct 43 44 45 46
48: 15(ptr) AccessChain 41(psout) 42
Store 48 47
52: 7(ptr) AccessChain 20(inpos) 51
53: 6(float) Load 52
54: 7(ptr) AccessChain 41(psout) 49
Store 54 53
55:18(PS_OUTPUT) Load 41(psout)
ReturnValue 55
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

View File

@ -4,11 +4,12 @@ struct PS_OUTPUT
float Depth : SV_Depth;
};
inline void MyFunc(in float x, out float y, inout float z)
inline void MyFunc(in float x, out float y, inout float z, in out float w)
{
y = x;
z = y;
x = -1; // no effect since x = in param
w *= 1;
}
PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage)
@ -16,7 +17,7 @@ PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask :
PS_OUTPUT psout;
float x = 7, y, z = 3;
MyFunc(x, y, z);
MyFunc(x, y, z, inpos.w);
psout.Color = float4(x, y, z, 1);
psout.Depth = inpos.w;

View File

@ -680,10 +680,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier)
qualifier.noContraction = true;
break;
case EHTokIn:
qualifier.storage = EvqIn;
qualifier.storage = (qualifier.storage == EvqOut) ? EvqInOut : EvqIn;
break;
case EHTokOut:
qualifier.storage = EvqOut;
qualifier.storage = (qualifier.storage == EvqIn) ? EvqInOut : EvqOut;
break;
case EHTokInOut:
qualifier.storage = EvqInOut;