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
aba44400
Commit
aba44400
authored
Oct 26, 2016
by
John Kessenich
Committed by
GitHub
Oct 26, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #567 from steve-lunarg/compare-fix
HLSL: Enable component-wise vector comparisons from operators
parents
850ac062
85244d74
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
571 additions
and
91 deletions
+571
-91
hlsl.comparison.vec.frag.out
Test/baseResults/hlsl.comparison.vec.frag.out
+401
-0
hlsl.doLoop.frag.out
Test/baseResults/hlsl.doLoop.frag.out
+4
-2
hlsl.forLoop.frag.out
Test/baseResults/hlsl.forLoop.frag.out
+12
-6
hlsl.if.frag.out
Test/baseResults/hlsl.if.frag.out
+24
-12
hlsl.shapeConv.frag.out
Test/baseResults/hlsl.shapeConv.frag.out
+60
-55
hlsl.whileLoop.frag.out
Test/baseResults/hlsl.whileLoop.frag.out
+4
-2
hlsl.comparison.vec.frag
Test/hlsl.comparison.vec.frag
+34
-0
hlsl.doLoop.frag
Test/hlsl.doLoop.frag
+1
-1
hlsl.forLoop.frag
Test/hlsl.forLoop.frag
+3
-3
hlsl.if.frag
Test/hlsl.if.frag
+6
-6
hlsl.shapeConv.frag
Test/hlsl.shapeConv.frag
+2
-2
hlsl.whileLoop.frag
Test/hlsl.whileLoop.frag
+1
-1
Intermediate.cpp
glslang/MachineIndependent/Intermediate.cpp
+16
-1
intermOut.cpp
glslang/MachineIndependent/intermOut.cpp
+2
-0
Hlsl.FromFile.cpp
gtests/Hlsl.FromFile.cpp
+1
-0
No files found.
Test/baseResults/hlsl.comparison.vec.frag.out
0 → 100644
View file @
aba44400
hlsl.comparison.vec.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:4 Function Definition: Bug1(vf4; (temp void)
0:4 Function Parameters:
0:4 'a' (in 4-component vector of float)
0:? Sequence
0:5 Sequence
0:5 move second child to first child (temp 4-component vector of float)
0:5 'v04' (temp 4-component vector of float)
0:? Constant:
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:6 Sequence
0:6 move second child to first child (temp float)
0:6 'v01' (temp float)
0:6 Constant:
0:6 0.000000
0:8 Sequence
0:8 move second child to first child (temp 4-component vector of bool)
0:8 'r00' (temp 4-component vector of bool)
0:8 Equal (temp 4-component vector of bool)
0:8 'a' (in 4-component vector of float)
0:8 'v04' (temp 4-component vector of float)
0:9 Sequence
0:9 move second child to first child (temp 4-component vector of bool)
0:9 'r01' (temp 4-component vector of bool)
0:9 NotEqual (temp 4-component vector of bool)
0:9 'a' (in 4-component vector of float)
0:9 'v04' (temp 4-component vector of float)
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of bool)
0:10 'r02' (temp 4-component vector of bool)
0:10 Compare Less Than (temp 4-component vector of bool)
0:10 'a' (in 4-component vector of float)
0:10 'v04' (temp 4-component vector of float)
0:11 Sequence
0:11 move second child to first child (temp 4-component vector of bool)
0:11 'r03' (temp 4-component vector of bool)
0:11 Compare Greater Than (temp 4-component vector of bool)
0:11 'a' (in 4-component vector of float)
0:11 'v04' (temp 4-component vector of float)
0:13 Sequence
0:13 move second child to first child (temp 4-component vector of bool)
0:13 'r10' (temp 4-component vector of bool)
0:13 Equal (temp 4-component vector of bool)
0:13 'a' (in 4-component vector of float)
0:13 Construct vec4 (in 4-component vector of float)
0:13 'v01' (temp float)
0:14 Sequence
0:14 move second child to first child (temp 4-component vector of bool)
0:14 'r11' (temp 4-component vector of bool)
0:14 NotEqual (temp 4-component vector of bool)
0:14 'a' (in 4-component vector of float)
0:14 Construct vec4 (in 4-component vector of float)
0:14 'v01' (temp float)
0:15 Sequence
0:15 move second child to first child (temp 4-component vector of bool)
0:15 'r12' (temp 4-component vector of bool)
0:15 Compare Less Than (temp 4-component vector of bool)
0:15 'a' (in 4-component vector of float)
0:15 Construct vec4 (in 4-component vector of float)
0:15 'v01' (temp float)
0:16 Sequence
0:16 move second child to first child (temp 4-component vector of bool)
0:16 'r13' (temp 4-component vector of bool)
0:16 Compare Greater Than (temp 4-component vector of bool)
0:16 'a' (in 4-component vector of float)
0:16 Construct vec4 (in 4-component vector of float)
0:16 'v01' (temp float)
0:18 Sequence
0:18 move second child to first child (temp 4-component vector of bool)
0:18 'r20' (temp 4-component vector of bool)
0:18 Equal (temp 4-component vector of bool)
0:18 Construct vec4 (in 4-component vector of float)
0:18 'v01' (temp float)
0:18 'a' (in 4-component vector of float)
0:19 Sequence
0:19 move second child to first child (temp 4-component vector of bool)
0:19 'r21' (temp 4-component vector of bool)
0:19 NotEqual (temp 4-component vector of bool)
0:19 Construct vec4 (in 4-component vector of float)
0:19 'v01' (temp float)
0:19 'a' (in 4-component vector of float)
0:20 Sequence
0:20 move second child to first child (temp 4-component vector of bool)
0:20 'r22' (temp 4-component vector of bool)
0:20 Compare Less Than (temp 4-component vector of bool)
0:20 Construct vec4 (in 4-component vector of float)
0:20 'v01' (temp float)
0:20 'a' (in 4-component vector of float)
0:21 Sequence
0:21 move second child to first child (temp 4-component vector of bool)
0:21 'r23' (temp 4-component vector of bool)
0:21 Compare Greater Than (temp 4-component vector of bool)
0:21 Construct vec4 (in 4-component vector of float)
0:21 'v01' (temp float)
0:21 'a' (in 4-component vector of float)
0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:30 Function Parameters:
0:? Sequence
0:32 move second child to first child (temp 4-component vector of float)
0:32 Color: direct index for structure (temp 4-component vector of float)
0:32 'psout' (temp structure{temp 4-component vector of float Color})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:33 Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:33 Color: direct index for structure (temp 4-component vector of float)
0:33 'psout' (temp structure{temp 4-component vector of float Color})
0:33 Constant:
0:33 0 (const int)
0:33 Branch: Return
0:? Linker Objects
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float uf4})
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:4 Function Definition: Bug1(vf4; (temp void)
0:4 Function Parameters:
0:4 'a' (in 4-component vector of float)
0:? Sequence
0:5 Sequence
0:5 move second child to first child (temp 4-component vector of float)
0:5 'v04' (temp 4-component vector of float)
0:? Constant:
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:6 Sequence
0:6 move second child to first child (temp float)
0:6 'v01' (temp float)
0:6 Constant:
0:6 0.000000
0:8 Sequence
0:8 move second child to first child (temp 4-component vector of bool)
0:8 'r00' (temp 4-component vector of bool)
0:8 Equal (temp 4-component vector of bool)
0:8 'a' (in 4-component vector of float)
0:8 'v04' (temp 4-component vector of float)
0:9 Sequence
0:9 move second child to first child (temp 4-component vector of bool)
0:9 'r01' (temp 4-component vector of bool)
0:9 NotEqual (temp 4-component vector of bool)
0:9 'a' (in 4-component vector of float)
0:9 'v04' (temp 4-component vector of float)
0:10 Sequence
0:10 move second child to first child (temp 4-component vector of bool)
0:10 'r02' (temp 4-component vector of bool)
0:10 Compare Less Than (temp 4-component vector of bool)
0:10 'a' (in 4-component vector of float)
0:10 'v04' (temp 4-component vector of float)
0:11 Sequence
0:11 move second child to first child (temp 4-component vector of bool)
0:11 'r03' (temp 4-component vector of bool)
0:11 Compare Greater Than (temp 4-component vector of bool)
0:11 'a' (in 4-component vector of float)
0:11 'v04' (temp 4-component vector of float)
0:13 Sequence
0:13 move second child to first child (temp 4-component vector of bool)
0:13 'r10' (temp 4-component vector of bool)
0:13 Equal (temp 4-component vector of bool)
0:13 'a' (in 4-component vector of float)
0:13 Construct vec4 (in 4-component vector of float)
0:13 'v01' (temp float)
0:14 Sequence
0:14 move second child to first child (temp 4-component vector of bool)
0:14 'r11' (temp 4-component vector of bool)
0:14 NotEqual (temp 4-component vector of bool)
0:14 'a' (in 4-component vector of float)
0:14 Construct vec4 (in 4-component vector of float)
0:14 'v01' (temp float)
0:15 Sequence
0:15 move second child to first child (temp 4-component vector of bool)
0:15 'r12' (temp 4-component vector of bool)
0:15 Compare Less Than (temp 4-component vector of bool)
0:15 'a' (in 4-component vector of float)
0:15 Construct vec4 (in 4-component vector of float)
0:15 'v01' (temp float)
0:16 Sequence
0:16 move second child to first child (temp 4-component vector of bool)
0:16 'r13' (temp 4-component vector of bool)
0:16 Compare Greater Than (temp 4-component vector of bool)
0:16 'a' (in 4-component vector of float)
0:16 Construct vec4 (in 4-component vector of float)
0:16 'v01' (temp float)
0:18 Sequence
0:18 move second child to first child (temp 4-component vector of bool)
0:18 'r20' (temp 4-component vector of bool)
0:18 Equal (temp 4-component vector of bool)
0:18 Construct vec4 (in 4-component vector of float)
0:18 'v01' (temp float)
0:18 'a' (in 4-component vector of float)
0:19 Sequence
0:19 move second child to first child (temp 4-component vector of bool)
0:19 'r21' (temp 4-component vector of bool)
0:19 NotEqual (temp 4-component vector of bool)
0:19 Construct vec4 (in 4-component vector of float)
0:19 'v01' (temp float)
0:19 'a' (in 4-component vector of float)
0:20 Sequence
0:20 move second child to first child (temp 4-component vector of bool)
0:20 'r22' (temp 4-component vector of bool)
0:20 Compare Less Than (temp 4-component vector of bool)
0:20 Construct vec4 (in 4-component vector of float)
0:20 'v01' (temp float)
0:20 'a' (in 4-component vector of float)
0:21 Sequence
0:21 move second child to first child (temp 4-component vector of bool)
0:21 'r23' (temp 4-component vector of bool)
0:21 Compare Greater Than (temp 4-component vector of bool)
0:21 Construct vec4 (in 4-component vector of float)
0:21 'v01' (temp float)
0:21 'a' (in 4-component vector of float)
0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:30 Function Parameters:
0:? Sequence
0:32 move second child to first child (temp 4-component vector of float)
0:32 Color: direct index for structure (temp 4-component vector of float)
0:32 'psout' (temp structure{temp 4-component vector of float Color})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:33 Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:33 Color: direct index for structure (temp 4-component vector of float)
0:33 'psout' (temp structure{temp 4-component vector of float Color})
0:33 Constant:
0:33 0 (const int)
0:33 Branch: Return
0:? Linker Objects
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float uf4})
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 91
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 84
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 11 "Bug1(vf4;"
Name 10 "a"
Name 13 "v04"
Name 17 "v01"
Name 21 "r00"
Name 25 "r01"
Name 29 "r02"
Name 33 "r03"
Name 37 "r10"
Name 42 "r11"
Name 47 "r12"
Name 52 "r13"
Name 57 "r20"
Name 62 "r21"
Name 67 "r22"
Name 72 "r23"
Name 77 "PS_OUTPUT"
MemberName 77(PS_OUTPUT) 0 "Color"
Name 79 "psout"
Name 84 "Color"
Name 88 "$Global"
MemberName 88($Global) 0 "uf4"
Name 90 ""
Decorate 84(Color) Location 0
Decorate 88($Global) Block
Decorate 90 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 2 8(ptr)
14: 6(float) Constant 0
15: 7(fvec4) ConstantComposite 14 14 14 14
16: TypePointer Function 6(float)
18: TypeBool
19: TypeVector 18(bool) 4
20: TypePointer Function 19(bvec4)
77(PS_OUTPUT): TypeStruct 7(fvec4)
78: TypePointer Function 77(PS_OUTPUT)
80: TypeInt 32 1
81: 80(int) Constant 0
83: TypePointer Output 7(fvec4)
84(Color): 83(ptr) Variable Output
88($Global): TypeStruct 7(fvec4)
89: TypePointer Uniform 88($Global)
90: 89(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
79(psout): 78(ptr) Variable Function
82: 8(ptr) AccessChain 79(psout) 81
Store 82 15
85: 8(ptr) AccessChain 79(psout) 81
86: 7(fvec4) Load 85
Store 84(Color) 86
Return
FunctionEnd
11(Bug1(vf4;): 2 Function None 9
10(a): 8(ptr) FunctionParameter
12: Label
13(v04): 8(ptr) Variable Function
17(v01): 16(ptr) Variable Function
21(r00): 20(ptr) Variable Function
25(r01): 20(ptr) Variable Function
29(r02): 20(ptr) Variable Function
33(r03): 20(ptr) Variable Function
37(r10): 20(ptr) Variable Function
42(r11): 20(ptr) Variable Function
47(r12): 20(ptr) Variable Function
52(r13): 20(ptr) Variable Function
57(r20): 20(ptr) Variable Function
62(r21): 20(ptr) Variable Function
67(r22): 20(ptr) Variable Function
72(r23): 20(ptr) Variable Function
Store 13(v04) 15
Store 17(v01) 14
22: 7(fvec4) Load 10(a)
23: 7(fvec4) Load 13(v04)
24: 19(bvec4) FOrdEqual 22 23
Store 21(r00) 24
26: 7(fvec4) Load 10(a)
27: 7(fvec4) Load 13(v04)
28: 19(bvec4) FOrdNotEqual 26 27
Store 25(r01) 28
30: 7(fvec4) Load 10(a)
31: 7(fvec4) Load 13(v04)
32: 19(bvec4) FOrdLessThan 30 31
Store 29(r02) 32
34: 7(fvec4) Load 10(a)
35: 7(fvec4) Load 13(v04)
36: 19(bvec4) FOrdGreaterThan 34 35
Store 33(r03) 36
38: 7(fvec4) Load 10(a)
39: 6(float) Load 17(v01)
40: 7(fvec4) CompositeConstruct 39 39 39 39
41: 19(bvec4) FOrdEqual 38 40
Store 37(r10) 41
43: 7(fvec4) Load 10(a)
44: 6(float) Load 17(v01)
45: 7(fvec4) CompositeConstruct 44 44 44 44
46: 19(bvec4) FOrdNotEqual 43 45
Store 42(r11) 46
48: 7(fvec4) Load 10(a)
49: 6(float) Load 17(v01)
50: 7(fvec4) CompositeConstruct 49 49 49 49
51: 19(bvec4) FOrdLessThan 48 50
Store 47(r12) 51
53: 7(fvec4) Load 10(a)
54: 6(float) Load 17(v01)
55: 7(fvec4) CompositeConstruct 54 54 54 54
56: 19(bvec4) FOrdGreaterThan 53 55
Store 52(r13) 56
58: 6(float) Load 17(v01)
59: 7(fvec4) CompositeConstruct 58 58 58 58
60: 7(fvec4) Load 10(a)
61: 19(bvec4) FOrdEqual 59 60
Store 57(r20) 61
63: 6(float) Load 17(v01)
64: 7(fvec4) CompositeConstruct 63 63 63 63
65: 7(fvec4) Load 10(a)
66: 19(bvec4) FOrdNotEqual 64 65
Store 62(r21) 66
68: 6(float) Load 17(v01)
69: 7(fvec4) CompositeConstruct 68 68 68 68
70: 7(fvec4) Load 10(a)
71: 19(bvec4) FOrdLessThan 69 70
Store 67(r22) 71
73: 6(float) Load 17(v01)
74: 7(fvec4) CompositeConstruct 73 73 73 73
75: 7(fvec4) Load 10(a)
76: 19(bvec4) FOrdGreaterThan 74 75
Store 72(r23) 76
Return
FunctionEnd
Test/baseResults/hlsl.doLoop.frag.out
View file @
aba44400
...
@@ -18,7 +18,8 @@ gl_FragCoord origin is upper left
...
@@ -18,7 +18,8 @@ gl_FragCoord origin is upper left
0:4 No loop body
0:4 No loop body
0:5 Loop with condition not tested first
0:5 Loop with condition not tested first
0:5 Loop Condition
0:5 Loop Condition
0:5 Compare Equal (temp bool)
0:5 all (global bool)
0:5 Equal (temp 4-component vector of bool)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Loop Body
0:5 Loop Body
...
@@ -54,7 +55,8 @@ gl_FragCoord origin is upper left
...
@@ -54,7 +55,8 @@ gl_FragCoord origin is upper left
0:4 No loop body
0:4 No loop body
0:5 Loop with condition not tested first
0:5 Loop with condition not tested first
0:5 Loop Condition
0:5 Loop Condition
0:5 Compare Equal (temp bool)
0:5 all (global bool)
0:5 Equal (temp 4-component vector of bool)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Loop Body
0:5 Loop Body
...
...
Test/baseResults/hlsl.forLoop.frag.out
View file @
aba44400
...
@@ -19,14 +19,16 @@ gl_FragCoord origin is upper left
...
@@ -19,14 +19,16 @@ gl_FragCoord origin is upper left
0:? Sequence
0:? Sequence
0:5 Loop with condition tested first
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Loop Condition
0:5 Compare Not Equal (temp bool)
0:5 any (global bool)
0:5 NotEqual (temp 4-component vector of bool)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 No loop body
0:5 No loop body
0:? Sequence
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Loop Condition
0:6 Compare Not Equal (temp bool)
0:6 any (global bool)
0:6 NotEqual (temp 4-component vector of bool)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Loop Body
0:6 Loop Body
...
@@ -42,7 +44,8 @@ gl_FragCoord origin is upper left
...
@@ -42,7 +44,8 @@ gl_FragCoord origin is upper left
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop with condition tested first
0:7 Loop Condition
0:7 Loop Condition
0:7 Compare Not Equal (temp bool)
0:7 any (global bool)
0:7 NotEqual (temp 4-component vector of bool)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop Body
0:7 Loop Body
...
@@ -141,14 +144,16 @@ gl_FragCoord origin is upper left
...
@@ -141,14 +144,16 @@ gl_FragCoord origin is upper left
0:? Sequence
0:? Sequence
0:5 Loop with condition tested first
0:5 Loop with condition tested first
0:5 Loop Condition
0:5 Loop Condition
0:5 Compare Not Equal (temp bool)
0:5 any (global bool)
0:5 NotEqual (temp 4-component vector of bool)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 No loop body
0:5 No loop body
0:? Sequence
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop with condition tested first
0:6 Loop Condition
0:6 Loop Condition
0:6 Compare Not Equal (temp bool)
0:6 any (global bool)
0:6 NotEqual (temp 4-component vector of bool)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Loop Body
0:6 Loop Body
...
@@ -164,7 +169,8 @@ gl_FragCoord origin is upper left
...
@@ -164,7 +169,8 @@ gl_FragCoord origin is upper left
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop with condition tested first
0:7 Loop Condition
0:7 Loop Condition
0:7 Compare Not Equal (temp bool)
0:7 any (global bool)
0:7 NotEqual (temp 4-component vector of bool)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop Body
0:7 Loop Body
...
...
Test/baseResults/hlsl.if.frag.out
View file @
aba44400
...
@@ -8,7 +8,8 @@ gl_FragCoord origin is upper left
...
@@ -8,7 +8,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Test condition and select (temp void)
0:3 Condition
0:3 Condition
0:3 Compare Equal (temp bool)
0:3 all (global bool)
0:3 Equal (temp 4-component vector of bool)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 true case
0:3 true case
...
@@ -19,7 +20,8 @@ gl_FragCoord origin is upper left
...
@@ -19,7 +20,8 @@ gl_FragCoord origin is upper left
0:4 Branch: Return
0:4 Branch: Return
0:6 Test condition and select (temp void)
0:6 Test condition and select (temp void)
0:6 Condition
0:6 Condition
0:6 Compare Equal (temp bool)
0:6 all (global bool)
0:6 Equal (temp 4-component vector of bool)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 true case
0:6 true case
...
@@ -37,19 +39,22 @@ gl_FragCoord origin is upper left
...
@@ -37,19 +39,22 @@ gl_FragCoord origin is upper left
0:9 Branch: Return
0:9 Branch: Return
0:11 Test condition and select (temp void)
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Condition
0:11 Compare Equal (temp bool)
0:11 all (global bool)
0:11 Equal (temp 4-component vector of bool)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 true case is null
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Test condition and select (temp void)
0:14 Condition
0:14 Condition
0:14 Compare Equal (temp bool)
0:14 all (global bool)
0:14 Equal (temp 4-component vector of bool)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 true case is null
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Test condition and select (temp void)
0:19 Condition
0:19 Condition
0:19 Compare Equal (temp bool)
0:19 all (global bool)
0:19 Equal (temp 4-component vector of bool)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 true case
0:19 true case
...
@@ -61,7 +66,8 @@ gl_FragCoord origin is upper left
...
@@ -61,7 +66,8 @@ gl_FragCoord origin is upper left
0:20 Branch: Return
0:20 Branch: Return
0:23 Test condition and select (temp void)
0:23 Test condition and select (temp void)
0:23 Condition
0:23 Condition
0:23 Compare Equal (temp bool)
0:23 all (global bool)
0:23 Equal (temp 4-component vector of bool)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 true case
0:23 true case
...
@@ -109,7 +115,8 @@ gl_FragCoord origin is upper left
...
@@ -109,7 +115,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Test condition and select (temp void)
0:3 Condition
0:3 Condition
0:3 Compare Equal (temp bool)
0:3 all (global bool)
0:3 Equal (temp 4-component vector of bool)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 true case
0:3 true case
...
@@ -120,7 +127,8 @@ gl_FragCoord origin is upper left
...
@@ -120,7 +127,8 @@ gl_FragCoord origin is upper left
0:4 Branch: Return
0:4 Branch: Return
0:6 Test condition and select (temp void)
0:6 Test condition and select (temp void)
0:6 Condition
0:6 Condition
0:6 Compare Equal (temp bool)
0:6 all (global bool)
0:6 Equal (temp 4-component vector of bool)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 true case
0:6 true case
...
@@ -138,19 +146,22 @@ gl_FragCoord origin is upper left
...
@@ -138,19 +146,22 @@ gl_FragCoord origin is upper left
0:9 Branch: Return
0:9 Branch: Return
0:11 Test condition and select (temp void)
0:11 Test condition and select (temp void)
0:11 Condition
0:11 Condition
0:11 Compare Equal (temp bool)
0:11 all (global bool)
0:11 Equal (temp 4-component vector of bool)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 true case is null
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Test condition and select (temp void)
0:14 Condition
0:14 Condition
0:14 Compare Equal (temp bool)
0:14 all (global bool)
0:14 Equal (temp 4-component vector of bool)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 true case is null
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Test condition and select (temp void)
0:19 Condition
0:19 Condition
0:19 Compare Equal (temp bool)
0:19 all (global bool)
0:19 Equal (temp 4-component vector of bool)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 true case
0:19 true case
...
@@ -162,7 +173,8 @@ gl_FragCoord origin is upper left
...
@@ -162,7 +173,8 @@ gl_FragCoord origin is upper left
0:20 Branch: Return
0:20 Branch: Return
0:23 Test condition and select (temp void)
0:23 Test condition and select (temp void)
0:23 Condition
0:23 Condition
0:23 Compare Equal (temp bool)
0:23 all (global bool)
0:23 Equal (temp 4-component vector of bool)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 true case
0:23 true case
...
...
Test/baseResults/hlsl.shapeConv.frag.out
View file @
aba44400
...
@@ -58,38 +58,40 @@ gl_FragCoord origin is upper left
...
@@ -58,38 +58,40 @@ gl_FragCoord origin is upper left
0:13 'MyVal' (temp 3-component vector of float)
0:13 'MyVal' (temp 3-component vector of float)
0:13 Construct vec3 (temp 3-component vector of float)
0:13 Construct vec3 (temp 3-component vector of float)
0:13 'V' (temp float)
0:13 'V' (temp float)
0:16 Compare Greater Than (temp bool)
0:16 Compare Greater Than (temp
3-component vector of
bool)
0:16 'foo' (temp 3-component vector of float)
0:16 'foo' (temp 3-component vector of float)
0:16 Constant:
0:16 Constant:
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:17 Compare Greater Than or Equal (temp bool)
0:17 Compare Greater Than or Equal (temp
3-component vector of
bool)
0:17 'foo' (temp 3-component vector of float)
0:17 'foo' (temp 3-component vector of float)
0:17 Constant:
0:17 Constant:
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:18 Compare Less Than (temp bool)
0:18 Compare Less Than (temp
3-component vector of
bool)
0:18 Constant:
0:18 Constant:
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 'foo' (temp 3-component vector of float)
0:18 'foo' (temp 3-component vector of float)
0:19 Compare Less Than or Equal (temp bool)
0:19 Compare Less Than or Equal (temp
3-component vector of
bool)
0:19 Constant:
0:19 Constant:
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 'foo' (temp 3-component vector of float)
0:19 'foo' (temp 3-component vector of float)
0:21 Compare Equal (temp bool)
0:21 all (global bool)
0:21 Equal (temp 4-component vector of bool)
0:21 Construct vec4 (temp 4-component vector of float)
0:21 Construct vec4 (temp 4-component vector of float)
0:21 direct index (temp float)
0:21 direct index (temp float)
0:21 'v' (temp 4-component vector of float)
0:21 'v' (temp 4-component vector of float)
0:21 Constant:
0:21 Constant:
0:21 0 (const int)
0:21 0 (const int)
0:21 'v' (temp 4-component vector of float)
0:21 'v' (temp 4-component vector of float)
0:22 Compare Not Equal (temp bool)
0:22 any (global bool)
0:22 NotEqual (temp 4-component vector of bool)
0:22 Construct vec4 (temp 4-component vector of float)
0:22 Construct vec4 (temp 4-component vector of float)
0:22 'f' (in float)
0:22 'f' (in float)
0:22 'v' (temp 4-component vector of float)
0:22 'v' (temp 4-component vector of float)
...
@@ -173,38 +175,40 @@ gl_FragCoord origin is upper left
...
@@ -173,38 +175,40 @@ gl_FragCoord origin is upper left
0:13 'MyVal' (temp 3-component vector of float)
0:13 'MyVal' (temp 3-component vector of float)
0:13 Construct vec3 (temp 3-component vector of float)
0:13 Construct vec3 (temp 3-component vector of float)
0:13 'V' (temp float)
0:13 'V' (temp float)
0:16 Compare Greater Than (temp bool)
0:16 Compare Greater Than (temp
3-component vector of
bool)
0:16 'foo' (temp 3-component vector of float)
0:16 'foo' (temp 3-component vector of float)
0:16 Constant:
0:16 Constant:
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:16 4.000000
0:17 Compare Greater Than or Equal (temp bool)
0:17 Compare Greater Than or Equal (temp
3-component vector of
bool)
0:17 'foo' (temp 3-component vector of float)
0:17 'foo' (temp 3-component vector of float)
0:17 Constant:
0:17 Constant:
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:17 5.000000
0:18 Compare Less Than (temp bool)
0:18 Compare Less Than (temp
3-component vector of
bool)
0:18 Constant:
0:18 Constant:
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 'foo' (temp 3-component vector of float)
0:18 'foo' (temp 3-component vector of float)
0:19 Compare Less Than or Equal (temp bool)
0:19 Compare Less Than or Equal (temp
3-component vector of
bool)
0:19 Constant:
0:19 Constant:
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 'foo' (temp 3-component vector of float)
0:19 'foo' (temp 3-component vector of float)
0:21 Compare Equal (temp bool)
0:21 all (global bool)
0:21 Equal (temp 4-component vector of bool)
0:21 Construct vec4 (temp 4-component vector of float)
0:21 Construct vec4 (temp 4-component vector of float)
0:21 direct index (temp float)
0:21 direct index (temp float)
0:21 'v' (temp 4-component vector of float)
0:21 'v' (temp 4-component vector of float)
0:21 Constant:
0:21 Constant:
0:21 0 (const int)
0:21 0 (const int)
0:21 'v' (temp 4-component vector of float)
0:21 'v' (temp 4-component vector of float)
0:22 Compare Not Equal (temp bool)
0:22 any (global bool)
0:22 NotEqual (temp 4-component vector of bool)
0:22 Construct vec4 (temp 4-component vector of float)
0:22 Construct vec4 (temp 4-component vector of float)
0:22 'f' (in float)
0:22 'f' (in float)
0:22 'v' (temp 4-component vector of float)
0:22 'v' (temp 4-component vector of float)
...
@@ -227,7 +231,7 @@ gl_FragCoord origin is upper left
...
@@ -227,7 +231,7 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80001
// Generated by (magic number): 80001
// Id's are bound by 8
4
// Id's are bound by 8
5
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
...
@@ -244,7 +248,7 @@ gl_FragCoord origin is upper left
...
@@ -244,7 +248,7 @@ gl_FragCoord origin is upper left
Name 33 "V"
Name 33 "V"
Name 34 "MyVal"
Name 34 "MyVal"
Name 37 "foo"
Name 37 "foo"
Name
69
"f1"
Name
70
"f1"
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeFloat 32
6: TypeFloat 32
...
@@ -266,15 +270,16 @@ gl_FragCoord origin is upper left
...
@@ -266,15 +270,16 @@ gl_FragCoord origin is upper left
39: 6(float) Constant 1082130432
39: 6(float) Constant 1082130432
40: 22(fvec3) ConstantComposite 39 39 39
40: 22(fvec3) ConstantComposite 39 39 39
41: TypeBool
41: TypeBool
44: 6(float) Constant 1084227584
42: TypeVector 41(bool) 3
45: 22(fvec3) ConstantComposite 44 44 44
45: 6(float) Constant 1084227584
47: 6(float) Constant 1086324736
46: 22(fvec3) ConstantComposite 45 45 45
48: 22(fvec3) ConstantComposite 47 47 47
48: 6(float) Constant 1086324736
51: 6(float) Constant 1088421888
49: 22(fvec3) ConstantComposite 48 48 48
52: 22(fvec3) ConstantComposite 51 51 51
52: 6(float) Constant 1088421888
55: TypeInt 32 0
53: 22(fvec3) ConstantComposite 52 52 52
56: 55(int) Constant 0
56: TypeInt 32 0
61: TypeVector 41(bool) 4
57: 56(int) Constant 0
62: TypeVector 41(bool) 4
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
FunctionEnd
FunctionEnd
...
@@ -288,7 +293,7 @@ gl_FragCoord origin is upper left
...
@@ -288,7 +293,7 @@ gl_FragCoord origin is upper left
33(V): 9(ptr) Variable Function
33(V): 9(ptr) Variable Function
34(MyVal): 23(ptr) Variable Function
34(MyVal): 23(ptr) Variable Function
37(foo): 23(ptr) Variable Function
37(foo): 23(ptr) Variable Function
69
(f1): 9(ptr) Variable Function
70
(f1): 9(ptr) Variable Function
Store 15(v) 17
Store 15(v) 17
Store 15(v) 19
Store 15(v) 19
20: 6(float) Load 12(f)
20: 6(float) Load 12(f)
...
@@ -305,35 +310,35 @@ gl_FragCoord origin is upper left
...
@@ -305,35 +310,35 @@ gl_FragCoord origin is upper left
36: 22(fvec3) CompositeConstruct 35 35 35
36: 22(fvec3) CompositeConstruct 35 35 35
Store 34(MyVal) 36
Store 34(MyVal) 36
38: 22(fvec3) Load 37(foo)
38: 22(fvec3) Load 37(foo)
4
2: 41(bool
) FOrdGreaterThan 38 40
4
3: 42(bvec3
) FOrdGreaterThan 38 40
4
3
: 22(fvec3) Load 37(foo)
4
4
: 22(fvec3) Load 37(foo)
4
6: 41(bool) FOrdGreaterThanEqual 43 45
4
7: 42(bvec3) FOrdGreaterThanEqual 44 46
49
: 22(fvec3) Load 37(foo)
50
: 22(fvec3) Load 37(foo)
5
0: 41(bool) FOrdLessThan 48 49
5
1: 42(bvec3) FOrdLessThan 49 50
5
3
: 22(fvec3) Load 37(foo)
5
4
: 22(fvec3) Load 37(foo)
5
4: 41(bool) FOrdLessThanEqual 52 53
5
5: 42(bvec3) FOrdLessThanEqual 53 54
5
7: 9(ptr) AccessChain 15(v) 56
5
8: 9(ptr) AccessChain 15(v) 57
5
8: 6(float) Load 57
5
9: 6(float) Load 58
59: 7(fvec4) CompositeConstruct 58 58 58 58
60: 7(fvec4) CompositeConstruct 59 59 59 59
6
0
: 7(fvec4) Load 15(v)
6
1
: 7(fvec4) Load 15(v)
6
2: 61(bvec4) FOrdEqual 59 60
6
3: 62(bvec4) FOrdEqual 60 61
6
3: 41(bool) All 62
6
4: 41(bool) All 63
6
4
: 6(float) Load 12(f)
6
5
: 6(float) Load 12(f)
6
5: 7(fvec4) CompositeConstruct 64 64 64 64
6
6: 7(fvec4) CompositeConstruct 65 65 65 65
6
6
: 7(fvec4) Load 15(v)
6
7
: 7(fvec4) Load 15(v)
6
7: 61(bvec4) FOrdNotEqual 65 66
6
8: 62(bvec4) FOrdNotEqual 66 67
6
8: 41(bool) Any 67
6
9: 41(bool) Any 68
7
0: 6(float) Load 69
(f1)
7
1: 6(float) Load 70
(f1)
7
1
: 7(fvec4) Load 15(v)
7
2
: 7(fvec4) Load 15(v)
7
2: 6(float) CompositeExtract 71
0
7
3: 6(float) CompositeExtract 72
0
7
3: 41(bool) FOrdEqual 70 72
7
4: 41(bool) FOrdEqual 71 73
7
4
: 7(fvec4) Load 15(v)
7
5
: 7(fvec4) Load 15(v)
7
5: 6(float) CompositeExtract 74
0
7
6: 6(float) CompositeExtract 75
0
7
6: 6(float) Load 69
(f1)
7
7: 6(float) Load 70
(f1)
7
7: 41(bool) FOrdLessThan 75 76
7
8: 41(bool) FOrdLessThan 76 77
7
8: 6(float) Load 69
(f1)
7
9: 6(float) Load 70
(f1)
79: 6(float) Load 69
(f1)
80: 6(float) Load 70
(f1)
8
0: 22(fvec3) CompositeConstruct 79 79 79
8
1: 22(fvec3) CompositeConstruct 80 80 80
8
1
: 7(fvec4) Load 11(input)
8
2
: 7(fvec4) Load 11(input)
ReturnValue 8
1
ReturnValue 8
2
FunctionEnd
FunctionEnd
Test/baseResults/hlsl.whileLoop.frag.out
View file @
aba44400
...
@@ -8,7 +8,8 @@ gl_FragCoord origin is upper left
...
@@ -8,7 +8,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:? Sequence
0:3 Loop with condition tested first
0:3 Loop with condition tested first
0:3 Loop Condition
0:3 Loop Condition
0:3 Compare Not Equal (temp bool)
0:3 any (global bool)
0:3 NotEqual (temp 4-component vector of bool)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Loop Body
0:3 Loop Body
...
@@ -50,7 +51,8 @@ gl_FragCoord origin is upper left
...
@@ -50,7 +51,8 @@ gl_FragCoord origin is upper left
0:? Sequence
0:? Sequence
0:3 Loop with condition tested first
0:3 Loop with condition tested first
0:3 Loop Condition
0:3 Loop Condition
0:3 Compare Not Equal (temp bool)
0:3 any (global bool)
0:3 NotEqual (temp 4-component vector of bool)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Loop Body
0:3 Loop Body
...
...
Test/hlsl.comparison.vec.frag
0 → 100644
View file @
aba44400
uniform
float4
uf4
;
void
Bug1
(
float4
a
)
{
float4
v04
=
float4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
float
v01
=
0
.
0
;
bool4
r00
=
a
==
v04
;
bool4
r01
=
a
!=
v04
;
bool4
r02
=
a
<
v04
;
bool4
r03
=
a
>
v04
;
bool4
r10
=
a
==
v01
;
bool4
r11
=
a
!=
v01
;
bool4
r12
=
a
<
v01
;
bool4
r13
=
a
>
v01
;
bool4
r20
=
v01
==
a
;
bool4
r21
=
v01
!=
a
;
bool4
r22
=
v01
<
a
;
bool4
r23
=
v01
>
a
;
}
struct
PS_OUTPUT
{
float4
Color
:
SV_Target0
;
};
PS_OUTPUT
main
()
{
PS_OUTPUT
psout
;
psout
.
Color
=
0
;
return
psout
;
}
Test/hlsl.doLoop.frag
View file @
aba44400
...
@@ -2,5 +2,5 @@ float4 PixelShaderFunction(float4 input) : COLOR0
...
@@ -2,5 +2,5 @@ float4 PixelShaderFunction(float4 input) : COLOR0
{
{
[
unroll
]
do
{}
while
(
false
);
[
unroll
]
do
{}
while
(
false
);
[
unroll
]
do
{;}
while
(
false
);
[
unroll
]
do
{;}
while
(
false
);
do
{
return
input
;
}
while
(
input
==
input
);
do
{
return
input
;
}
while
(
all
(
input
==
input
)
);
}
}
Test/hlsl.forLoop.frag
View file @
aba44400
...
@@ -2,9 +2,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0
...
@@ -2,9 +2,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0
{
{
for
(;;)
;
for
(;;)
;
for
(
++
input
;
;
)
;
for
(
++
input
;
;
)
;
[
unroll
]
for
(;
input
!=
input
;
)
{}
[
unroll
]
for
(;
any
(
input
!=
input
)
;
)
{}
for
(;
input
!=
input
;
)
{
return
-
input
;
}
for
(;
any
(
input
!=
input
)
;
)
{
return
-
input
;
}
for
(
--
input
;
input
!=
input
;
input
+=
2
)
{
return
-
input
;
}
for
(
--
input
;
any
(
input
!=
input
)
;
input
+=
2
)
{
return
-
input
;
}
for
(;;)
if
(
input
.
x
>
2
.
0
)
break
;
for
(;;)
if
(
input
.
x
>
2
.
0
)
break
;
for
(;;)
if
(
input
.
x
>
2
.
0
)
continue
;
for
(;;)
if
(
input
.
x
>
2
.
0
)
continue
;
float
ii
;
float
ii
;
...
...
Test/hlsl.if.frag
View file @
aba44400
float4
PixelShaderFunction
(
float4
input
)
:
COLOR0
float4
PixelShaderFunction
(
float4
input
)
:
COLOR0
{
{
if
(
input
==
input
)
if
(
all
(
input
==
input
)
)
return
input
;
return
input
;
if
(
input
==
input
)
if
(
all
(
input
==
input
)
)
return
input
;
return
input
;
else
else
return
-
input
;
return
-
input
;
if
(
input
==
input
)
if
(
all
(
input
==
input
)
)
;
;
if
(
input
==
input
)
if
(
all
(
input
==
input
)
)
;
;
else
else
;
;
[
flatten
]
if
(
input
==
input
)
{
[
flatten
]
if
(
all
(
input
==
input
)
)
{
return
input
;
return
input
;
}
}
if
(
input
==
input
)
{
if
(
all
(
input
==
input
)
)
{
return
input
;
return
input
;
}
else
{
}
else
{
return
-
input
;
return
-
input
;
...
...
Test/hlsl.shapeConv.frag
View file @
aba44400
...
@@ -18,8 +18,8 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0
...
@@ -18,8 +18,8 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0
6
.
0
<
foo
;
6
.
0
<
foo
;
7
.
0
<=
foo
;
7
.
0
<=
foo
;
v
.
x
==
v
;
all
(
v
.
x
==
v
)
;
f
!=
v
;
any
(
f
!=
v
)
;
float1
f1
;
float1
f1
;
...
...
Test/hlsl.whileLoop.frag
View file @
aba44400
float4
PixelShaderFunction
(
float4
input
)
:
COLOR0
float4
PixelShaderFunction
(
float4
input
)
:
COLOR0
{
{
while
(
input
!=
input
)
{
return
input
;
}
while
(
any
(
input
!=
input
)
)
{
return
input
;
}
while
(
false
)
;
while
(
false
)
;
[
unroll
]
while
(
false
)
{
}
[
unroll
]
while
(
false
)
{
}
while
((
false
))
{
}
while
((
false
))
{
}
...
...
glslang/MachineIndependent/Intermediate.cpp
View file @
aba44400
...
@@ -1892,13 +1892,26 @@ bool TIntermediate::promoteBinary(TIntermBinary& node)
...
@@ -1892,13 +1892,26 @@ bool TIntermediate::promoteBinary(TIntermBinary& node)
// Relational comparisons need numeric types and will promote to scalar Boolean.
// Relational comparisons need numeric types and will promote to scalar Boolean.
if
(
left
->
getBasicType
()
==
EbtBool
)
if
(
left
->
getBasicType
()
==
EbtBool
)
return
false
;
return
false
;
node
.
setType
(
TType
(
EbtBool
));
node
.
setType
(
TType
(
EbtBool
,
EvqTemporary
,
left
->
getVectorSize
()));
break
;
break
;
case
EOpEqual
:
case
EOpEqual
:
case
EOpNotEqual
:
case
EOpNotEqual
:
if
(
getSource
()
==
EShSourceHlsl
)
{
const
int
resultWidth
=
std
::
max
(
left
->
getVectorSize
(),
right
->
getVectorSize
());
// In HLSL, == or != on vectors means component-wise comparison.
if
(
resultWidth
>
1
)
{
op
=
(
op
==
EOpEqual
)
?
EOpVectorEqual
:
EOpVectorNotEqual
;
node
.
setOp
(
op
);
}
node
.
setType
(
TType
(
EbtBool
,
EvqTemporary
,
resultWidth
));
}
else
{
// All the above comparisons result in a bool (but not the vector compares)
// All the above comparisons result in a bool (but not the vector compares)
node
.
setType
(
TType
(
EbtBool
));
node
.
setType
(
TType
(
EbtBool
));
}
break
;
break
;
case
EOpLogicalAnd
:
case
EOpLogicalAnd
:
...
@@ -1973,6 +1986,8 @@ bool TIntermediate::promoteBinary(TIntermBinary& node)
...
@@ -1973,6 +1986,8 @@ bool TIntermediate::promoteBinary(TIntermBinary& node)
case
EOpEqual
:
case
EOpEqual
:
case
EOpNotEqual
:
case
EOpNotEqual
:
case
EOpVectorEqual
:
case
EOpVectorNotEqual
:
case
EOpLogicalAnd
:
case
EOpLogicalAnd
:
case
EOpLogicalOr
:
case
EOpLogicalOr
:
...
...
glslang/MachineIndependent/intermOut.cpp
View file @
aba44400
...
@@ -163,6 +163,8 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node)
...
@@ -163,6 +163,8 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node)
case
EOpGreaterThan
:
out
.
debug
<<
"Compare Greater Than"
;
break
;
case
EOpGreaterThan
:
out
.
debug
<<
"Compare Greater Than"
;
break
;
case
EOpLessThanEqual
:
out
.
debug
<<
"Compare Less Than or Equal"
;
break
;
case
EOpLessThanEqual
:
out
.
debug
<<
"Compare Less Than or Equal"
;
break
;
case
EOpGreaterThanEqual
:
out
.
debug
<<
"Compare Greater Than or Equal"
;
break
;
case
EOpGreaterThanEqual
:
out
.
debug
<<
"Compare Greater Than or Equal"
;
break
;
case
EOpVectorEqual
:
out
.
debug
<<
"Equal"
;
break
;
case
EOpVectorNotEqual
:
out
.
debug
<<
"NotEqual"
;
break
;
case
EOpVectorTimesScalar
:
out
.
debug
<<
"vector-scale"
;
break
;
case
EOpVectorTimesScalar
:
out
.
debug
<<
"vector-scale"
;
break
;
case
EOpVectorTimesMatrix
:
out
.
debug
<<
"vector-times-matrix"
;
break
;
case
EOpVectorTimesMatrix
:
out
.
debug
<<
"vector-times-matrix"
;
break
;
...
...
gtests/Hlsl.FromFile.cpp
View file @
aba44400
...
@@ -91,6 +91,7 @@ INSTANTIATE_TEST_CASE_P(
...
@@ -91,6 +91,7 @@ INSTANTIATE_TEST_CASE_P(
{
"hlsl.calculatelod.dx10.frag"
,
"main"
},
{
"hlsl.calculatelod.dx10.frag"
,
"main"
},
{
"hlsl.calculatelodunclamped.dx10.frag"
,
"main"
},
{
"hlsl.calculatelodunclamped.dx10.frag"
,
"main"
},
{
"hlsl.cast.frag"
,
"PixelShaderFunction"
},
{
"hlsl.cast.frag"
,
"PixelShaderFunction"
},
{
"hlsl.comparison.vec.frag"
,
"main"
},
{
"hlsl.conditional.frag"
,
"PixelShaderFunction"
},
{
"hlsl.conditional.frag"
,
"PixelShaderFunction"
},
{
"hlsl.constructexpr.frag"
,
"main"
},
{
"hlsl.constructexpr.frag"
,
"main"
},
{
"hlsl.depthGreater.frag"
,
"PixelShaderFunction"
},
{
"hlsl.depthGreater.frag"
,
"PixelShaderFunction"
},
...
...
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