1 //
2 // Copyright 2014 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6
7 #include "test_utils/angle_test_configs.h"
8
9 #include "common/platform.h"
10 #include "util/util_gl.h"
11
12 namespace angle
13 {
14
PlatformParameters()15 PlatformParameters::PlatformParameters() : PlatformParameters(2, 0, GLESDriverType::AngleEGL) {}
16
PlatformParameters(EGLint majorVersion,EGLint minorVersion,const EGLPlatformParameters & eglPlatformParameters)17 PlatformParameters::PlatformParameters(EGLint majorVersion,
18 EGLint minorVersion,
19 const EGLPlatformParameters &eglPlatformParameters)
20 : driver(GLESDriverType::AngleEGL),
21 noFixture(false),
22 eglParameters(eglPlatformParameters),
23 majorVersion(majorVersion),
24 minorVersion(minorVersion)
25 {
26 initDefaultParameters();
27 }
28
PlatformParameters(EGLint majorVersion,EGLint minorVersion,GLESDriverType driver)29 PlatformParameters::PlatformParameters(EGLint majorVersion,
30 EGLint minorVersion,
31 GLESDriverType driver)
32 : driver(driver), noFixture(false), majorVersion(majorVersion), minorVersion(minorVersion)
33 {
34 initDefaultParameters();
35 }
36
getRenderer() const37 EGLint PlatformParameters::getRenderer() const
38 {
39 return eglParameters.renderer;
40 }
41
getDeviceType() const42 EGLint PlatformParameters::getDeviceType() const
43 {
44 return eglParameters.deviceType;
45 }
46
isSwiftshader() const47 bool PlatformParameters::isSwiftshader() const
48 {
49 return eglParameters.deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE;
50 }
51
initDefaultParameters()52 void PlatformParameters::initDefaultParameters()
53 {
54 // Default debug layers to enabled in tests.
55 eglParameters.debugLayersEnabled = EGL_TRUE;
56 }
57
operator <(const PlatformParameters & a,const PlatformParameters & b)58 bool operator<(const PlatformParameters &a, const PlatformParameters &b)
59 {
60 return a.tie() < b.tie();
61 }
62
operator ==(const PlatformParameters & a,const PlatformParameters & b)63 bool operator==(const PlatformParameters &a, const PlatformParameters &b)
64 {
65 return a.tie() == b.tie();
66 }
67
operator !=(const PlatformParameters & a,const PlatformParameters & b)68 bool operator!=(const PlatformParameters &a, const PlatformParameters &b)
69 {
70 return a.tie() != b.tie();
71 }
72
GetRendererName(EGLint renderer)73 const char *GetRendererName(EGLint renderer)
74 {
75 switch (renderer)
76 {
77 case EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE:
78 return "Default";
79 case EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE:
80 return "D3D9";
81 case EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE:
82 return "D3D11";
83 case EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE:
84 return "Metal";
85 case EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE:
86 return "Null";
87 case EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE:
88 return "OpenGL";
89 case EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE:
90 return "OpenGLES";
91 case EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE:
92 return "Vulkan";
93 default:
94 return "Undefined";
95 }
96 }
97
operator <<(std::ostream & stream,const PlatformParameters & pp)98 std::ostream &operator<<(std::ostream &stream, const PlatformParameters &pp)
99 {
100 stream << "ES" << pp.majorVersion << "_";
101 if (pp.minorVersion != 0)
102 {
103 stream << pp.minorVersion << "_";
104 }
105
106 switch (pp.driver)
107 {
108 case GLESDriverType::AngleEGL:
109 stream << GetRendererName(pp.eglParameters.renderer);
110 break;
111 case GLESDriverType::SystemWGL:
112 stream << "WGL";
113 break;
114 case GLESDriverType::SystemEGL:
115 stream << "EGL";
116 break;
117 default:
118 stream << "Error";
119 break;
120 }
121
122 if (pp.eglParameters.majorVersion != EGL_DONT_CARE)
123 {
124 stream << "_" << pp.eglParameters.majorVersion;
125 }
126
127 if (pp.eglParameters.minorVersion != EGL_DONT_CARE)
128 {
129 stream << "_" << pp.eglParameters.minorVersion;
130 }
131
132 switch (pp.eglParameters.deviceType)
133 {
134 case EGL_DONT_CARE:
135 case EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE:
136 // default
137 break;
138
139 case EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE:
140 stream << "_Null";
141 break;
142
143 case EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE:
144 stream << "_Reference";
145 break;
146
147 case EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE:
148 stream << "_Warp";
149 break;
150
151 case EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE:
152 stream << "_SwiftShader";
153 break;
154
155 default:
156 stream << "_Error";
157 break;
158 }
159
160 switch (pp.eglParameters.presentPath)
161 {
162 case EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE:
163 stream << "_PresentPathCopy";
164 break;
165
166 case EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE:
167 stream << "_PresentPathFast";
168 break;
169
170 case EGL_DONT_CARE:
171 // default
172 break;
173
174 default:
175 stream << "_Error";
176 break;
177 }
178
179 if (pp.noFixture)
180 {
181 stream << "_NoFixture";
182 }
183
184 if (pp.eglParameters.contextVirtualization == EGL_FALSE)
185 {
186 stream << "_NoVirtual";
187 }
188
189 if (pp.eglParameters.transformFeedbackFeature == EGL_FALSE)
190 {
191 stream << "_NoTransformFeedback";
192 }
193 else if (pp.eglParameters.transformFeedbackFeature == EGL_TRUE)
194 {
195 stream << "_TransformFeedback";
196 }
197
198 if (pp.eglParameters.allocateNonZeroMemoryFeature == EGL_FALSE)
199 {
200 stream << "_NoAllocateNonZeroMemory";
201 }
202 else if (pp.eglParameters.allocateNonZeroMemoryFeature == EGL_TRUE)
203 {
204 stream << "_AllocateNonZeroMemory";
205 }
206
207 if (pp.eglParameters.emulateCopyTexImage2DFromRenderbuffers == EGL_TRUE)
208 {
209 stream << "_EmulateCopyTexImage2DFromRenderbuffers";
210 }
211
212 if (pp.eglParameters.shaderStencilOutputFeature == EGL_FALSE)
213 {
214 stream << "_NoStencilOutput";
215 }
216
217 if (pp.eglParameters.genMultipleMipsPerPassFeature == EGL_FALSE)
218 {
219 stream << "_NoGenMultipleMipsPerPass";
220 }
221
222 switch (pp.eglParameters.emulatedPrerotation)
223 {
224 case 90:
225 stream << "_PreRotate90";
226 break;
227 case 180:
228 stream << "_PreRotate180";
229 break;
230 case 270:
231 stream << "_PreRotate270";
232 break;
233 default:
234 break;
235 }
236
237 if (pp.eglParameters.asyncCommandQueueFeatureVulkan == EGL_TRUE)
238 {
239 stream << "_AsyncQueue";
240 }
241
242 if (pp.eglParameters.hasExplicitMemBarrierFeatureMtl == EGL_FALSE)
243 {
244 stream << "_NoMetalExplicitMemoryBarrier";
245 }
246
247 if (pp.eglParameters.hasCheapRenderPassFeatureMtl == EGL_FALSE)
248 {
249 stream << "_NoMetalCheapRenderPass";
250 }
251
252 if (pp.eglParameters.forceBufferGPUStorageFeatureMtl == EGL_TRUE)
253 {
254 stream << "_ForceMetalBufferGPUStorage";
255 }
256
257 return stream;
258 }
259
260 // EGL platforms
261 namespace egl_platform
262 {
263
DEFAULT()264 EGLPlatformParameters DEFAULT()
265 {
266 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE);
267 }
268
DEFAULT_NULL()269 EGLPlatformParameters DEFAULT_NULL()
270 {
271 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE, EGL_DONT_CARE,
272 EGL_DONT_CARE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
273 }
274
D3D9()275 EGLPlatformParameters D3D9()
276 {
277 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
278 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
279 }
280
D3D9_NULL()281 EGLPlatformParameters D3D9_NULL()
282 {
283 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
284 EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
285 }
286
D3D9_REFERENCE()287 EGLPlatformParameters D3D9_REFERENCE()
288 {
289 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
290 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
291 }
292
D3D11()293 EGLPlatformParameters D3D11()
294 {
295 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
296 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
297 }
298
D3D11_PRESENT_PATH_FAST()299 EGLPlatformParameters D3D11_PRESENT_PATH_FAST()
300 {
301 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
302 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE,
303 EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE);
304 }
305
D3D11_FL11_1()306 EGLPlatformParameters D3D11_FL11_1()
307 {
308 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 11, 1,
309 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
310 }
311
D3D11_FL11_0()312 EGLPlatformParameters D3D11_FL11_0()
313 {
314 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 11, 0,
315 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
316 }
317
D3D11_FL10_1()318 EGLPlatformParameters D3D11_FL10_1()
319 {
320 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 10, 1,
321 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
322 }
323
D3D11_FL10_0()324 EGLPlatformParameters D3D11_FL10_0()
325 {
326 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 10, 0,
327 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
328 }
329
D3D11_FL9_3()330 EGLPlatformParameters D3D11_FL9_3()
331 {
332 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 9, 3,
333 EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
334 }
335
D3D11_NULL()336 EGLPlatformParameters D3D11_NULL()
337 {
338 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
339 EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
340 }
341
D3D11_WARP()342 EGLPlatformParameters D3D11_WARP()
343 {
344 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
345 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE);
346 }
347
D3D11_FL11_1_WARP()348 EGLPlatformParameters D3D11_FL11_1_WARP()
349 {
350 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 11, 1,
351 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE);
352 }
353
D3D11_FL11_0_WARP()354 EGLPlatformParameters D3D11_FL11_0_WARP()
355 {
356 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 11, 0,
357 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE);
358 }
359
D3D11_FL10_1_WARP()360 EGLPlatformParameters D3D11_FL10_1_WARP()
361 {
362 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 10, 1,
363 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE);
364 }
365
D3D11_FL10_0_WARP()366 EGLPlatformParameters D3D11_FL10_0_WARP()
367 {
368 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 10, 0,
369 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE);
370 }
371
D3D11_FL9_3_WARP()372 EGLPlatformParameters D3D11_FL9_3_WARP()
373 {
374 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 9, 3,
375 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE);
376 }
377
D3D11_REFERENCE()378 EGLPlatformParameters D3D11_REFERENCE()
379 {
380 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
381 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
382 }
383
D3D11_FL11_1_REFERENCE()384 EGLPlatformParameters D3D11_FL11_1_REFERENCE()
385 {
386 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 11, 1,
387 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
388 }
389
D3D11_FL11_0_REFERENCE()390 EGLPlatformParameters D3D11_FL11_0_REFERENCE()
391 {
392 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 11, 0,
393 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
394 }
395
D3D11_FL10_1_REFERENCE()396 EGLPlatformParameters D3D11_FL10_1_REFERENCE()
397 {
398 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 10, 1,
399 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
400 }
401
D3D11_FL10_0_REFERENCE()402 EGLPlatformParameters D3D11_FL10_0_REFERENCE()
403 {
404 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 10, 0,
405 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
406 }
407
D3D11_FL9_3_REFERENCE()408 EGLPlatformParameters D3D11_FL9_3_REFERENCE()
409 {
410 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, 9, 3,
411 EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE);
412 }
413
OPENGL()414 EGLPlatformParameters OPENGL()
415 {
416 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE);
417 }
418
OPENGL(EGLint major,EGLint minor)419 EGLPlatformParameters OPENGL(EGLint major, EGLint minor)
420 {
421 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE, major, minor, EGL_DONT_CARE);
422 }
423
OPENGL_NULL()424 EGLPlatformParameters OPENGL_NULL()
425 {
426 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
427 EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
428 }
429
OPENGLES()430 EGLPlatformParameters OPENGLES()
431 {
432 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE);
433 }
434
OPENGLES(EGLint major,EGLint minor)435 EGLPlatformParameters OPENGLES(EGLint major, EGLint minor)
436 {
437 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, major, minor,
438 EGL_DONT_CARE);
439 }
440
OPENGLES_NULL()441 EGLPlatformParameters OPENGLES_NULL()
442 {
443 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, EGL_DONT_CARE,
444 EGL_DONT_CARE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
445 }
446
OPENGL_OR_GLES()447 EGLPlatformParameters OPENGL_OR_GLES()
448 {
449 #if defined(ANGLE_PLATFORM_ANDROID)
450 return OPENGLES();
451 #else
452 return OPENGL();
453 #endif
454 }
455
OPENGL_OR_GLES(EGLint major,EGLint minor)456 EGLPlatformParameters OPENGL_OR_GLES(EGLint major, EGLint minor)
457 {
458 #if defined(ANGLE_PLATFORM_ANDROID)
459 return OPENGLES(major, minor);
460 #else
461 return OPENGL(major, minor);
462 #endif
463 }
464
OPENGL_OR_GLES_NULL()465 EGLPlatformParameters OPENGL_OR_GLES_NULL()
466 {
467 #if defined(ANGLE_PLATFORM_ANDROID)
468 return OPENGLES_NULL();
469 #else
470 return OPENGL_NULL();
471 #endif
472 }
473
VULKAN()474 EGLPlatformParameters VULKAN()
475 {
476 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE);
477 }
478
VULKAN_NULL()479 EGLPlatformParameters VULKAN_NULL()
480 {
481 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
482 EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
483 }
484
VULKAN_SWIFTSHADER()485 EGLPlatformParameters VULKAN_SWIFTSHADER()
486 {
487 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
488 EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE);
489 }
METAL()490 EGLPlatformParameters METAL()
491 {
492 return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE);
493 }
494
495 } // namespace egl_platform
496
497 // ANGLE tests platforms
ES1_D3D9()498 PlatformParameters ES1_D3D9()
499 {
500 return PlatformParameters(1, 0, egl_platform::D3D9());
501 }
502
ES2_D3D9()503 PlatformParameters ES2_D3D9()
504 {
505 return PlatformParameters(2, 0, egl_platform::D3D9());
506 }
507
ES1_D3D11()508 PlatformParameters ES1_D3D11()
509 {
510 return PlatformParameters(1, 0, egl_platform::D3D11());
511 }
512
ES2_D3D11()513 PlatformParameters ES2_D3D11()
514 {
515 return PlatformParameters(2, 0, egl_platform::D3D11());
516 }
517
ES2_D3D11_PRESENT_PATH_FAST()518 PlatformParameters ES2_D3D11_PRESENT_PATH_FAST()
519 {
520 return PlatformParameters(2, 0, egl_platform::D3D11_PRESENT_PATH_FAST());
521 }
522
ES2_D3D11_FL11_0()523 PlatformParameters ES2_D3D11_FL11_0()
524 {
525 return PlatformParameters(2, 0, egl_platform::D3D11_FL11_0());
526 }
527
ES2_D3D11_FL10_1()528 PlatformParameters ES2_D3D11_FL10_1()
529 {
530 return PlatformParameters(2, 0, egl_platform::D3D11_FL10_1());
531 }
532
ES2_D3D11_FL10_0()533 PlatformParameters ES2_D3D11_FL10_0()
534 {
535 return PlatformParameters(2, 0, egl_platform::D3D11_FL10_0());
536 }
537
ES2_D3D11_FL9_3()538 PlatformParameters ES2_D3D11_FL9_3()
539 {
540 return PlatformParameters(2, 0, egl_platform::D3D11_FL9_3());
541 }
542
ES2_D3D11_WARP()543 PlatformParameters ES2_D3D11_WARP()
544 {
545 return PlatformParameters(2, 0, egl_platform::D3D11_WARP());
546 }
547
ES2_D3D11_FL11_0_WARP()548 PlatformParameters ES2_D3D11_FL11_0_WARP()
549 {
550 return PlatformParameters(2, 0, egl_platform::D3D11_FL11_0_WARP());
551 }
552
ES2_D3D11_FL10_1_WARP()553 PlatformParameters ES2_D3D11_FL10_1_WARP()
554 {
555 return PlatformParameters(2, 0, egl_platform::D3D11_FL10_1_WARP());
556 }
557
ES2_D3D11_FL10_0_WARP()558 PlatformParameters ES2_D3D11_FL10_0_WARP()
559 {
560 return PlatformParameters(2, 0, egl_platform::D3D11_FL10_0_WARP());
561 }
562
ES2_D3D11_FL9_3_WARP()563 PlatformParameters ES2_D3D11_FL9_3_WARP()
564 {
565 return PlatformParameters(2, 0, egl_platform::D3D11_FL9_3_WARP());
566 }
567
ES2_D3D11_REFERENCE()568 PlatformParameters ES2_D3D11_REFERENCE()
569 {
570 return PlatformParameters(2, 0, egl_platform::D3D11_REFERENCE());
571 }
572
ES2_D3D11_FL11_0_REFERENCE()573 PlatformParameters ES2_D3D11_FL11_0_REFERENCE()
574 {
575 return PlatformParameters(2, 0, egl_platform::D3D11_FL11_0_REFERENCE());
576 }
577
ES2_D3D11_FL10_1_REFERENCE()578 PlatformParameters ES2_D3D11_FL10_1_REFERENCE()
579 {
580 return PlatformParameters(2, 0, egl_platform::D3D11_FL10_1_REFERENCE());
581 }
582
ES2_D3D11_FL10_0_REFERENCE()583 PlatformParameters ES2_D3D11_FL10_0_REFERENCE()
584 {
585 return PlatformParameters(2, 0, egl_platform::D3D11_FL10_0_REFERENCE());
586 }
587
ES2_D3D11_FL9_3_REFERENCE()588 PlatformParameters ES2_D3D11_FL9_3_REFERENCE()
589 {
590 return PlatformParameters(2, 0, egl_platform::D3D11_FL9_3_REFERENCE());
591 }
592
ES3_D3D11()593 PlatformParameters ES3_D3D11()
594 {
595 return PlatformParameters(3, 0, egl_platform::D3D11());
596 }
597
ES3_D3D11_FL11_1()598 PlatformParameters ES3_D3D11_FL11_1()
599 {
600 return PlatformParameters(3, 0, egl_platform::D3D11_FL11_1());
601 }
602
ES3_D3D11_FL11_0()603 PlatformParameters ES3_D3D11_FL11_0()
604 {
605 return PlatformParameters(3, 0, egl_platform::D3D11_FL11_0());
606 }
607
ES3_D3D11_FL10_1()608 PlatformParameters ES3_D3D11_FL10_1()
609 {
610 return PlatformParameters(3, 0, egl_platform::D3D11_FL10_1());
611 }
612
ES31_D3D11()613 PlatformParameters ES31_D3D11()
614 {
615 return PlatformParameters(3, 1, egl_platform::D3D11());
616 }
617
ES31_D3D11_FL11_1()618 PlatformParameters ES31_D3D11_FL11_1()
619 {
620 return PlatformParameters(3, 1, egl_platform::D3D11_FL11_1());
621 }
622
ES31_D3D11_FL11_0()623 PlatformParameters ES31_D3D11_FL11_0()
624 {
625 return PlatformParameters(3, 1, egl_platform::D3D11_FL11_0());
626 }
627
ES3_D3D11_WARP()628 PlatformParameters ES3_D3D11_WARP()
629 {
630 return PlatformParameters(3, 0, egl_platform::D3D11_WARP());
631 }
632
ES3_D3D11_FL11_1_WARP()633 PlatformParameters ES3_D3D11_FL11_1_WARP()
634 {
635 return PlatformParameters(3, 0, egl_platform::D3D11_FL11_1_WARP());
636 }
637
ES3_D3D11_FL11_0_WARP()638 PlatformParameters ES3_D3D11_FL11_0_WARP()
639 {
640 return PlatformParameters(3, 0, egl_platform::D3D11_FL11_0_WARP());
641 }
642
ES3_D3D11_FL10_1_WARP()643 PlatformParameters ES3_D3D11_FL10_1_WARP()
644 {
645 return PlatformParameters(3, 0, egl_platform::D3D11_FL10_1_WARP());
646 }
647
ES1_OPENGLES()648 PlatformParameters ES1_OPENGLES()
649 {
650 return PlatformParameters(1, 0, egl_platform::OPENGLES());
651 }
652
ES2_OPENGLES()653 PlatformParameters ES2_OPENGLES()
654 {
655 return PlatformParameters(2, 0, egl_platform::OPENGLES());
656 }
657
ES2_OPENGLES(EGLint major,EGLint minor)658 PlatformParameters ES2_OPENGLES(EGLint major, EGLint minor)
659 {
660 return PlatformParameters(2, 0, egl_platform::OPENGLES(major, minor));
661 }
662
ES3_OPENGLES()663 PlatformParameters ES3_OPENGLES()
664 {
665 return PlatformParameters(3, 0, egl_platform::OPENGLES());
666 }
667
ES3_OPENGLES(EGLint major,EGLint minor)668 PlatformParameters ES3_OPENGLES(EGLint major, EGLint minor)
669 {
670 return PlatformParameters(3, 0, egl_platform::OPENGLES(major, minor));
671 }
672
ES31_OPENGLES()673 PlatformParameters ES31_OPENGLES()
674 {
675 return PlatformParameters(3, 1, egl_platform::OPENGLES());
676 }
677
ES31_OPENGLES(EGLint major,EGLint minor)678 PlatformParameters ES31_OPENGLES(EGLint major, EGLint minor)
679 {
680 return PlatformParameters(3, 1, egl_platform::OPENGLES(major, minor));
681 }
682
ES1_OPENGL()683 PlatformParameters ES1_OPENGL()
684 {
685 return PlatformParameters(1, 0, egl_platform::OPENGL());
686 }
687
ES2_OPENGL()688 PlatformParameters ES2_OPENGL()
689 {
690 return PlatformParameters(2, 0, egl_platform::OPENGL());
691 }
692
ES2_OPENGL(EGLint major,EGLint minor)693 PlatformParameters ES2_OPENGL(EGLint major, EGLint minor)
694 {
695 return PlatformParameters(2, 0, egl_platform::OPENGL(major, minor));
696 }
697
ES3_OPENGL()698 PlatformParameters ES3_OPENGL()
699 {
700 return PlatformParameters(3, 0, egl_platform::OPENGL());
701 }
702
ES3_OPENGL(EGLint major,EGLint minor)703 PlatformParameters ES3_OPENGL(EGLint major, EGLint minor)
704 {
705 return PlatformParameters(3, 0, egl_platform::OPENGL(major, minor));
706 }
707
ES31_OPENGL()708 PlatformParameters ES31_OPENGL()
709 {
710 return PlatformParameters(3, 1, egl_platform::OPENGL());
711 }
712
ES31_OPENGL(EGLint major,EGLint minor)713 PlatformParameters ES31_OPENGL(EGLint major, EGLint minor)
714 {
715 return PlatformParameters(3, 1, egl_platform::OPENGL(major, minor));
716 }
717
ES1_NULL()718 PlatformParameters ES1_NULL()
719 {
720 return PlatformParameters(1, 0, EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE));
721 }
722
ES2_NULL()723 PlatformParameters ES2_NULL()
724 {
725 return PlatformParameters(2, 0, EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE));
726 }
727
ES3_NULL()728 PlatformParameters ES3_NULL()
729 {
730 return PlatformParameters(3, 0, EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE));
731 }
732
ES31_NULL()733 PlatformParameters ES31_NULL()
734 {
735 return PlatformParameters(3, 1, EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE));
736 }
737
ES1_VULKAN()738 PlatformParameters ES1_VULKAN()
739 {
740 return PlatformParameters(1, 0, egl_platform::VULKAN());
741 }
742
ES1_VULKAN_NULL()743 PlatformParameters ES1_VULKAN_NULL()
744 {
745 return PlatformParameters(1, 0, egl_platform::VULKAN_NULL());
746 }
747
ES1_VULKAN_SWIFTSHADER()748 PlatformParameters ES1_VULKAN_SWIFTSHADER()
749 {
750 return PlatformParameters(1, 0, egl_platform::VULKAN_SWIFTSHADER());
751 }
752
ES2_VULKAN()753 PlatformParameters ES2_VULKAN()
754 {
755 return PlatformParameters(2, 0, egl_platform::VULKAN());
756 }
757
ES2_VULKAN_NULL()758 PlatformParameters ES2_VULKAN_NULL()
759 {
760 return PlatformParameters(2, 0, egl_platform::VULKAN_NULL());
761 }
762
ES2_VULKAN_SWIFTSHADER()763 PlatformParameters ES2_VULKAN_SWIFTSHADER()
764 {
765 return PlatformParameters(2, 0, egl_platform::VULKAN_SWIFTSHADER());
766 }
767
ES3_VULKAN()768 PlatformParameters ES3_VULKAN()
769 {
770 return PlatformParameters(3, 0, egl_platform::VULKAN());
771 }
772
ES3_VULKAN_NULL()773 PlatformParameters ES3_VULKAN_NULL()
774 {
775 return PlatformParameters(3, 0, egl_platform::VULKAN_NULL());
776 }
777
ES3_VULKAN_SWIFTSHADER()778 PlatformParameters ES3_VULKAN_SWIFTSHADER()
779 {
780 return PlatformParameters(3, 0, egl_platform::VULKAN_SWIFTSHADER());
781 }
782
ES31_VULKAN()783 PlatformParameters ES31_VULKAN()
784 {
785 return PlatformParameters(3, 1, egl_platform::VULKAN());
786 }
787
ES31_VULKAN_NULL()788 PlatformParameters ES31_VULKAN_NULL()
789 {
790 return PlatformParameters(3, 1, egl_platform::VULKAN_NULL());
791 }
792
ES31_VULKAN_SWIFTSHADER()793 PlatformParameters ES31_VULKAN_SWIFTSHADER()
794 {
795 return PlatformParameters(3, 1, egl_platform::VULKAN_SWIFTSHADER());
796 }
797
ES1_METAL()798 PlatformParameters ES1_METAL()
799 {
800 return PlatformParameters(1, 0, egl_platform::METAL());
801 }
802
ES2_METAL()803 PlatformParameters ES2_METAL()
804 {
805 return PlatformParameters(2, 0, egl_platform::METAL());
806 }
807
ES3_METAL()808 PlatformParameters ES3_METAL()
809 {
810 return PlatformParameters(3, 0, egl_platform::METAL());
811 }
812
ES2_WGL()813 PlatformParameters ES2_WGL()
814 {
815 return PlatformParameters(2, 0, GLESDriverType::SystemWGL);
816 }
817
ES3_WGL()818 PlatformParameters ES3_WGL()
819 {
820 return PlatformParameters(3, 0, GLESDriverType::SystemWGL);
821 }
822
ES2_EGL()823 PlatformParameters ES2_EGL()
824 {
825 return PlatformParameters(2, 0, GLESDriverType::SystemEGL);
826 }
827
ES3_EGL()828 PlatformParameters ES3_EGL()
829 {
830 return PlatformParameters(3, 0, GLESDriverType::SystemEGL);
831 }
832 } // namespace angle
833