mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-23 11:19:40 +00:00
rayQuery test cases added
This commit is contained in:
parent
ae64363b19
commit
2fb45def04
26
Test/baseResults/rayQuery-allOps.Error.rgen.out
Normal file
26
Test/baseResults/rayQuery-allOps.Error.rgen.out
Normal file
@ -0,0 +1,26 @@
|
||||
rayQuery-allOps.Error.rgen
|
||||
ERROR: 0:47: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:49: '=' : cannot convert from ' global uint' to ' temp highp int'
|
||||
ERROR: 0:59: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:64: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 2-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:69: '' : boolean expression expected
|
||||
ERROR: 0:74: '' : boolean expression expected
|
||||
ERROR: 0:79: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:84: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:89: '' : boolean expression expected
|
||||
ERROR: 0:94: '' : boolean expression expected
|
||||
ERROR: 0:99: '' : boolean expression expected
|
||||
ERROR: 0:127: '=' : cannot convert from ' global uint' to ' temp highp int'
|
||||
ERROR: 0:145: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 2-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:158: '' : boolean expression expected
|
||||
ERROR: 0:163: '' : boolean expression expected
|
||||
ERROR: 0:168: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:173: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' global 3-component vector of float' and a right operand of type ' const int' (or there is no acceptable conversion)
|
||||
ERROR: 0:178: '' : boolean expression expected
|
||||
ERROR: 0:183: '' : boolean expression expected
|
||||
ERROR: 0:195: '' : boolean expression expected
|
||||
ERROR: 0:200: '' : boolean expression expected
|
||||
ERROR: 21 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
438
Test/baseResults/rayQuery-allOps.comp.out
Normal file
438
Test/baseResults/rayQuery-allOps.comp.out
Normal file
@ -0,0 +1,438 @@
|
||||
rayQuery-allOps.comp
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80008
|
||||
// Id's are bound by 265
|
||||
|
||||
Capability Shader
|
||||
Capability RayQueryProvisionalKHR
|
||||
Extension "SPV_KHR_ray_query"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_ray_query"
|
||||
SourceExtension "GL_NV_ray_tracing"
|
||||
Name 4 "main"
|
||||
Name 6 "doSomething("
|
||||
Name 10 "Ray"
|
||||
MemberName 10(Ray) 0 "pos"
|
||||
MemberName 10(Ray) 1 "tmin"
|
||||
MemberName 10(Ray) 2 "dir"
|
||||
MemberName 10(Ray) 3 "tmax"
|
||||
Name 12 "makeRayDesc("
|
||||
Name 15 "Log"
|
||||
MemberName 15(Log) 0 "x"
|
||||
MemberName 15(Log) 1 "y"
|
||||
Name 17 ""
|
||||
Name 26 "ray"
|
||||
Name 45 "rayQuery"
|
||||
Name 48 "rtas"
|
||||
Name 51 "ray"
|
||||
Name 69 "candidateType"
|
||||
Name 79 "_mat4x3"
|
||||
Name 84 "_mat3x4"
|
||||
Name 146 "t"
|
||||
Name 160 "committedStatus"
|
||||
Name 246 "o"
|
||||
Name 249 "d"
|
||||
Name 260 "Ray"
|
||||
MemberName 260(Ray) 0 "pos"
|
||||
MemberName 260(Ray) 1 "tmin"
|
||||
MemberName 260(Ray) 2 "dir"
|
||||
MemberName 260(Ray) 3 "tmax"
|
||||
Name 262 "Rays"
|
||||
MemberName 262(Rays) 0 "rays"
|
||||
Name 264 ""
|
||||
MemberDecorate 15(Log) 0 Offset 0
|
||||
MemberDecorate 15(Log) 1 Offset 4
|
||||
Decorate 15(Log) BufferBlock
|
||||
Decorate 17 DescriptorSet 0
|
||||
Decorate 17 Binding 0
|
||||
Decorate 48(rtas) DescriptorSet 0
|
||||
Decorate 48(rtas) Binding 1
|
||||
MemberDecorate 260(Ray) 0 Offset 0
|
||||
MemberDecorate 260(Ray) 1 Offset 12
|
||||
MemberDecorate 260(Ray) 2 Offset 16
|
||||
MemberDecorate 260(Ray) 3 Offset 28
|
||||
Decorate 261 ArrayStride 32
|
||||
MemberDecorate 262(Rays) 0 Offset 0
|
||||
Decorate 262(Rays) BufferBlock
|
||||
Decorate 264 DescriptorSet 0
|
||||
Decorate 264 Binding 2
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
8: TypeFloat 32
|
||||
9: TypeVector 8(float) 3
|
||||
10(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
|
||||
11: TypeFunction 10(Ray)
|
||||
14: TypeInt 32 0
|
||||
15(Log): TypeStruct 14(int) 14(int)
|
||||
16: TypePointer Uniform 15(Log)
|
||||
17: 16(ptr) Variable Uniform
|
||||
18: TypeInt 32 1
|
||||
19: 18(int) Constant 0
|
||||
20: 14(int) Constant 0
|
||||
21: TypePointer Uniform 14(int)
|
||||
23: 18(int) Constant 1
|
||||
25: TypePointer Function 10(Ray)
|
||||
27: 8(float) Constant 0
|
||||
28: 9(fvec3) ConstantComposite 27 27 27
|
||||
29: TypePointer Function 9(fvec3)
|
||||
31: 18(int) Constant 2
|
||||
32: 8(float) Constant 1065353216
|
||||
33: 9(fvec3) ConstantComposite 32 27 27
|
||||
35: TypePointer Function 8(float)
|
||||
37: 18(int) Constant 3
|
||||
38: 8(float) Constant 1176255488
|
||||
43: TypeRayQueryProvisionalKHR
|
||||
44: TypePointer Function 43
|
||||
46: TypeAccelerationStructureKHR
|
||||
47: TypePointer UniformConstant 46
|
||||
48(rtas): 47(ptr) Variable UniformConstant
|
||||
50: 14(int) Constant 255
|
||||
66: TypeBool
|
||||
68: TypePointer Function 14(int)
|
||||
70: 66(bool) ConstantFalse
|
||||
77: TypeMatrix 9(fvec3) 4
|
||||
78: TypePointer Function 77
|
||||
81: TypeVector 8(float) 4
|
||||
82: TypeMatrix 81(fvec4) 3
|
||||
83: TypePointer Function 82
|
||||
88: 66(bool) ConstantTrue
|
||||
93: TypeVector 8(float) 2
|
||||
147: 8(float) Constant 1056964608
|
||||
179: 14(int) Constant 1
|
||||
202: 14(int) Constant 2
|
||||
260(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
|
||||
261: TypeRuntimeArray 260(Ray)
|
||||
262(Rays): TypeStruct 261
|
||||
263: TypePointer Uniform 262(Rays)
|
||||
264: 263(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
45(rayQuery): 44(ptr) Variable Function
|
||||
51(ray): 25(ptr) Variable Function
|
||||
69(candidateType): 68(ptr) Variable Function
|
||||
79(_mat4x3): 78(ptr) Variable Function
|
||||
84(_mat3x4): 83(ptr) Variable Function
|
||||
146(t): 35(ptr) Variable Function
|
||||
160(committedStatus): 68(ptr) Variable Function
|
||||
246(o): 29(ptr) Variable Function
|
||||
249(d): 29(ptr) Variable Function
|
||||
49: 46 Load 48(rtas)
|
||||
52: 29(ptr) AccessChain 51(ray) 19
|
||||
53: 9(fvec3) Load 52
|
||||
54: 35(ptr) AccessChain 51(ray) 23
|
||||
55: 8(float) Load 54
|
||||
56: 29(ptr) AccessChain 51(ray) 31
|
||||
57: 9(fvec3) Load 56
|
||||
58: 35(ptr) AccessChain 51(ray) 37
|
||||
59: 8(float) Load 58
|
||||
RayQueryInitializeKHR 45(rayQuery) 49 20 50 53 55 57 59
|
||||
Branch 60
|
||||
60: Label
|
||||
LoopMerge 62 63 None
|
||||
Branch 64
|
||||
64: Label
|
||||
65: 43 Load 45(rayQuery)
|
||||
67: 66(bool) RayQueryProceedKHR 65
|
||||
BranchConditional 67 61 62
|
||||
61: Label
|
||||
71: 14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 19
|
||||
Store 69(candidateType) 71
|
||||
72: 14(int) Load 69(candidateType)
|
||||
SelectionMerge 75 None
|
||||
Switch 72 75
|
||||
case 0: 73
|
||||
case 1: 74
|
||||
73: Label
|
||||
76: 43 Load 45(rayQuery)
|
||||
RayQueryTerminateKHR 76
|
||||
80: 77 RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
|
||||
Store 79(_mat4x3) 80
|
||||
85: 77 Load 79(_mat4x3)
|
||||
86: 82 Transpose 85
|
||||
Store 84(_mat3x4) 86
|
||||
87: 43 Load 45(rayQuery)
|
||||
RayQueryConfirmIntersectionKHR 87
|
||||
89: 66(bool) RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
|
||||
SelectionMerge 91 None
|
||||
BranchConditional 89 90 91
|
||||
90: Label
|
||||
92: 2 FunctionCall 6(doSomething()
|
||||
Branch 91
|
||||
91: Label
|
||||
94: 93(fvec2) RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
|
||||
95: 8(float) CompositeExtract 94 0
|
||||
96: 66(bool) FOrdEqual 95 27
|
||||
SelectionMerge 98 None
|
||||
BranchConditional 96 97 98
|
||||
97: Label
|
||||
99: 2 FunctionCall 6(doSomething()
|
||||
Branch 98
|
||||
98: Label
|
||||
100: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
|
||||
101: 66(bool) SGreaterThan 100 19
|
||||
SelectionMerge 103 None
|
||||
BranchConditional 101 102 103
|
||||
102: Label
|
||||
104: 2 FunctionCall 6(doSomething()
|
||||
Branch 103
|
||||
103: Label
|
||||
105: 18(int) RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
|
||||
106: 66(bool) SGreaterThan 105 19
|
||||
SelectionMerge 108 None
|
||||
BranchConditional 106 107 108
|
||||
107: Label
|
||||
109: 2 FunctionCall 6(doSomething()
|
||||
Branch 108
|
||||
108: Label
|
||||
110: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
|
||||
111: 8(float) CompositeExtract 110 0
|
||||
112: 66(bool) FOrdGreaterThan 111 27
|
||||
SelectionMerge 114 None
|
||||
BranchConditional 112 113 114
|
||||
113: Label
|
||||
115: 2 FunctionCall 6(doSomething()
|
||||
Branch 114
|
||||
114: Label
|
||||
116: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
|
||||
117: 8(float) CompositeExtract 116 0
|
||||
118: 66(bool) FOrdGreaterThan 117 27
|
||||
SelectionMerge 120 None
|
||||
BranchConditional 118 119 120
|
||||
119: Label
|
||||
121: 2 FunctionCall 6(doSomething()
|
||||
Branch 120
|
||||
120: Label
|
||||
122: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
|
||||
123: 66(bool) SGreaterThan 122 19
|
||||
SelectionMerge 125 None
|
||||
BranchConditional 123 124 125
|
||||
124: Label
|
||||
126: 2 FunctionCall 6(doSomething()
|
||||
Branch 125
|
||||
125: Label
|
||||
127: 8(float) RayQueryGetIntersectionTKHR 45(rayQuery) 23
|
||||
128: 66(bool) FOrdGreaterThan 127 27
|
||||
SelectionMerge 130 None
|
||||
BranchConditional 128 129 130
|
||||
129: Label
|
||||
131: 2 FunctionCall 6(doSomething()
|
||||
Branch 130
|
||||
130: Label
|
||||
132: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 45(rayQuery) 23
|
||||
133: 66(bool) UGreaterThan 132 20
|
||||
SelectionMerge 135 None
|
||||
BranchConditional 133 134 135
|
||||
134: Label
|
||||
136: 2 FunctionCall 6(doSomething()
|
||||
Branch 135
|
||||
135: Label
|
||||
Branch 75
|
||||
74: Label
|
||||
138: 77 RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
|
||||
Store 79(_mat4x3) 138
|
||||
139: 77 Load 79(_mat4x3)
|
||||
140: 82 Transpose 139
|
||||
Store 84(_mat3x4) 140
|
||||
141: 43 Load 45(rayQuery)
|
||||
142: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 141
|
||||
SelectionMerge 144 None
|
||||
BranchConditional 142 143 144
|
||||
143: Label
|
||||
145: 2 FunctionCall 6(doSomething()
|
||||
Branch 144
|
||||
144: Label
|
||||
Store 146(t) 147
|
||||
148: 8(float) Load 146(t)
|
||||
RayQueryGenerateIntersectionKHR 45(rayQuery) 148
|
||||
149: 43 Load 45(rayQuery)
|
||||
RayQueryTerminateKHR 149
|
||||
Branch 75
|
||||
75: Label
|
||||
Branch 63
|
||||
63: Label
|
||||
Branch 60
|
||||
62: Label
|
||||
152: 35(ptr) AccessChain 84(_mat3x4) 19 20
|
||||
153: 8(float) Load 152
|
||||
154: 35(ptr) AccessChain 79(_mat4x3) 19 20
|
||||
155: 8(float) Load 154
|
||||
156: 66(bool) FOrdEqual 153 155
|
||||
SelectionMerge 158 None
|
||||
BranchConditional 156 157 158
|
||||
157: Label
|
||||
159: 2 FunctionCall 6(doSomething()
|
||||
Branch 158
|
||||
158: Label
|
||||
161: 14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 23
|
||||
Store 160(committedStatus) 161
|
||||
162: 14(int) Load 160(committedStatus)
|
||||
SelectionMerge 166 None
|
||||
Switch 162 166
|
||||
case 0: 163
|
||||
case 1: 164
|
||||
case 2: 165
|
||||
163: Label
|
||||
167: 77 RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 19
|
||||
Store 79(_mat4x3) 167
|
||||
168: 77 Load 79(_mat4x3)
|
||||
169: 82 Transpose 168
|
||||
Store 84(_mat3x4) 169
|
||||
Branch 166
|
||||
164: Label
|
||||
171: 77 RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 23
|
||||
Store 79(_mat4x3) 171
|
||||
172: 77 Load 79(_mat4x3)
|
||||
173: 82 Transpose 172
|
||||
Store 84(_mat3x4) 173
|
||||
174: 66(bool) RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
|
||||
SelectionMerge 176 None
|
||||
BranchConditional 174 175 176
|
||||
175: Label
|
||||
177: 2 FunctionCall 6(doSomething()
|
||||
Branch 176
|
||||
176: Label
|
||||
178: 93(fvec2) RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
|
||||
180: 8(float) CompositeExtract 178 1
|
||||
181: 66(bool) FOrdEqual 180 27
|
||||
SelectionMerge 183 None
|
||||
BranchConditional 181 182 183
|
||||
182: Label
|
||||
184: 2 FunctionCall 6(doSomething()
|
||||
Branch 183
|
||||
183: Label
|
||||
Branch 166
|
||||
165: Label
|
||||
186: 18(int) RayQueryGetIntersectionGeometryIndexKHR 45(rayQuery) 23
|
||||
187: 66(bool) SGreaterThan 186 19
|
||||
SelectionMerge 189 None
|
||||
BranchConditional 187 188 189
|
||||
188: Label
|
||||
190: 2 FunctionCall 6(doSomething()
|
||||
Branch 189
|
||||
189: Label
|
||||
191: 18(int) RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
|
||||
192: 66(bool) SGreaterThan 191 19
|
||||
SelectionMerge 194 None
|
||||
BranchConditional 192 193 194
|
||||
193: Label
|
||||
195: 2 FunctionCall 6(doSomething()
|
||||
Branch 194
|
||||
194: Label
|
||||
196: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
|
||||
197: 66(bool) SGreaterThan 196 19
|
||||
SelectionMerge 199 None
|
||||
BranchConditional 197 198 199
|
||||
198: Label
|
||||
200: 2 FunctionCall 6(doSomething()
|
||||
Branch 199
|
||||
199: Label
|
||||
201: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
|
||||
203: 8(float) CompositeExtract 201 2
|
||||
204: 66(bool) FOrdGreaterThan 203 27
|
||||
SelectionMerge 206 None
|
||||
BranchConditional 204 205 206
|
||||
205: Label
|
||||
207: 2 FunctionCall 6(doSomething()
|
||||
Branch 206
|
||||
206: Label
|
||||
208: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
|
||||
209: 8(float) CompositeExtract 208 0
|
||||
210: 66(bool) FOrdGreaterThan 209 27
|
||||
SelectionMerge 212 None
|
||||
BranchConditional 210 211 212
|
||||
211: Label
|
||||
213: 2 FunctionCall 6(doSomething()
|
||||
Branch 212
|
||||
212: Label
|
||||
214: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
|
||||
215: 66(bool) SGreaterThan 214 19
|
||||
SelectionMerge 217 None
|
||||
BranchConditional 215 216 217
|
||||
216: Label
|
||||
218: 2 FunctionCall 6(doSomething()
|
||||
Branch 217
|
||||
217: Label
|
||||
219: 8(float) RayQueryGetIntersectionTKHR 45(rayQuery) 23
|
||||
220: 66(bool) FOrdGreaterThan 219 27
|
||||
SelectionMerge 222 None
|
||||
BranchConditional 220 221 222
|
||||
221: Label
|
||||
223: 2 FunctionCall 6(doSomething()
|
||||
Branch 222
|
||||
222: Label
|
||||
Branch 166
|
||||
166: Label
|
||||
226: 35(ptr) AccessChain 84(_mat3x4) 19 20
|
||||
227: 8(float) Load 226
|
||||
228: 35(ptr) AccessChain 79(_mat4x3) 19 20
|
||||
229: 8(float) Load 228
|
||||
230: 66(bool) FOrdEqual 227 229
|
||||
SelectionMerge 232 None
|
||||
BranchConditional 230 231 232
|
||||
231: Label
|
||||
233: 2 FunctionCall 6(doSomething()
|
||||
Branch 232
|
||||
232: Label
|
||||
234: 43 Load 45(rayQuery)
|
||||
235: 14(int) RayQueryGetRayFlagsKHR 234
|
||||
236: 66(bool) UGreaterThan 235 20
|
||||
SelectionMerge 238 None
|
||||
BranchConditional 236 237 238
|
||||
237: Label
|
||||
239: 2 FunctionCall 6(doSomething()
|
||||
Branch 238
|
||||
238: Label
|
||||
240: 43 Load 45(rayQuery)
|
||||
241: 8(float) RayQueryGetRayTMinKHR 240
|
||||
242: 66(bool) FOrdGreaterThan 241 27
|
||||
SelectionMerge 244 None
|
||||
BranchConditional 242 243 244
|
||||
243: Label
|
||||
245: 2 FunctionCall 6(doSomething()
|
||||
Branch 244
|
||||
244: Label
|
||||
247: 43 Load 45(rayQuery)
|
||||
248: 9(fvec3) RayQueryGetWorldRayOriginKHR 247
|
||||
Store 246(o) 248
|
||||
250: 43 Load 45(rayQuery)
|
||||
251: 9(fvec3) RayQueryGetWorldRayDirectionKHR 250
|
||||
Store 249(d) 251
|
||||
252: 35(ptr) AccessChain 246(o) 20
|
||||
253: 8(float) Load 252
|
||||
254: 35(ptr) AccessChain 249(d) 202
|
||||
255: 8(float) Load 254
|
||||
256: 66(bool) FOrdEqual 253 255
|
||||
SelectionMerge 258 None
|
||||
BranchConditional 256 257 258
|
||||
257: Label
|
||||
259: 2 FunctionCall 6(doSomething()
|
||||
Branch 258
|
||||
258: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
6(doSomething(): 2 Function None 3
|
||||
7: Label
|
||||
22: 21(ptr) AccessChain 17 19
|
||||
Store 22 20
|
||||
24: 21(ptr) AccessChain 17 23
|
||||
Store 24 20
|
||||
Return
|
||||
FunctionEnd
|
||||
12(makeRayDesc(): 10(Ray) Function None 11
|
||||
13: Label
|
||||
26(ray): 25(ptr) Variable Function
|
||||
30: 29(ptr) AccessChain 26(ray) 19
|
||||
Store 30 28
|
||||
34: 29(ptr) AccessChain 26(ray) 31
|
||||
Store 34 33
|
||||
36: 35(ptr) AccessChain 26(ray) 23
|
||||
Store 36 27
|
||||
39: 35(ptr) AccessChain 26(ray) 37
|
||||
Store 39 38
|
||||
40: 10(Ray) Load 26(ray)
|
||||
ReturnValue 40
|
||||
FunctionEnd
|
438
Test/baseResults/rayQuery-allOps.frag.out
Normal file
438
Test/baseResults/rayQuery-allOps.frag.out
Normal file
@ -0,0 +1,438 @@
|
||||
rayQuery-allOps.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80008
|
||||
// Id's are bound by 265
|
||||
|
||||
Capability Shader
|
||||
Capability RayQueryProvisionalKHR
|
||||
Extension "SPV_KHR_ray_query"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 460
|
||||
SourceExtension "GL_EXT_ray_query"
|
||||
SourceExtension "GL_NV_ray_tracing"
|
||||
Name 4 "main"
|
||||
Name 6 "doSomething("
|
||||
Name 10 "Ray"
|
||||
MemberName 10(Ray) 0 "pos"
|
||||
MemberName 10(Ray) 1 "tmin"
|
||||
MemberName 10(Ray) 2 "dir"
|
||||
MemberName 10(Ray) 3 "tmax"
|
||||
Name 12 "makeRayDesc("
|
||||
Name 15 "Log"
|
||||
MemberName 15(Log) 0 "x"
|
||||
MemberName 15(Log) 1 "y"
|
||||
Name 17 ""
|
||||
Name 26 "ray"
|
||||
Name 45 "rayQuery"
|
||||
Name 48 "rtas"
|
||||
Name 51 "ray"
|
||||
Name 69 "candidateType"
|
||||
Name 79 "_mat4x3"
|
||||
Name 84 "_mat3x4"
|
||||
Name 146 "t"
|
||||
Name 160 "committedStatus"
|
||||
Name 246 "o"
|
||||
Name 249 "d"
|
||||
Name 260 "Ray"
|
||||
MemberName 260(Ray) 0 "pos"
|
||||
MemberName 260(Ray) 1 "tmin"
|
||||
MemberName 260(Ray) 2 "dir"
|
||||
MemberName 260(Ray) 3 "tmax"
|
||||
Name 262 "Rays"
|
||||
MemberName 262(Rays) 0 "rays"
|
||||
Name 264 ""
|
||||
MemberDecorate 15(Log) 0 Offset 0
|
||||
MemberDecorate 15(Log) 1 Offset 4
|
||||
Decorate 15(Log) BufferBlock
|
||||
Decorate 17 DescriptorSet 0
|
||||
Decorate 17 Binding 0
|
||||
Decorate 48(rtas) DescriptorSet 0
|
||||
Decorate 48(rtas) Binding 1
|
||||
MemberDecorate 260(Ray) 0 Offset 0
|
||||
MemberDecorate 260(Ray) 1 Offset 12
|
||||
MemberDecorate 260(Ray) 2 Offset 16
|
||||
MemberDecorate 260(Ray) 3 Offset 28
|
||||
Decorate 261 ArrayStride 32
|
||||
MemberDecorate 262(Rays) 0 Offset 0
|
||||
Decorate 262(Rays) BufferBlock
|
||||
Decorate 264 DescriptorSet 0
|
||||
Decorate 264 Binding 2
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
8: TypeFloat 32
|
||||
9: TypeVector 8(float) 3
|
||||
10(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
|
||||
11: TypeFunction 10(Ray)
|
||||
14: TypeInt 32 0
|
||||
15(Log): TypeStruct 14(int) 14(int)
|
||||
16: TypePointer Uniform 15(Log)
|
||||
17: 16(ptr) Variable Uniform
|
||||
18: TypeInt 32 1
|
||||
19: 18(int) Constant 0
|
||||
20: 14(int) Constant 0
|
||||
21: TypePointer Uniform 14(int)
|
||||
23: 18(int) Constant 1
|
||||
25: TypePointer Function 10(Ray)
|
||||
27: 8(float) Constant 0
|
||||
28: 9(fvec3) ConstantComposite 27 27 27
|
||||
29: TypePointer Function 9(fvec3)
|
||||
31: 18(int) Constant 2
|
||||
32: 8(float) Constant 1065353216
|
||||
33: 9(fvec3) ConstantComposite 32 27 27
|
||||
35: TypePointer Function 8(float)
|
||||
37: 18(int) Constant 3
|
||||
38: 8(float) Constant 1176255488
|
||||
43: TypeRayQueryProvisionalKHR
|
||||
44: TypePointer Function 43
|
||||
46: TypeAccelerationStructureKHR
|
||||
47: TypePointer UniformConstant 46
|
||||
48(rtas): 47(ptr) Variable UniformConstant
|
||||
50: 14(int) Constant 255
|
||||
66: TypeBool
|
||||
68: TypePointer Function 14(int)
|
||||
70: 66(bool) ConstantFalse
|
||||
77: TypeMatrix 9(fvec3) 4
|
||||
78: TypePointer Function 77
|
||||
81: TypeVector 8(float) 4
|
||||
82: TypeMatrix 81(fvec4) 3
|
||||
83: TypePointer Function 82
|
||||
88: 66(bool) ConstantTrue
|
||||
93: TypeVector 8(float) 2
|
||||
147: 8(float) Constant 1056964608
|
||||
179: 14(int) Constant 1
|
||||
202: 14(int) Constant 2
|
||||
260(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
|
||||
261: TypeRuntimeArray 260(Ray)
|
||||
262(Rays): TypeStruct 261
|
||||
263: TypePointer Uniform 262(Rays)
|
||||
264: 263(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
45(rayQuery): 44(ptr) Variable Function
|
||||
51(ray): 25(ptr) Variable Function
|
||||
69(candidateType): 68(ptr) Variable Function
|
||||
79(_mat4x3): 78(ptr) Variable Function
|
||||
84(_mat3x4): 83(ptr) Variable Function
|
||||
146(t): 35(ptr) Variable Function
|
||||
160(committedStatus): 68(ptr) Variable Function
|
||||
246(o): 29(ptr) Variable Function
|
||||
249(d): 29(ptr) Variable Function
|
||||
49: 46 Load 48(rtas)
|
||||
52: 29(ptr) AccessChain 51(ray) 19
|
||||
53: 9(fvec3) Load 52
|
||||
54: 35(ptr) AccessChain 51(ray) 23
|
||||
55: 8(float) Load 54
|
||||
56: 29(ptr) AccessChain 51(ray) 31
|
||||
57: 9(fvec3) Load 56
|
||||
58: 35(ptr) AccessChain 51(ray) 37
|
||||
59: 8(float) Load 58
|
||||
RayQueryInitializeKHR 45(rayQuery) 49 20 50 53 55 57 59
|
||||
Branch 60
|
||||
60: Label
|
||||
LoopMerge 62 63 None
|
||||
Branch 64
|
||||
64: Label
|
||||
65: 43 Load 45(rayQuery)
|
||||
67: 66(bool) RayQueryProceedKHR 65
|
||||
BranchConditional 67 61 62
|
||||
61: Label
|
||||
71: 14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 19
|
||||
Store 69(candidateType) 71
|
||||
72: 14(int) Load 69(candidateType)
|
||||
SelectionMerge 75 None
|
||||
Switch 72 75
|
||||
case 0: 73
|
||||
case 1: 74
|
||||
73: Label
|
||||
76: 43 Load 45(rayQuery)
|
||||
RayQueryTerminateKHR 76
|
||||
80: 77 RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
|
||||
Store 79(_mat4x3) 80
|
||||
85: 77 Load 79(_mat4x3)
|
||||
86: 82 Transpose 85
|
||||
Store 84(_mat3x4) 86
|
||||
87: 43 Load 45(rayQuery)
|
||||
RayQueryConfirmIntersectionKHR 87
|
||||
89: 66(bool) RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
|
||||
SelectionMerge 91 None
|
||||
BranchConditional 89 90 91
|
||||
90: Label
|
||||
92: 2 FunctionCall 6(doSomething()
|
||||
Branch 91
|
||||
91: Label
|
||||
94: 93(fvec2) RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
|
||||
95: 8(float) CompositeExtract 94 0
|
||||
96: 66(bool) FOrdEqual 95 27
|
||||
SelectionMerge 98 None
|
||||
BranchConditional 96 97 98
|
||||
97: Label
|
||||
99: 2 FunctionCall 6(doSomething()
|
||||
Branch 98
|
||||
98: Label
|
||||
100: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
|
||||
101: 66(bool) SGreaterThan 100 19
|
||||
SelectionMerge 103 None
|
||||
BranchConditional 101 102 103
|
||||
102: Label
|
||||
104: 2 FunctionCall 6(doSomething()
|
||||
Branch 103
|
||||
103: Label
|
||||
105: 18(int) RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
|
||||
106: 66(bool) SGreaterThan 105 19
|
||||
SelectionMerge 108 None
|
||||
BranchConditional 106 107 108
|
||||
107: Label
|
||||
109: 2 FunctionCall 6(doSomething()
|
||||
Branch 108
|
||||
108: Label
|
||||
110: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
|
||||
111: 8(float) CompositeExtract 110 0
|
||||
112: 66(bool) FOrdGreaterThan 111 27
|
||||
SelectionMerge 114 None
|
||||
BranchConditional 112 113 114
|
||||
113: Label
|
||||
115: 2 FunctionCall 6(doSomething()
|
||||
Branch 114
|
||||
114: Label
|
||||
116: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
|
||||
117: 8(float) CompositeExtract 116 0
|
||||
118: 66(bool) FOrdGreaterThan 117 27
|
||||
SelectionMerge 120 None
|
||||
BranchConditional 118 119 120
|
||||
119: Label
|
||||
121: 2 FunctionCall 6(doSomething()
|
||||
Branch 120
|
||||
120: Label
|
||||
122: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
|
||||
123: 66(bool) SGreaterThan 122 19
|
||||
SelectionMerge 125 None
|
||||
BranchConditional 123 124 125
|
||||
124: Label
|
||||
126: 2 FunctionCall 6(doSomething()
|
||||
Branch 125
|
||||
125: Label
|
||||
127: 8(float) RayQueryGetIntersectionTKHR 45(rayQuery) 23
|
||||
128: 66(bool) FOrdGreaterThan 127 27
|
||||
SelectionMerge 130 None
|
||||
BranchConditional 128 129 130
|
||||
129: Label
|
||||
131: 2 FunctionCall 6(doSomething()
|
||||
Branch 130
|
||||
130: Label
|
||||
132: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 45(rayQuery) 23
|
||||
133: 66(bool) UGreaterThan 132 20
|
||||
SelectionMerge 135 None
|
||||
BranchConditional 133 134 135
|
||||
134: Label
|
||||
136: 2 FunctionCall 6(doSomething()
|
||||
Branch 135
|
||||
135: Label
|
||||
Branch 75
|
||||
74: Label
|
||||
138: 77 RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
|
||||
Store 79(_mat4x3) 138
|
||||
139: 77 Load 79(_mat4x3)
|
||||
140: 82 Transpose 139
|
||||
Store 84(_mat3x4) 140
|
||||
141: 43 Load 45(rayQuery)
|
||||
142: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 141
|
||||
SelectionMerge 144 None
|
||||
BranchConditional 142 143 144
|
||||
143: Label
|
||||
145: 2 FunctionCall 6(doSomething()
|
||||
Branch 144
|
||||
144: Label
|
||||
Store 146(t) 147
|
||||
148: 8(float) Load 146(t)
|
||||
RayQueryGenerateIntersectionKHR 45(rayQuery) 148
|
||||
149: 43 Load 45(rayQuery)
|
||||
RayQueryTerminateKHR 149
|
||||
Branch 75
|
||||
75: Label
|
||||
Branch 63
|
||||
63: Label
|
||||
Branch 60
|
||||
62: Label
|
||||
152: 35(ptr) AccessChain 84(_mat3x4) 19 20
|
||||
153: 8(float) Load 152
|
||||
154: 35(ptr) AccessChain 79(_mat4x3) 19 20
|
||||
155: 8(float) Load 154
|
||||
156: 66(bool) FOrdEqual 153 155
|
||||
SelectionMerge 158 None
|
||||
BranchConditional 156 157 158
|
||||
157: Label
|
||||
159: 2 FunctionCall 6(doSomething()
|
||||
Branch 158
|
||||
158: Label
|
||||
161: 14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 23
|
||||
Store 160(committedStatus) 161
|
||||
162: 14(int) Load 160(committedStatus)
|
||||
SelectionMerge 166 None
|
||||
Switch 162 166
|
||||
case 0: 163
|
||||
case 1: 164
|
||||
case 2: 165
|
||||
163: Label
|
||||
167: 77 RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 19
|
||||
Store 79(_mat4x3) 167
|
||||
168: 77 Load 79(_mat4x3)
|
||||
169: 82 Transpose 168
|
||||
Store 84(_mat3x4) 169
|
||||
Branch 166
|
||||
164: Label
|
||||
171: 77 RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 23
|
||||
Store 79(_mat4x3) 171
|
||||
172: 77 Load 79(_mat4x3)
|
||||
173: 82 Transpose 172
|
||||
Store 84(_mat3x4) 173
|
||||
174: 66(bool) RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
|
||||
SelectionMerge 176 None
|
||||
BranchConditional 174 175 176
|
||||
175: Label
|
||||
177: 2 FunctionCall 6(doSomething()
|
||||
Branch 176
|
||||
176: Label
|
||||
178: 93(fvec2) RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
|
||||
180: 8(float) CompositeExtract 178 1
|
||||
181: 66(bool) FOrdEqual 180 27
|
||||
SelectionMerge 183 None
|
||||
BranchConditional 181 182 183
|
||||
182: Label
|
||||
184: 2 FunctionCall 6(doSomething()
|
||||
Branch 183
|
||||
183: Label
|
||||
Branch 166
|
||||
165: Label
|
||||
186: 18(int) RayQueryGetIntersectionGeometryIndexKHR 45(rayQuery) 23
|
||||
187: 66(bool) SGreaterThan 186 19
|
||||
SelectionMerge 189 None
|
||||
BranchConditional 187 188 189
|
||||
188: Label
|
||||
190: 2 FunctionCall 6(doSomething()
|
||||
Branch 189
|
||||
189: Label
|
||||
191: 18(int) RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
|
||||
192: 66(bool) SGreaterThan 191 19
|
||||
SelectionMerge 194 None
|
||||
BranchConditional 192 193 194
|
||||
193: Label
|
||||
195: 2 FunctionCall 6(doSomething()
|
||||
Branch 194
|
||||
194: Label
|
||||
196: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
|
||||
197: 66(bool) SGreaterThan 196 19
|
||||
SelectionMerge 199 None
|
||||
BranchConditional 197 198 199
|
||||
198: Label
|
||||
200: 2 FunctionCall 6(doSomething()
|
||||
Branch 199
|
||||
199: Label
|
||||
201: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
|
||||
203: 8(float) CompositeExtract 201 2
|
||||
204: 66(bool) FOrdGreaterThan 203 27
|
||||
SelectionMerge 206 None
|
||||
BranchConditional 204 205 206
|
||||
205: Label
|
||||
207: 2 FunctionCall 6(doSomething()
|
||||
Branch 206
|
||||
206: Label
|
||||
208: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
|
||||
209: 8(float) CompositeExtract 208 0
|
||||
210: 66(bool) FOrdGreaterThan 209 27
|
||||
SelectionMerge 212 None
|
||||
BranchConditional 210 211 212
|
||||
211: Label
|
||||
213: 2 FunctionCall 6(doSomething()
|
||||
Branch 212
|
||||
212: Label
|
||||
214: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
|
||||
215: 66(bool) SGreaterThan 214 19
|
||||
SelectionMerge 217 None
|
||||
BranchConditional 215 216 217
|
||||
216: Label
|
||||
218: 2 FunctionCall 6(doSomething()
|
||||
Branch 217
|
||||
217: Label
|
||||
219: 8(float) RayQueryGetIntersectionTKHR 45(rayQuery) 23
|
||||
220: 66(bool) FOrdGreaterThan 219 27
|
||||
SelectionMerge 222 None
|
||||
BranchConditional 220 221 222
|
||||
221: Label
|
||||
223: 2 FunctionCall 6(doSomething()
|
||||
Branch 222
|
||||
222: Label
|
||||
Branch 166
|
||||
166: Label
|
||||
226: 35(ptr) AccessChain 84(_mat3x4) 19 20
|
||||
227: 8(float) Load 226
|
||||
228: 35(ptr) AccessChain 79(_mat4x3) 19 20
|
||||
229: 8(float) Load 228
|
||||
230: 66(bool) FOrdEqual 227 229
|
||||
SelectionMerge 232 None
|
||||
BranchConditional 230 231 232
|
||||
231: Label
|
||||
233: 2 FunctionCall 6(doSomething()
|
||||
Branch 232
|
||||
232: Label
|
||||
234: 43 Load 45(rayQuery)
|
||||
235: 14(int) RayQueryGetRayFlagsKHR 234
|
||||
236: 66(bool) UGreaterThan 235 20
|
||||
SelectionMerge 238 None
|
||||
BranchConditional 236 237 238
|
||||
237: Label
|
||||
239: 2 FunctionCall 6(doSomething()
|
||||
Branch 238
|
||||
238: Label
|
||||
240: 43 Load 45(rayQuery)
|
||||
241: 8(float) RayQueryGetRayTMinKHR 240
|
||||
242: 66(bool) FOrdGreaterThan 241 27
|
||||
SelectionMerge 244 None
|
||||
BranchConditional 242 243 244
|
||||
243: Label
|
||||
245: 2 FunctionCall 6(doSomething()
|
||||
Branch 244
|
||||
244: Label
|
||||
247: 43 Load 45(rayQuery)
|
||||
248: 9(fvec3) RayQueryGetWorldRayOriginKHR 247
|
||||
Store 246(o) 248
|
||||
250: 43 Load 45(rayQuery)
|
||||
251: 9(fvec3) RayQueryGetWorldRayDirectionKHR 250
|
||||
Store 249(d) 251
|
||||
252: 35(ptr) AccessChain 246(o) 20
|
||||
253: 8(float) Load 252
|
||||
254: 35(ptr) AccessChain 249(d) 202
|
||||
255: 8(float) Load 254
|
||||
256: 66(bool) FOrdEqual 253 255
|
||||
SelectionMerge 258 None
|
||||
BranchConditional 256 257 258
|
||||
257: Label
|
||||
259: 2 FunctionCall 6(doSomething()
|
||||
Branch 258
|
||||
258: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
6(doSomething(): 2 Function None 3
|
||||
7: Label
|
||||
22: 21(ptr) AccessChain 17 19
|
||||
Store 22 20
|
||||
24: 21(ptr) AccessChain 17 23
|
||||
Store 24 20
|
||||
Return
|
||||
FunctionEnd
|
||||
12(makeRayDesc(): 10(Ray) Function None 11
|
||||
13: Label
|
||||
26(ray): 25(ptr) Variable Function
|
||||
30: 29(ptr) AccessChain 26(ray) 19
|
||||
Store 30 28
|
||||
34: 29(ptr) AccessChain 26(ray) 31
|
||||
Store 34 33
|
||||
36: 35(ptr) AccessChain 26(ray) 23
|
||||
Store 36 27
|
||||
39: 35(ptr) AccessChain 26(ray) 37
|
||||
Store 39 38
|
||||
40: 10(Ray) Load 26(ray)
|
||||
ReturnValue 40
|
||||
FunctionEnd
|
19
Test/baseResults/rayQuery-committed.Error.rgen.out
Normal file
19
Test/baseResults/rayQuery-committed.Error.rgen.out
Normal file
@ -0,0 +1,19 @@
|
||||
rayQuery-committed.Error.rgen
|
||||
ERROR: 0:48: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:53: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:54: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:58: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:62: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:66: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:70: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:74: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:78: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:82: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:86: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:90: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:97: 'committed' : argument must be compile-time constant
|
||||
ERROR: 0:100: 'committed' : argument must be compile-time constant
|
||||
ERROR: 14 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
212
Test/rayQuery-allOps.Error.rgen
Normal file
212
Test/rayQuery-allOps.Error.rgen
Normal file
@ -0,0 +1,212 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
#extension GL_EXT_ray_query : enable
|
||||
|
||||
struct Ray
|
||||
{
|
||||
vec3 pos;
|
||||
float tmin;
|
||||
vec3 dir;
|
||||
float tmax;
|
||||
};
|
||||
|
||||
layout(std430, set = 0, binding = 0) buffer Log
|
||||
{
|
||||
uint x;
|
||||
uint y;
|
||||
};
|
||||
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
|
||||
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
|
||||
|
||||
void doSomething()
|
||||
{
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
Ray makeRayDesc()
|
||||
{
|
||||
Ray ray;
|
||||
ray.pos= vec3(0,0,0);
|
||||
ray.dir = vec3(1,0,0);
|
||||
ray.tmin = 0.0f;
|
||||
ray.tmax = 9999.0;
|
||||
return ray;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
Ray ray = makeRayDesc();
|
||||
rayQueryEXT rayQuery;
|
||||
rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
|
||||
|
||||
mat4x3 _mat4x3;
|
||||
mat3x4 _mat3x4;
|
||||
|
||||
while (rayQueryProceedEXT(rayQuery) == 1)
|
||||
{
|
||||
int candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false);
|
||||
switch(candidateType)
|
||||
{
|
||||
case gl_RayQueryCandidateIntersectionTriangleEXT:
|
||||
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
_mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
rayQueryConfirmIntersectionEXT(rayQuery);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true) == 1)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true) == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionTEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
|
||||
case gl_RayQueryCandidateIntersectionAABBEXT:
|
||||
{
|
||||
_mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
int t = 1;
|
||||
rayQueryGenerateIntersectionEXT(rayQuery, t);
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(_mat3x4[0][0] == _mat4x3[0][0])
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
int committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true);
|
||||
|
||||
switch(committedStatus)
|
||||
{
|
||||
case gl_RayQueryCommittedIntersectionNoneEXT :
|
||||
_mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
break;
|
||||
|
||||
case gl_RayQueryCommittedIntersectionTriangleEXT :
|
||||
_mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true) == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
|
||||
case gl_RayQueryCommittedIntersectionGeneratedEXT :
|
||||
|
||||
if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionTEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (_mat3x4[0][0] == _mat4x3[0][0])
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetRayFlagsEXT(rayQuery))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetRayTMinEXT(rayQuery))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery);
|
||||
vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery);
|
||||
|
||||
if (o.x == d.z)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
}
|
212
Test/rayQuery-allOps.comp
Normal file
212
Test/rayQuery-allOps.comp
Normal file
@ -0,0 +1,212 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
#extension GL_EXT_ray_query : enable
|
||||
|
||||
struct Ray
|
||||
{
|
||||
vec3 pos;
|
||||
float tmin;
|
||||
vec3 dir;
|
||||
float tmax;
|
||||
};
|
||||
|
||||
layout(std430, set = 0, binding = 0) buffer Log
|
||||
{
|
||||
uint x;
|
||||
uint y;
|
||||
};
|
||||
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
|
||||
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
|
||||
|
||||
void doSomething()
|
||||
{
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
Ray makeRayDesc()
|
||||
{
|
||||
Ray ray;
|
||||
ray.pos= vec3(0,0,0);
|
||||
ray.dir = vec3(1,0,0);
|
||||
ray.tmin = 0.0f;
|
||||
ray.tmax = 9999.0;
|
||||
return ray;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
Ray ray;// = makeRayDesc();
|
||||
rayQueryEXT rayQuery;
|
||||
rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
|
||||
|
||||
mat4x3 _mat4x3;
|
||||
mat3x4 _mat3x4;
|
||||
|
||||
while (rayQueryProceedEXT(rayQuery))
|
||||
{
|
||||
uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false);
|
||||
switch(candidateType)
|
||||
{
|
||||
case gl_RayQueryCandidateIntersectionTriangleEXT:
|
||||
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
_mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
rayQueryConfirmIntersectionEXT(rayQuery);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).x == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
|
||||
case gl_RayQueryCandidateIntersectionAABBEXT:
|
||||
{
|
||||
_mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
float t = 0.5;
|
||||
rayQueryGenerateIntersectionEXT(rayQuery, t);
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(_mat3x4[0][0] == _mat4x3[0][0])
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true);
|
||||
|
||||
switch(committedStatus)
|
||||
{
|
||||
case gl_RayQueryCommittedIntersectionNoneEXT :
|
||||
_mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
break;
|
||||
|
||||
case gl_RayQueryCommittedIntersectionTriangleEXT :
|
||||
_mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).y == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
|
||||
case gl_RayQueryCommittedIntersectionGeneratedEXT :
|
||||
|
||||
if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).z > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (_mat3x4[0][0] == _mat4x3[0][0])
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetRayFlagsEXT(rayQuery) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetRayTMinEXT(rayQuery) > 0.0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery);
|
||||
vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery);
|
||||
|
||||
if (o.x == d.z)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
}
|
212
Test/rayQuery-allOps.frag
Normal file
212
Test/rayQuery-allOps.frag
Normal file
@ -0,0 +1,212 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
#extension GL_EXT_ray_query : enable
|
||||
|
||||
struct Ray
|
||||
{
|
||||
vec3 pos;
|
||||
float tmin;
|
||||
vec3 dir;
|
||||
float tmax;
|
||||
};
|
||||
|
||||
layout(std430, set = 0, binding = 0) buffer Log
|
||||
{
|
||||
uint x;
|
||||
uint y;
|
||||
};
|
||||
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
|
||||
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
|
||||
|
||||
void doSomething()
|
||||
{
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
Ray makeRayDesc()
|
||||
{
|
||||
Ray ray;
|
||||
ray.pos= vec3(0,0,0);
|
||||
ray.dir = vec3(1,0,0);
|
||||
ray.tmin = 0.0f;
|
||||
ray.tmax = 9999.0;
|
||||
return ray;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
Ray ray;// = makeRayDesc();
|
||||
rayQueryEXT rayQuery;
|
||||
rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
|
||||
|
||||
mat4x3 _mat4x3;
|
||||
mat3x4 _mat3x4;
|
||||
|
||||
while (rayQueryProceedEXT(rayQuery))
|
||||
{
|
||||
uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, false);
|
||||
switch(candidateType)
|
||||
{
|
||||
case gl_RayQueryCandidateIntersectionTriangleEXT:
|
||||
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
_mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
rayQueryConfirmIntersectionEXT(rayQuery);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).x == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
|
||||
case gl_RayQueryCandidateIntersectionAABBEXT:
|
||||
{
|
||||
_mat4x3 = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
if (rayQueryGetIntersectionCandidateAABBOpaqueEXT(rayQuery))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
float t = 0.5;
|
||||
rayQueryGenerateIntersectionEXT(rayQuery, t);
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(_mat3x4[0][0] == _mat4x3[0][0])
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, true);
|
||||
|
||||
switch(committedStatus)
|
||||
{
|
||||
case gl_RayQueryCommittedIntersectionNoneEXT :
|
||||
_mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, false);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
break;
|
||||
|
||||
case gl_RayQueryCommittedIntersectionTriangleEXT :
|
||||
_mat4x3 = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, true);
|
||||
_mat3x4 = transpose(_mat4x3);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, true).y == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
|
||||
case gl_RayQueryCommittedIntersectionGeneratedEXT :
|
||||
|
||||
if(rayQueryGetIntersectionGeometryIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionInstanceIdEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, true).z > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if(rayQueryGetIntersectionTEXT(rayQuery, true) > 0.f)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (_mat3x4[0][0] == _mat4x3[0][0])
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetRayFlagsEXT(rayQuery) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
if (rayQueryGetRayTMinEXT(rayQuery) > 0.0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
|
||||
vec3 o = rayQueryGetWorldRayOriginEXT(rayQuery);
|
||||
vec3 d = rayQueryGetWorldRayDirectionEXT(rayQuery);
|
||||
|
||||
if (o.x == d.z)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
}
|
105
Test/rayQuery-committed.Error.rgen
Normal file
105
Test/rayQuery-committed.Error.rgen
Normal file
@ -0,0 +1,105 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
#extension GL_EXT_ray_query : enable
|
||||
|
||||
struct Ray
|
||||
{
|
||||
vec3 pos;
|
||||
float tmin;
|
||||
vec3 dir;
|
||||
float tmax;
|
||||
};
|
||||
|
||||
layout(std430, set = 0, binding = 0) buffer Log
|
||||
{
|
||||
uint x;
|
||||
uint y;
|
||||
};
|
||||
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
|
||||
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
|
||||
|
||||
void doSomething()
|
||||
{
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
uint launchIndex()
|
||||
{
|
||||
return gl_LaunchIDNV.z*gl_LaunchSizeNV.x*gl_LaunchSizeNV.y + gl_LaunchIDNV.y*gl_LaunchSizeNV.x + gl_LaunchIDNV.x;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
uint index = launchIndex();
|
||||
Ray ray = rays[index];
|
||||
rayQueryEXT rayQuery;
|
||||
|
||||
bool committed_true = true;
|
||||
bool committed_false = false;
|
||||
|
||||
rayQueryInitializeEXT(rayQuery, rtas, 1, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
|
||||
while (rayQueryProceedEXT(rayQuery))
|
||||
{
|
||||
mat4x3 mat_o2w;
|
||||
mat4x3 mat_w2o;
|
||||
|
||||
uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, committed_false);
|
||||
if (candidateType == gl_RayQueryCandidateIntersectionTriangleEXT)
|
||||
{
|
||||
rayQueryTerminateEXT(rayQuery);
|
||||
|
||||
mat_o2w = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, committed_false);
|
||||
mat_w2o = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, committed_false);
|
||||
|
||||
rayQueryConfirmIntersectionEXT(rayQuery);
|
||||
|
||||
if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, committed_true))
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, committed_true).x == 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, committed_true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, committed_true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, committed_true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, committed_true).x > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, committed_true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionTEXT(rayQuery, committed_true) > 0.f)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, committed_true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, committed_true);
|
||||
if (committedStatus == gl_RayQueryCommittedIntersectionGeneratedEXT)
|
||||
{
|
||||
if (rayQueryGetIntersectionGeometryIndexEXT(rayQuery, committed_true) > 0)
|
||||
{
|
||||
doSomething();
|
||||
}
|
||||
}
|
||||
}
|
@ -230,12 +230,16 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"spv.while-continue-break.vert",
|
||||
"spv.while-simple.vert",
|
||||
// vulkan-specific tests
|
||||
//"rayQuery.rgen",
|
||||
//"rayQuery-array-2d-dynamic.rgen",
|
||||
//"rayQuery-decls.rgen",
|
||||
//"rayQuery-no-cse.rgen",
|
||||
//"rayQuery-initialize.rgen",
|
||||
//"rayQuery-allOps.rgen",
|
||||
"rayQuery.rgen",
|
||||
"rayQuery-array-2d-dynamic.rgen",
|
||||
"rayQuery-decls.rgen",
|
||||
"rayQuery-no-cse.rgen",
|
||||
"rayQuery-initialize.rgen",
|
||||
"rayQuery-allOps.rgen",
|
||||
"rayQuery-allOps.Error.rgen",
|
||||
"rayQuery-committed.Error.rgen",
|
||||
//"rayQuery-allOps.comp",
|
||||
//"rayQuery-allOps.frag",
|
||||
"spv.set.vert",
|
||||
"spv.double.comp",
|
||||
"spv.100ops.frag",
|
||||
@ -454,7 +458,6 @@ INSTANTIATE_TEST_CASE_P(
|
||||
FileNameAsCustomTestSuffix
|
||||
);
|
||||
|
||||
|
||||
// Cases with deliberately unreachable code.
|
||||
// By default the compiler will aggressively eliminate
|
||||
// unreachable merges and continues.
|
||||
|
Loading…
Reference in New Issue
Block a user