5 struct patch_constant_data
7 float edges[2] : SV_TessFactor;
10 patch_constant_data patch_constant()
12 return (patch_constant_data)0;
16 [outputcontrolpoints(3)]
17 [partitioning("integer")]
18 [outputtopology("point")]
19 [patchconstantfunc("patch_constant")]
20 float4 main() : POSITION
25 %% Test missing attributes.
28 struct patch_constant_data
30 float edges[2] : SV_TessFactor;
33 patch_constant_data patch_constant()
35 return (patch_constant_data)0;
39 [outputcontrolpoints(3)]
40 [partitioning("integer")]
41 [outputtopology("point")]
42 [patchconstantfunc("patch_constant")]
43 float4 main() : POSITION
48 % outputcontrolpoints defaults to 0 for SM >= 6.
50 struct patch_constant_data
52 float edges[2] : SV_TessFactor;
55 patch_constant_data patch_constant()
57 return (patch_constant_data)0;
61 //[outputcontrolpoints(3)]
62 [partitioning("integer")]
63 [outputtopology("point")]
64 [patchconstantfunc("patch_constant")]
65 float4 main() : POSITION
71 struct patch_constant_data
73 float edges[2] : SV_TessFactor;
76 patch_constant_data patch_constant()
78 return (patch_constant_data)0;
82 [outputcontrolpoints(3)]
83 //[partitioning("integer")]
84 [outputtopology("point")]
85 [patchconstantfunc("patch_constant")]
86 float4 main() : POSITION
92 struct patch_constant_data
94 float edges[2] : SV_TessFactor;
97 patch_constant_data patch_constant()
99 return (patch_constant_data)0;
103 [outputcontrolpoints(3)]
104 [partitioning("integer")]
105 //[outputtopology("point")]
106 [patchconstantfunc("patch_constant")]
107 float4 main() : POSITION
113 struct patch_constant_data
115 float edges[2] : SV_TessFactor;
118 patch_constant_data patch_constant()
120 return (patch_constant_data)0;
124 [outputcontrolpoints(3)]
125 [partitioning("integer")]
126 [outputtopology("point")]
127 //[patchconstantfunc("patch_constant")]
128 float4 main() : POSITION
133 %% Test valid combinations of the domain and outputtopology attributes.
136 struct patch_constant_data
138 float edges[2] : SV_TessFactor;
141 patch_constant_data patch_constant()
143 return (patch_constant_data)0;
147 [outputcontrolpoints(3)]
148 [partitioning("integer")]
149 [outputtopology("point")]
150 [patchconstantfunc("patch_constant")]
151 float4 main() : POSITION
157 struct patch_constant_data
159 float edges[2] : SV_TessFactor;
162 patch_constant_data patch_constant()
164 return (patch_constant_data)0;
168 [outputcontrolpoints(3)]
169 [partitioning("integer")]
170 [outputtopology("line")]
171 [patchconstantfunc("patch_constant")]
172 float4 main() : POSITION
178 struct patch_constant_data
180 float edges[2] : SV_TessFactor;
183 patch_constant_data patch_constant()
185 return (patch_constant_data)0;
189 [outputcontrolpoints(3)]
190 [partitioning("integer")]
191 [outputtopology("triangle_cw")]
192 [patchconstantfunc("patch_constant")]
193 float4 main() : POSITION
199 struct patch_constant_data
201 float edges[2] : SV_TessFactor;
204 patch_constant_data patch_constant()
206 return (patch_constant_data)0;
210 [outputcontrolpoints(3)]
211 [partitioning("integer")]
212 [outputtopology("triangle_ccw")]
213 [patchconstantfunc("patch_constant")]
214 float4 main() : POSITION
220 struct patch_constant_data
222 float edges[3] : SV_TessFactor;
223 float inside : SV_InsideTessFactor;
226 patch_constant_data patch_constant()
228 return (patch_constant_data)0;
232 [outputcontrolpoints(3)]
233 [partitioning("integer")]
234 [outputtopology("point")]
235 [patchconstantfunc("patch_constant")]
236 float4 main() : POSITION
242 struct patch_constant_data
244 float edges[3] : SV_TessFactor;
245 float inside : SV_InsideTessFactor;
248 patch_constant_data patch_constant()
250 return (patch_constant_data)0;
254 [outputcontrolpoints(3)]
255 [partitioning("integer")]
256 [outputtopology("line")]
257 [patchconstantfunc("patch_constant")]
258 float4 main() : POSITION
264 struct patch_constant_data
266 float edges[3] : SV_TessFactor;
267 float inside : SV_InsideTessFactor;
270 patch_constant_data patch_constant()
272 return (patch_constant_data)0;
276 [outputcontrolpoints(3)]
277 [partitioning("integer")]
278 [outputtopology("triangle_cw")]
279 [patchconstantfunc("patch_constant")]
280 float4 main() : POSITION
286 struct patch_constant_data
288 float edges[3] : SV_TessFactor;
289 float inside : SV_InsideTessFactor;
292 patch_constant_data patch_constant()
294 return (patch_constant_data)0;
298 [outputcontrolpoints(3)]
299 [partitioning("integer")]
300 [outputtopology("triangle_ccw")]
301 [patchconstantfunc("patch_constant")]
302 float4 main() : POSITION
308 struct patch_constant_data
310 float edges[4] : SV_TessFactor;
311 float inside[2] : SV_InsideTessFactor;
314 patch_constant_data patch_constant()
316 return (patch_constant_data)0;
320 [outputcontrolpoints(3)]
321 [partitioning("integer")]
322 [outputtopology("point")]
323 [patchconstantfunc("patch_constant")]
324 float4 main() : POSITION
330 struct patch_constant_data
332 float edges[4] : SV_TessFactor;
333 float inside[2] : SV_InsideTessFactor;
336 patch_constant_data patch_constant()
338 return (patch_constant_data)0;
342 [outputcontrolpoints(3)]
343 [partitioning("integer")]
344 [outputtopology("line")]
345 [patchconstantfunc("patch_constant")]
346 float4 main() : POSITION
352 struct patch_constant_data
354 float edges[4] : SV_TessFactor;
355 float inside[2] : SV_InsideTessFactor;
358 patch_constant_data patch_constant()
360 return (patch_constant_data)0;
364 [outputcontrolpoints(3)]
365 [partitioning("integer")]
366 [outputtopology("triangle_cw")]
367 [patchconstantfunc("patch_constant")]
368 float4 main() : POSITION
374 struct patch_constant_data
376 float edges[4] : SV_TessFactor;
377 float inside[2] : SV_InsideTessFactor;
380 patch_constant_data patch_constant()
382 return (patch_constant_data)0;
386 [outputcontrolpoints(3)]
387 [partitioning("integer")]
388 [outputtopology("triangle_ccw")]
389 [patchconstantfunc("patch_constant")]
390 float4 main() : POSITION
396 %% Test the valid range for outputcontrolpoints ([0, 32]).
398 [hull shader fail(sm>=6)]
399 struct patch_constant_data
401 float edges[2] : SV_TessFactor;
404 patch_constant_data patch_constant()
406 return (patch_constant_data)0;
410 [outputcontrolpoints(0)]
411 [partitioning("integer")]
412 [outputtopology("point")]
413 [patchconstantfunc("patch_constant")]
414 float4 main() : POSITION
420 struct patch_constant_data
422 float edges[2] : SV_TessFactor;
425 patch_constant_data patch_constant()
427 return (patch_constant_data)0;
431 [outputcontrolpoints(32)]
432 [partitioning("integer")]
433 [outputtopology("point")]
434 [patchconstantfunc("patch_constant")]
435 float4 main() : POSITION
441 struct patch_constant_data
443 float edges[2] : SV_TessFactor;
446 patch_constant_data patch_constant()
448 return (patch_constant_data)0;
452 [outputcontrolpoints(33)]
453 [partitioning("integer")]
454 [outputtopology("point")]
455 [patchconstantfunc("patch_constant")]
456 float4 main() : POSITION
462 % patchconstantfunc can't point to the main function.
463 [hull shader notimpl(sm<6) fail(sm>=6)]
464 struct patch_constant_data
466 float edges[2] : SV_TessFactor;
469 patch_constant_data patch_constant()
471 return (patch_constant_data)0;
475 [outputcontrolpoints(3)]
476 [partitioning("integer")]
477 [outputtopology("point")]
478 [patchconstantfunc("main")]
479 float4 main() : POSITION