Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
fba125a9
Commit
fba125a9
authored
Jun 20, 2017
by
John Kessenich
Committed by
GitHub
Jun 20, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #943 from xxxbxxx/for-upstream-1
hlsl: "in out" is also an inout qualifier.
parents
54596ff9
b1d97537
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
262 additions
and
230 deletions
+262
-230
hlsl.inoutquals.frag.out
Test/baseResults/hlsl.inoutquals.frag.out
+257
-226
hlsl.inoutquals.frag
Test/hlsl.inoutquals.frag
+3
-2
hlslGrammar.cpp
hlsl/hlslGrammar.cpp
+2
-2
No files found.
Test/baseResults/hlsl.inoutquals.frag.out
View file @
fba125a9
...
...
@@ -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:1
5
move second child to first child ( temp 4-component vector of float)
0:1
6
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:1
5
Sequence
0:1
5
move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
Sequence
0:1
6
move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
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:1
5
move second child to first child ( temp 4-component vector of float)
0:1
6
move second child to first child ( temp 4-component vector of float)
0:? 'Color' (layout( location=0) out 4-component vector of float)
0:1
5
Color: direct index for structure ( temp 4-component vector of float)
0:1
5
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
Constant:
0:1
5
0 (const int)
0:1
5
move second child to first child ( temp float)
0:1
6
Color: direct index for structure ( temp 4-component vector of float)
0:1
6
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
Constant:
0:1
6
0 (const int)
0:1
6
move second child to first child ( temp float)
0:? 'Depth' ( out float FragDepth)
0:1
5
Depth: direct index for structure ( temp float)
0:1
5
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
Constant:
0:1
5
1 (const int)
0:1
5
move second child to first child ( temp int)
0:1
6
Depth: direct index for structure ( temp float)
0:1
6
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
Constant:
0:1
6
1 (const int)
0:1
6
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:1
5
move second child to first child ( temp 4-component vector of float)
0:1
6
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:1
5
Sequence
0:1
5
move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
Sequence
0:1
6
move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
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:1
5
move second child to first child ( temp 4-component vector of float)
0:1
6
move second child to first child ( temp 4-component vector of float)
0:? 'Color' (layout( location=0) out 4-component vector of float)
0:1
5
Color: direct index for structure ( temp 4-component vector of float)
0:1
5
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
Constant:
0:1
5
0 (const int)
0:1
5
move second child to first child ( temp float)
0:1
6
Color: direct index for structure ( temp 4-component vector of float)
0:1
6
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
Constant:
0:1
6
0 (const int)
0:1
6
move second child to first child ( temp float)
0:? 'Depth' ( out float FragDepth)
0:1
5
Depth: direct index for structure ( temp float)
0:1
5
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
5
Constant:
0:1
5
1 (const int)
0:1
5
move second child to first child ( temp int)
0:1
6
Depth: direct index for structure ( temp float)
0:1
6
'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth})
0:1
6
Constant:
0:1
6
1 (const int)
0:1
6
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 8
0
// Id's are bound by 8
8
Capability Shader
Capability SampleRateShading
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 6
0 70 74 78
EntryPoint Fragment 4 "main" 6
8 78 82 86
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 1
2 "MyFunc(
f1;f1;f1;"
Name 1
3 "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)
1
4
: TypeVector 6(float) 4
1
5: TypePointer Function 14
(fvec4)
1
6
: TypeInt 32 1
1
7: TypePointer Function 16
(int)
1
8(PS_OUTPUT): TypeStruct 14
(fvec4) 6(float)
19: TypeFunction 18(PS_OUTPUT) 15(ptr) 17
(ptr)
2
6
: 6(float) Constant 3212836864
28: 6(float) Constant 10
88421888
3
0: 6(float) Constant 107793612
8
40: TypePointer Function 18(PS_OUTPUT)
42:
16(int) Constant
0
4
6: 6(float) Constant 1065353216
49: 16(int) Constant 1
5
0: TypeInt 32
0
5
1: 50(int) Constant 3
59: TypePointer Input 14
(fvec4)
6
0(inpos): 59
(ptr) Variable Input
69: TypePointer Output 14
(fvec4)
7
0(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)
1
5
: TypeVector 6(float) 4
1
6: TypePointer Function 15
(fvec4)
1
7
: TypeInt 32 1
1
8: TypePointer Function 17
(int)
1
9(PS_OUTPUT): TypeStruct 15
(fvec4) 6(float)
20: TypeFunction 19(PS_OUTPUT) 16(ptr) 18
(ptr)
2
7
: 6(float) Constant 3212836864
28: 6(float) Constant 10
65353216
3
2: 6(float) Constant 108842188
8
34: 6(float) Constant 1077936128
42:
TypeInt 32
0
4
3: 42(int) Constant 3
51: TypePointer Function 19(PS_OUTPUT)
5
3: 17(int) Constant
0
5
9: 17(int) Constant 1
67: TypePointer Input 15
(fvec4)
6
8(inpos): 67
(ptr) Variable Input
77: TypePointer Output 15
(fvec4)
7
8(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
6
1: 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
7
1: 15(ptr) AccessChain 62(flattenTemp) 42
72: 14(fvec4) Load 71
Store 7
0(Color) 72
75: 7(ptr) AccessChain 62(flattenTemp) 4
9
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
6
9: 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
7
9: 16(ptr) AccessChain 70(flattenTemp) 53
80: 15(fvec4) Load 79
Store 7
8(Color) 80
83: 7(ptr) AccessChain 70(flattenTemp) 5
9
84: 6(float) Load 83
Store
82(Depth) 84
87: 17(int) Load 71
(sampleMask)
Store
86(sampleMask) 87
Return
FunctionEnd
1
2(MyFunc(
f1;f1;f1;): 2 Function None 8
1
3(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
Test/hlsl.inoutquals.frag
View file @
fba125a9
...
...
@@ -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
;
...
...
hlsl/hlslGrammar.cpp
View file @
fba125a9
...
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment