1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_texture_format_table.py using data from texture_format_data.json
3 //
4 // Copyright 2015 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // texture_format_table:
9 // Queries for full textureFormat information based in internalFormat
10 //
11
12 #include "libANGLE/renderer/d3d/d3d11/texture_format_table.h"
13
14 #include "image_util/copyimage.h"
15 #include "image_util/generatemip.h"
16 #include "image_util/loadimage.h"
17
18 #include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
19 #include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
20 #include "libANGLE/renderer/d3d/d3d11/texture_format_table_utils.h"
21
22 using namespace angle;
23
24 namespace rx
25 {
26
27 namespace d3d11
28 {
29
30 // static
Get(GLenum internalFormat,const Renderer11DeviceCaps & deviceCaps)31 const Format &Format::Get(GLenum internalFormat, const Renderer11DeviceCaps &deviceCaps)
32 {
33 // clang-format off
34 switch (internalFormat)
35 {
36 case GL_ALPHA16F_EXT:
37 {
38 static constexpr Format info(GL_ALPHA16F_EXT,
39 angle::FormatID::R16G16B16A16_FLOAT,
40 DXGI_FORMAT_R16G16B16A16_FLOAT,
41 DXGI_FORMAT_R16G16B16A16_FLOAT,
42 DXGI_FORMAT_R16G16B16A16_FLOAT,
43 DXGI_FORMAT_R16G16B16A16_FLOAT,
44 DXGI_FORMAT_UNKNOWN,
45 DXGI_FORMAT_R16G16B16A16_FLOAT,
46 GL_RGBA16F,
47 nullptr);
48 return info;
49 }
50 case GL_ALPHA32F_EXT:
51 {
52 static constexpr Format info(GL_ALPHA32F_EXT,
53 angle::FormatID::R32G32B32A32_FLOAT,
54 DXGI_FORMAT_R32G32B32A32_FLOAT,
55 DXGI_FORMAT_R32G32B32A32_FLOAT,
56 DXGI_FORMAT_R32G32B32A32_FLOAT,
57 DXGI_FORMAT_R32G32B32A32_FLOAT,
58 DXGI_FORMAT_UNKNOWN,
59 DXGI_FORMAT_R32G32B32A32_FLOAT,
60 GL_RGBA32F,
61 nullptr);
62 return info;
63 }
64 case GL_ALPHA8_EXT:
65 {
66 if (OnlyFL10Plus(deviceCaps))
67 {
68 static constexpr Format info(GL_ALPHA8_EXT,
69 angle::FormatID::A8_UNORM,
70 DXGI_FORMAT_A8_UNORM,
71 DXGI_FORMAT_A8_UNORM,
72 DXGI_FORMAT_UNKNOWN,
73 DXGI_FORMAT_A8_UNORM,
74 DXGI_FORMAT_UNKNOWN,
75 DXGI_FORMAT_A8_UNORM,
76 GL_RGBA8,
77 nullptr);
78 return info;
79 }
80 else
81 {
82 static constexpr Format info(GL_ALPHA8_EXT,
83 angle::FormatID::R8G8B8A8_UNORM,
84 DXGI_FORMAT_R8G8B8A8_UNORM,
85 DXGI_FORMAT_R8G8B8A8_UNORM,
86 DXGI_FORMAT_R8G8B8A8_UNORM,
87 DXGI_FORMAT_R8G8B8A8_UNORM,
88 DXGI_FORMAT_UNKNOWN,
89 DXGI_FORMAT_R8G8B8A8_UNORM,
90 GL_RGBA8,
91 nullptr);
92 return info;
93 }
94 }
95 case GL_BGR10_A2_ANGLEX:
96 {
97 static constexpr Format info(GL_BGR10_A2_ANGLEX,
98 angle::FormatID::B10G10R10A2_UNORM,
99 DXGI_FORMAT_R10G10B10A2_UNORM,
100 DXGI_FORMAT_R10G10B10A2_UNORM,
101 DXGI_FORMAT_UNKNOWN,
102 DXGI_FORMAT_R10G10B10A2_UNORM,
103 DXGI_FORMAT_UNKNOWN,
104 DXGI_FORMAT_R10G10B10A2_UNORM,
105 GL_RGBA16_EXT,
106 nullptr);
107 return info;
108 }
109 case GL_BGR565_ANGLEX:
110 {
111 if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
112 {
113 static constexpr Format info(GL_BGR565_ANGLEX,
114 angle::FormatID::B5G6R5_UNORM,
115 DXGI_FORMAT_B5G6R5_UNORM,
116 DXGI_FORMAT_B5G6R5_UNORM,
117 DXGI_FORMAT_UNKNOWN,
118 DXGI_FORMAT_B5G6R5_UNORM,
119 DXGI_FORMAT_UNKNOWN,
120 DXGI_FORMAT_B5G6R5_UNORM,
121 GL_RGBA8,
122 nullptr);
123 return info;
124 }
125 else
126 {
127 static constexpr Format info(GL_BGR565_ANGLEX,
128 angle::FormatID::R8G8B8A8_UNORM,
129 DXGI_FORMAT_R8G8B8A8_UNORM,
130 DXGI_FORMAT_R8G8B8A8_UNORM,
131 DXGI_FORMAT_R8G8B8A8_UNORM,
132 DXGI_FORMAT_R8G8B8A8_UNORM,
133 DXGI_FORMAT_UNKNOWN,
134 DXGI_FORMAT_R8G8B8A8_UNORM,
135 GL_RGBA8,
136 nullptr);
137 return info;
138 }
139 }
140 case GL_BGR5_A1_ANGLEX:
141 {
142 static constexpr Format info(GL_BGR5_A1_ANGLEX,
143 angle::FormatID::B8G8R8A8_UNORM,
144 DXGI_FORMAT_B8G8R8A8_UNORM,
145 DXGI_FORMAT_B8G8R8A8_UNORM,
146 DXGI_FORMAT_UNKNOWN,
147 DXGI_FORMAT_B8G8R8A8_UNORM,
148 DXGI_FORMAT_UNKNOWN,
149 DXGI_FORMAT_B8G8R8A8_UNORM,
150 GL_BGRA8_EXT,
151 nullptr);
152 return info;
153 }
154 case GL_BGRA4_ANGLEX:
155 {
156 static constexpr Format info(GL_BGRA4_ANGLEX,
157 angle::FormatID::B8G8R8A8_UNORM,
158 DXGI_FORMAT_B8G8R8A8_UNORM,
159 DXGI_FORMAT_B8G8R8A8_UNORM,
160 DXGI_FORMAT_UNKNOWN,
161 DXGI_FORMAT_B8G8R8A8_UNORM,
162 DXGI_FORMAT_UNKNOWN,
163 DXGI_FORMAT_B8G8R8A8_UNORM,
164 GL_BGRA8_EXT,
165 nullptr);
166 return info;
167 }
168 case GL_BGRA8_EXT:
169 {
170 static constexpr Format info(GL_BGRA8_EXT,
171 angle::FormatID::B8G8R8A8_UNORM,
172 DXGI_FORMAT_B8G8R8A8_UNORM,
173 DXGI_FORMAT_B8G8R8A8_UNORM,
174 DXGI_FORMAT_UNKNOWN,
175 DXGI_FORMAT_B8G8R8A8_UNORM,
176 DXGI_FORMAT_UNKNOWN,
177 DXGI_FORMAT_B8G8R8A8_UNORM,
178 GL_BGRA8_EXT,
179 nullptr);
180 return info;
181 }
182 case GL_BGRA8_SRGB_ANGLEX:
183 {
184 static constexpr Format info(GL_BGRA8_SRGB_ANGLEX,
185 angle::FormatID::B8G8R8A8_UNORM_SRGB,
186 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
187 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
188 DXGI_FORMAT_UNKNOWN,
189 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
190 DXGI_FORMAT_UNKNOWN,
191 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
192 GL_BGRA8_SRGB_ANGLEX,
193 nullptr);
194 return info;
195 }
196 case GL_BGRX8_ANGLEX:
197 {
198 if (OnlyFL11_1Plus(deviceCaps))
199 {
200 static constexpr Format info(GL_BGRX8_ANGLEX,
201 angle::FormatID::B8G8R8X8_UNORM,
202 DXGI_FORMAT_B8G8R8X8_UNORM,
203 DXGI_FORMAT_B8G8R8X8_UNORM,
204 DXGI_FORMAT_UNKNOWN,
205 DXGI_FORMAT_B8G8R8X8_UNORM,
206 DXGI_FORMAT_UNKNOWN,
207 DXGI_FORMAT_B8G8R8X8_UNORM,
208 GL_BGRX8_ANGLEX,
209 nullptr);
210 return info;
211 }
212 else
213 {
214 static constexpr Format info(GL_BGRX8_ANGLEX,
215 angle::FormatID::R8G8B8A8_UNORM,
216 DXGI_FORMAT_R8G8B8A8_UNORM,
217 DXGI_FORMAT_R8G8B8A8_UNORM,
218 DXGI_FORMAT_R8G8B8A8_UNORM,
219 DXGI_FORMAT_R8G8B8A8_UNORM,
220 DXGI_FORMAT_UNKNOWN,
221 DXGI_FORMAT_R8G8B8A8_UNORM,
222 GL_RGBA8,
223 nullptr);
224 return info;
225 }
226 }
227 case GL_COMPRESSED_R11_EAC:
228 {
229 static constexpr Format info(GL_COMPRESSED_R11_EAC,
230 angle::FormatID::R16_UNORM,
231 DXGI_FORMAT_R16_UNORM,
232 DXGI_FORMAT_R16_UNORM,
233 DXGI_FORMAT_UNKNOWN,
234 DXGI_FORMAT_R16_UNORM,
235 DXGI_FORMAT_UNKNOWN,
236 DXGI_FORMAT_R16_UNORM,
237 GL_RGBA16_EXT,
238 nullptr);
239 return info;
240 }
241 case GL_COMPRESSED_RED_GREEN_RGTC2_EXT:
242 {
243 static constexpr Format info(GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
244 angle::FormatID::BC5_RG_UNORM_BLOCK,
245 DXGI_FORMAT_BC5_UNORM,
246 DXGI_FORMAT_BC5_UNORM,
247 DXGI_FORMAT_UNKNOWN,
248 DXGI_FORMAT_UNKNOWN,
249 DXGI_FORMAT_UNKNOWN,
250 DXGI_FORMAT_BC5_UNORM,
251 GL_RGBA8,
252 nullptr);
253 return info;
254 }
255 case GL_COMPRESSED_RED_RGTC1_EXT:
256 {
257 static constexpr Format info(GL_COMPRESSED_RED_RGTC1_EXT,
258 angle::FormatID::BC4_RED_UNORM_BLOCK,
259 DXGI_FORMAT_BC4_UNORM,
260 DXGI_FORMAT_BC4_UNORM,
261 DXGI_FORMAT_UNKNOWN,
262 DXGI_FORMAT_UNKNOWN,
263 DXGI_FORMAT_UNKNOWN,
264 DXGI_FORMAT_BC4_UNORM,
265 GL_RGBA8,
266 nullptr);
267 return info;
268 }
269 case GL_COMPRESSED_RG11_EAC:
270 {
271 static constexpr Format info(GL_COMPRESSED_RG11_EAC,
272 angle::FormatID::R16G16_UNORM,
273 DXGI_FORMAT_R16G16_UNORM,
274 DXGI_FORMAT_R16G16_UNORM,
275 DXGI_FORMAT_UNKNOWN,
276 DXGI_FORMAT_R16G16_UNORM,
277 DXGI_FORMAT_UNKNOWN,
278 DXGI_FORMAT_R16G16_UNORM,
279 GL_RGBA16_EXT,
280 nullptr);
281 return info;
282 }
283 case GL_COMPRESSED_RGB8_ETC2:
284 {
285 static constexpr Format info(GL_COMPRESSED_RGB8_ETC2,
286 angle::FormatID::R8G8B8A8_UNORM,
287 DXGI_FORMAT_R8G8B8A8_UNORM,
288 DXGI_FORMAT_R8G8B8A8_UNORM,
289 DXGI_FORMAT_R8G8B8A8_UNORM,
290 DXGI_FORMAT_R8G8B8A8_UNORM,
291 DXGI_FORMAT_UNKNOWN,
292 DXGI_FORMAT_R8G8B8A8_UNORM,
293 GL_RGBA8,
294 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
295 return info;
296 }
297 case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE:
298 {
299 static constexpr Format info(GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE,
300 angle::FormatID::BC1_RGB_UNORM_BLOCK,
301 DXGI_FORMAT_BC1_UNORM,
302 DXGI_FORMAT_BC1_UNORM,
303 DXGI_FORMAT_UNKNOWN,
304 DXGI_FORMAT_UNKNOWN,
305 DXGI_FORMAT_UNKNOWN,
306 DXGI_FORMAT_BC1_UNORM,
307 GL_RGBA8,
308 nullptr);
309 return info;
310 }
311 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
312 {
313 static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
314 angle::FormatID::R8G8B8A8_UNORM,
315 DXGI_FORMAT_R8G8B8A8_UNORM,
316 DXGI_FORMAT_R8G8B8A8_UNORM,
317 DXGI_FORMAT_R8G8B8A8_UNORM,
318 DXGI_FORMAT_R8G8B8A8_UNORM,
319 DXGI_FORMAT_UNKNOWN,
320 DXGI_FORMAT_R8G8B8A8_UNORM,
321 GL_RGBA8,
322 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
323 return info;
324 }
325 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
326 {
327 static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
328 angle::FormatID::BC1_RGBA_UNORM_BLOCK,
329 DXGI_FORMAT_BC1_UNORM,
330 DXGI_FORMAT_BC1_UNORM,
331 DXGI_FORMAT_UNKNOWN,
332 DXGI_FORMAT_UNKNOWN,
333 DXGI_FORMAT_UNKNOWN,
334 DXGI_FORMAT_BC1_UNORM,
335 GL_RGBA8,
336 nullptr);
337 return info;
338 }
339 case GL_COMPRESSED_RGBA8_ETC2_EAC:
340 {
341 static constexpr Format info(GL_COMPRESSED_RGBA8_ETC2_EAC,
342 angle::FormatID::R8G8B8A8_UNORM,
343 DXGI_FORMAT_R8G8B8A8_UNORM,
344 DXGI_FORMAT_R8G8B8A8_UNORM,
345 DXGI_FORMAT_R8G8B8A8_UNORM,
346 DXGI_FORMAT_R8G8B8A8_UNORM,
347 DXGI_FORMAT_UNKNOWN,
348 DXGI_FORMAT_R8G8B8A8_UNORM,
349 GL_RGBA8,
350 nullptr);
351 return info;
352 }
353 case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:
354 {
355 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
356 angle::FormatID::NONE,
357 DXGI_FORMAT_UNKNOWN,
358 DXGI_FORMAT_UNKNOWN,
359 DXGI_FORMAT_UNKNOWN,
360 DXGI_FORMAT_UNKNOWN,
361 DXGI_FORMAT_UNKNOWN,
362 DXGI_FORMAT_UNKNOWN,
363 GL_NONE,
364 nullptr);
365 return info;
366 }
367 case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:
368 {
369 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
370 angle::FormatID::NONE,
371 DXGI_FORMAT_UNKNOWN,
372 DXGI_FORMAT_UNKNOWN,
373 DXGI_FORMAT_UNKNOWN,
374 DXGI_FORMAT_UNKNOWN,
375 DXGI_FORMAT_UNKNOWN,
376 DXGI_FORMAT_UNKNOWN,
377 GL_NONE,
378 nullptr);
379 return info;
380 }
381 case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:
382 {
383 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
384 angle::FormatID::NONE,
385 DXGI_FORMAT_UNKNOWN,
386 DXGI_FORMAT_UNKNOWN,
387 DXGI_FORMAT_UNKNOWN,
388 DXGI_FORMAT_UNKNOWN,
389 DXGI_FORMAT_UNKNOWN,
390 DXGI_FORMAT_UNKNOWN,
391 GL_NONE,
392 nullptr);
393 return info;
394 }
395 case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:
396 {
397 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
398 angle::FormatID::NONE,
399 DXGI_FORMAT_UNKNOWN,
400 DXGI_FORMAT_UNKNOWN,
401 DXGI_FORMAT_UNKNOWN,
402 DXGI_FORMAT_UNKNOWN,
403 DXGI_FORMAT_UNKNOWN,
404 DXGI_FORMAT_UNKNOWN,
405 GL_NONE,
406 nullptr);
407 return info;
408 }
409 case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:
410 {
411 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
412 angle::FormatID::NONE,
413 DXGI_FORMAT_UNKNOWN,
414 DXGI_FORMAT_UNKNOWN,
415 DXGI_FORMAT_UNKNOWN,
416 DXGI_FORMAT_UNKNOWN,
417 DXGI_FORMAT_UNKNOWN,
418 DXGI_FORMAT_UNKNOWN,
419 GL_NONE,
420 nullptr);
421 return info;
422 }
423 case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:
424 {
425 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
426 angle::FormatID::NONE,
427 DXGI_FORMAT_UNKNOWN,
428 DXGI_FORMAT_UNKNOWN,
429 DXGI_FORMAT_UNKNOWN,
430 DXGI_FORMAT_UNKNOWN,
431 DXGI_FORMAT_UNKNOWN,
432 DXGI_FORMAT_UNKNOWN,
433 GL_NONE,
434 nullptr);
435 return info;
436 }
437 case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:
438 {
439 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_3x3x3_OES,
440 angle::FormatID::NONE,
441 DXGI_FORMAT_UNKNOWN,
442 DXGI_FORMAT_UNKNOWN,
443 DXGI_FORMAT_UNKNOWN,
444 DXGI_FORMAT_UNKNOWN,
445 DXGI_FORMAT_UNKNOWN,
446 DXGI_FORMAT_UNKNOWN,
447 GL_NONE,
448 nullptr);
449 return info;
450 }
451 case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:
452 {
453 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x3x3_OES,
454 angle::FormatID::NONE,
455 DXGI_FORMAT_UNKNOWN,
456 DXGI_FORMAT_UNKNOWN,
457 DXGI_FORMAT_UNKNOWN,
458 DXGI_FORMAT_UNKNOWN,
459 DXGI_FORMAT_UNKNOWN,
460 DXGI_FORMAT_UNKNOWN,
461 GL_NONE,
462 nullptr);
463 return info;
464 }
465 case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
466 {
467 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
468 angle::FormatID::NONE,
469 DXGI_FORMAT_UNKNOWN,
470 DXGI_FORMAT_UNKNOWN,
471 DXGI_FORMAT_UNKNOWN,
472 DXGI_FORMAT_UNKNOWN,
473 DXGI_FORMAT_UNKNOWN,
474 DXGI_FORMAT_UNKNOWN,
475 GL_NONE,
476 nullptr);
477 return info;
478 }
479 case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:
480 {
481 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4x3_OES,
482 angle::FormatID::NONE,
483 DXGI_FORMAT_UNKNOWN,
484 DXGI_FORMAT_UNKNOWN,
485 DXGI_FORMAT_UNKNOWN,
486 DXGI_FORMAT_UNKNOWN,
487 DXGI_FORMAT_UNKNOWN,
488 DXGI_FORMAT_UNKNOWN,
489 GL_NONE,
490 nullptr);
491 return info;
492 }
493 case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:
494 {
495 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4x4_OES,
496 angle::FormatID::NONE,
497 DXGI_FORMAT_UNKNOWN,
498 DXGI_FORMAT_UNKNOWN,
499 DXGI_FORMAT_UNKNOWN,
500 DXGI_FORMAT_UNKNOWN,
501 DXGI_FORMAT_UNKNOWN,
502 DXGI_FORMAT_UNKNOWN,
503 GL_NONE,
504 nullptr);
505 return info;
506 }
507 case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
508 {
509 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
510 angle::FormatID::NONE,
511 DXGI_FORMAT_UNKNOWN,
512 DXGI_FORMAT_UNKNOWN,
513 DXGI_FORMAT_UNKNOWN,
514 DXGI_FORMAT_UNKNOWN,
515 DXGI_FORMAT_UNKNOWN,
516 DXGI_FORMAT_UNKNOWN,
517 GL_NONE,
518 nullptr);
519 return info;
520 }
521 case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:
522 {
523 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x4x4_OES,
524 angle::FormatID::NONE,
525 DXGI_FORMAT_UNKNOWN,
526 DXGI_FORMAT_UNKNOWN,
527 DXGI_FORMAT_UNKNOWN,
528 DXGI_FORMAT_UNKNOWN,
529 DXGI_FORMAT_UNKNOWN,
530 DXGI_FORMAT_UNKNOWN,
531 GL_NONE,
532 nullptr);
533 return info;
534 }
535 case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
536 {
537 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
538 angle::FormatID::NONE,
539 DXGI_FORMAT_UNKNOWN,
540 DXGI_FORMAT_UNKNOWN,
541 DXGI_FORMAT_UNKNOWN,
542 DXGI_FORMAT_UNKNOWN,
543 DXGI_FORMAT_UNKNOWN,
544 DXGI_FORMAT_UNKNOWN,
545 GL_NONE,
546 nullptr);
547 return info;
548 }
549 case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:
550 {
551 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5x4_OES,
552 angle::FormatID::NONE,
553 DXGI_FORMAT_UNKNOWN,
554 DXGI_FORMAT_UNKNOWN,
555 DXGI_FORMAT_UNKNOWN,
556 DXGI_FORMAT_UNKNOWN,
557 DXGI_FORMAT_UNKNOWN,
558 DXGI_FORMAT_UNKNOWN,
559 GL_NONE,
560 nullptr);
561 return info;
562 }
563 case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:
564 {
565 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5x5_OES,
566 angle::FormatID::NONE,
567 DXGI_FORMAT_UNKNOWN,
568 DXGI_FORMAT_UNKNOWN,
569 DXGI_FORMAT_UNKNOWN,
570 DXGI_FORMAT_UNKNOWN,
571 DXGI_FORMAT_UNKNOWN,
572 DXGI_FORMAT_UNKNOWN,
573 GL_NONE,
574 nullptr);
575 return info;
576 }
577 case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:
578 {
579 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
580 angle::FormatID::NONE,
581 DXGI_FORMAT_UNKNOWN,
582 DXGI_FORMAT_UNKNOWN,
583 DXGI_FORMAT_UNKNOWN,
584 DXGI_FORMAT_UNKNOWN,
585 DXGI_FORMAT_UNKNOWN,
586 DXGI_FORMAT_UNKNOWN,
587 GL_NONE,
588 nullptr);
589 return info;
590 }
591 case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:
592 {
593 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x5x5_OES,
594 angle::FormatID::NONE,
595 DXGI_FORMAT_UNKNOWN,
596 DXGI_FORMAT_UNKNOWN,
597 DXGI_FORMAT_UNKNOWN,
598 DXGI_FORMAT_UNKNOWN,
599 DXGI_FORMAT_UNKNOWN,
600 DXGI_FORMAT_UNKNOWN,
601 GL_NONE,
602 nullptr);
603 return info;
604 }
605 case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:
606 {
607 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
608 angle::FormatID::NONE,
609 DXGI_FORMAT_UNKNOWN,
610 DXGI_FORMAT_UNKNOWN,
611 DXGI_FORMAT_UNKNOWN,
612 DXGI_FORMAT_UNKNOWN,
613 DXGI_FORMAT_UNKNOWN,
614 DXGI_FORMAT_UNKNOWN,
615 GL_NONE,
616 nullptr);
617 return info;
618 }
619 case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:
620 {
621 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6x5_OES,
622 angle::FormatID::NONE,
623 DXGI_FORMAT_UNKNOWN,
624 DXGI_FORMAT_UNKNOWN,
625 DXGI_FORMAT_UNKNOWN,
626 DXGI_FORMAT_UNKNOWN,
627 DXGI_FORMAT_UNKNOWN,
628 DXGI_FORMAT_UNKNOWN,
629 GL_NONE,
630 nullptr);
631 return info;
632 }
633 case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:
634 {
635 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6x6_OES,
636 angle::FormatID::NONE,
637 DXGI_FORMAT_UNKNOWN,
638 DXGI_FORMAT_UNKNOWN,
639 DXGI_FORMAT_UNKNOWN,
640 DXGI_FORMAT_UNKNOWN,
641 DXGI_FORMAT_UNKNOWN,
642 DXGI_FORMAT_UNKNOWN,
643 GL_NONE,
644 nullptr);
645 return info;
646 }
647 case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
648 {
649 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
650 angle::FormatID::NONE,
651 DXGI_FORMAT_UNKNOWN,
652 DXGI_FORMAT_UNKNOWN,
653 DXGI_FORMAT_UNKNOWN,
654 DXGI_FORMAT_UNKNOWN,
655 DXGI_FORMAT_UNKNOWN,
656 DXGI_FORMAT_UNKNOWN,
657 GL_NONE,
658 nullptr);
659 return info;
660 }
661 case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:
662 {
663 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
664 angle::FormatID::NONE,
665 DXGI_FORMAT_UNKNOWN,
666 DXGI_FORMAT_UNKNOWN,
667 DXGI_FORMAT_UNKNOWN,
668 DXGI_FORMAT_UNKNOWN,
669 DXGI_FORMAT_UNKNOWN,
670 DXGI_FORMAT_UNKNOWN,
671 GL_NONE,
672 nullptr);
673 return info;
674 }
675 case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:
676 {
677 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
678 angle::FormatID::NONE,
679 DXGI_FORMAT_UNKNOWN,
680 DXGI_FORMAT_UNKNOWN,
681 DXGI_FORMAT_UNKNOWN,
682 DXGI_FORMAT_UNKNOWN,
683 DXGI_FORMAT_UNKNOWN,
684 DXGI_FORMAT_UNKNOWN,
685 GL_NONE,
686 nullptr);
687 return info;
688 }
689 case GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:
690 {
691 static constexpr Format info(GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
692 angle::FormatID::BC7_RGBA_UNORM_BLOCK,
693 DXGI_FORMAT_BC7_UNORM,
694 DXGI_FORMAT_BC7_UNORM,
695 DXGI_FORMAT_UNKNOWN,
696 DXGI_FORMAT_UNKNOWN,
697 DXGI_FORMAT_UNKNOWN,
698 DXGI_FORMAT_BC7_UNORM,
699 GL_RGBA8,
700 nullptr);
701 return info;
702 }
703 case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:
704 {
705 static constexpr Format info(GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
706 angle::FormatID::NONE,
707 DXGI_FORMAT_UNKNOWN,
708 DXGI_FORMAT_UNKNOWN,
709 DXGI_FORMAT_UNKNOWN,
710 DXGI_FORMAT_UNKNOWN,
711 DXGI_FORMAT_UNKNOWN,
712 DXGI_FORMAT_UNKNOWN,
713 GL_NONE,
714 nullptr);
715 return info;
716 }
717 case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:
718 {
719 static constexpr Format info(GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
720 angle::FormatID::NONE,
721 DXGI_FORMAT_UNKNOWN,
722 DXGI_FORMAT_UNKNOWN,
723 DXGI_FORMAT_UNKNOWN,
724 DXGI_FORMAT_UNKNOWN,
725 DXGI_FORMAT_UNKNOWN,
726 DXGI_FORMAT_UNKNOWN,
727 GL_NONE,
728 nullptr);
729 return info;
730 }
731 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
732 {
733 static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
734 angle::FormatID::BC1_RGBA_UNORM_BLOCK,
735 DXGI_FORMAT_BC1_UNORM,
736 DXGI_FORMAT_BC1_UNORM,
737 DXGI_FORMAT_UNKNOWN,
738 DXGI_FORMAT_UNKNOWN,
739 DXGI_FORMAT_UNKNOWN,
740 DXGI_FORMAT_BC1_UNORM,
741 GL_RGBA8,
742 nullptr);
743 return info;
744 }
745 case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
746 {
747 static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,
748 angle::FormatID::BC2_RGBA_UNORM_BLOCK,
749 DXGI_FORMAT_BC2_UNORM,
750 DXGI_FORMAT_BC2_UNORM,
751 DXGI_FORMAT_UNKNOWN,
752 DXGI_FORMAT_UNKNOWN,
753 DXGI_FORMAT_UNKNOWN,
754 DXGI_FORMAT_BC2_UNORM,
755 GL_RGBA8,
756 nullptr);
757 return info;
758 }
759 case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
760 {
761 static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,
762 angle::FormatID::BC3_RGBA_UNORM_BLOCK,
763 DXGI_FORMAT_BC3_UNORM,
764 DXGI_FORMAT_BC3_UNORM,
765 DXGI_FORMAT_UNKNOWN,
766 DXGI_FORMAT_UNKNOWN,
767 DXGI_FORMAT_UNKNOWN,
768 DXGI_FORMAT_BC3_UNORM,
769 GL_RGBA8,
770 nullptr);
771 return info;
772 }
773 case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:
774 {
775 static constexpr Format info(GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,
776 angle::FormatID::BC6H_RGB_SFLOAT_BLOCK,
777 DXGI_FORMAT_BC6H_SF16,
778 DXGI_FORMAT_BC6H_SF16,
779 DXGI_FORMAT_UNKNOWN,
780 DXGI_FORMAT_UNKNOWN,
781 DXGI_FORMAT_UNKNOWN,
782 DXGI_FORMAT_BC6H_SF16,
783 GL_RGBA32F,
784 nullptr);
785 return info;
786 }
787 case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:
788 {
789 static constexpr Format info(GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,
790 angle::FormatID::BC6H_RGB_UFLOAT_BLOCK,
791 DXGI_FORMAT_BC6H_UF16,
792 DXGI_FORMAT_BC6H_UF16,
793 DXGI_FORMAT_UNKNOWN,
794 DXGI_FORMAT_UNKNOWN,
795 DXGI_FORMAT_UNKNOWN,
796 DXGI_FORMAT_BC6H_UF16,
797 GL_RGBA32F,
798 nullptr);
799 return info;
800 }
801 case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:
802 {
803 static constexpr Format info(GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
804 angle::FormatID::NONE,
805 DXGI_FORMAT_UNKNOWN,
806 DXGI_FORMAT_UNKNOWN,
807 DXGI_FORMAT_UNKNOWN,
808 DXGI_FORMAT_UNKNOWN,
809 DXGI_FORMAT_UNKNOWN,
810 DXGI_FORMAT_UNKNOWN,
811 GL_NONE,
812 nullptr);
813 return info;
814 }
815 case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:
816 {
817 static constexpr Format info(GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
818 angle::FormatID::NONE,
819 DXGI_FORMAT_UNKNOWN,
820 DXGI_FORMAT_UNKNOWN,
821 DXGI_FORMAT_UNKNOWN,
822 DXGI_FORMAT_UNKNOWN,
823 DXGI_FORMAT_UNKNOWN,
824 DXGI_FORMAT_UNKNOWN,
825 GL_NONE,
826 nullptr);
827 return info;
828 }
829 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
830 {
831 static constexpr Format info(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
832 angle::FormatID::BC1_RGB_UNORM_BLOCK,
833 DXGI_FORMAT_BC1_UNORM,
834 DXGI_FORMAT_BC1_UNORM,
835 DXGI_FORMAT_UNKNOWN,
836 DXGI_FORMAT_UNKNOWN,
837 DXGI_FORMAT_UNKNOWN,
838 DXGI_FORMAT_BC1_UNORM,
839 GL_RGBA8,
840 nullptr);
841 return info;
842 }
843 case GL_COMPRESSED_SIGNED_R11_EAC:
844 {
845 static constexpr Format info(GL_COMPRESSED_SIGNED_R11_EAC,
846 angle::FormatID::R16_SNORM,
847 DXGI_FORMAT_R16_SNORM,
848 DXGI_FORMAT_R16_SNORM,
849 DXGI_FORMAT_UNKNOWN,
850 DXGI_FORMAT_UNKNOWN,
851 DXGI_FORMAT_UNKNOWN,
852 DXGI_FORMAT_R16_SNORM,
853 GL_RGBA16_SNORM_EXT,
854 nullptr);
855 return info;
856 }
857 case GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:
858 {
859 static constexpr Format info(GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
860 angle::FormatID::BC5_RG_SNORM_BLOCK,
861 DXGI_FORMAT_BC5_SNORM,
862 DXGI_FORMAT_BC5_SNORM,
863 DXGI_FORMAT_UNKNOWN,
864 DXGI_FORMAT_UNKNOWN,
865 DXGI_FORMAT_UNKNOWN,
866 DXGI_FORMAT_BC5_SNORM,
867 GL_RGBA8_SNORM,
868 nullptr);
869 return info;
870 }
871 case GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:
872 {
873 static constexpr Format info(GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
874 angle::FormatID::BC4_RED_SNORM_BLOCK,
875 DXGI_FORMAT_BC4_SNORM,
876 DXGI_FORMAT_BC4_SNORM,
877 DXGI_FORMAT_UNKNOWN,
878 DXGI_FORMAT_UNKNOWN,
879 DXGI_FORMAT_UNKNOWN,
880 DXGI_FORMAT_BC4_SNORM,
881 GL_RGBA8_SNORM,
882 nullptr);
883 return info;
884 }
885 case GL_COMPRESSED_SIGNED_RG11_EAC:
886 {
887 static constexpr Format info(GL_COMPRESSED_SIGNED_RG11_EAC,
888 angle::FormatID::R16G16_SNORM,
889 DXGI_FORMAT_R16G16_SNORM,
890 DXGI_FORMAT_R16G16_SNORM,
891 DXGI_FORMAT_UNKNOWN,
892 DXGI_FORMAT_UNKNOWN,
893 DXGI_FORMAT_UNKNOWN,
894 DXGI_FORMAT_R16G16_SNORM,
895 GL_RGBA16_SNORM_EXT,
896 nullptr);
897 return info;
898 }
899 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
900 {
901 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
902 angle::FormatID::NONE,
903 DXGI_FORMAT_UNKNOWN,
904 DXGI_FORMAT_UNKNOWN,
905 DXGI_FORMAT_UNKNOWN,
906 DXGI_FORMAT_UNKNOWN,
907 DXGI_FORMAT_UNKNOWN,
908 DXGI_FORMAT_UNKNOWN,
909 GL_NONE,
910 nullptr);
911 return info;
912 }
913 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:
914 {
915 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
916 angle::FormatID::NONE,
917 DXGI_FORMAT_UNKNOWN,
918 DXGI_FORMAT_UNKNOWN,
919 DXGI_FORMAT_UNKNOWN,
920 DXGI_FORMAT_UNKNOWN,
921 DXGI_FORMAT_UNKNOWN,
922 DXGI_FORMAT_UNKNOWN,
923 GL_NONE,
924 nullptr);
925 return info;
926 }
927 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:
928 {
929 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
930 angle::FormatID::NONE,
931 DXGI_FORMAT_UNKNOWN,
932 DXGI_FORMAT_UNKNOWN,
933 DXGI_FORMAT_UNKNOWN,
934 DXGI_FORMAT_UNKNOWN,
935 DXGI_FORMAT_UNKNOWN,
936 DXGI_FORMAT_UNKNOWN,
937 GL_NONE,
938 nullptr);
939 return info;
940 }
941 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
942 {
943 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
944 angle::FormatID::NONE,
945 DXGI_FORMAT_UNKNOWN,
946 DXGI_FORMAT_UNKNOWN,
947 DXGI_FORMAT_UNKNOWN,
948 DXGI_FORMAT_UNKNOWN,
949 DXGI_FORMAT_UNKNOWN,
950 DXGI_FORMAT_UNKNOWN,
951 GL_NONE,
952 nullptr);
953 return info;
954 }
955 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
956 {
957 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
958 angle::FormatID::NONE,
959 DXGI_FORMAT_UNKNOWN,
960 DXGI_FORMAT_UNKNOWN,
961 DXGI_FORMAT_UNKNOWN,
962 DXGI_FORMAT_UNKNOWN,
963 DXGI_FORMAT_UNKNOWN,
964 DXGI_FORMAT_UNKNOWN,
965 GL_NONE,
966 nullptr);
967 return info;
968 }
969 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
970 {
971 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
972 angle::FormatID::NONE,
973 DXGI_FORMAT_UNKNOWN,
974 DXGI_FORMAT_UNKNOWN,
975 DXGI_FORMAT_UNKNOWN,
976 DXGI_FORMAT_UNKNOWN,
977 DXGI_FORMAT_UNKNOWN,
978 DXGI_FORMAT_UNKNOWN,
979 GL_NONE,
980 nullptr);
981 return info;
982 }
983 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:
984 {
985 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES,
986 angle::FormatID::NONE,
987 DXGI_FORMAT_UNKNOWN,
988 DXGI_FORMAT_UNKNOWN,
989 DXGI_FORMAT_UNKNOWN,
990 DXGI_FORMAT_UNKNOWN,
991 DXGI_FORMAT_UNKNOWN,
992 DXGI_FORMAT_UNKNOWN,
993 GL_NONE,
994 nullptr);
995 return info;
996 }
997 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:
998 {
999 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES,
1000 angle::FormatID::NONE,
1001 DXGI_FORMAT_UNKNOWN,
1002 DXGI_FORMAT_UNKNOWN,
1003 DXGI_FORMAT_UNKNOWN,
1004 DXGI_FORMAT_UNKNOWN,
1005 DXGI_FORMAT_UNKNOWN,
1006 DXGI_FORMAT_UNKNOWN,
1007 GL_NONE,
1008 nullptr);
1009 return info;
1010 }
1011 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
1012 {
1013 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
1014 angle::FormatID::NONE,
1015 DXGI_FORMAT_UNKNOWN,
1016 DXGI_FORMAT_UNKNOWN,
1017 DXGI_FORMAT_UNKNOWN,
1018 DXGI_FORMAT_UNKNOWN,
1019 DXGI_FORMAT_UNKNOWN,
1020 DXGI_FORMAT_UNKNOWN,
1021 GL_NONE,
1022 nullptr);
1023 return info;
1024 }
1025 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:
1026 {
1027 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES,
1028 angle::FormatID::NONE,
1029 DXGI_FORMAT_UNKNOWN,
1030 DXGI_FORMAT_UNKNOWN,
1031 DXGI_FORMAT_UNKNOWN,
1032 DXGI_FORMAT_UNKNOWN,
1033 DXGI_FORMAT_UNKNOWN,
1034 DXGI_FORMAT_UNKNOWN,
1035 GL_NONE,
1036 nullptr);
1037 return info;
1038 }
1039 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:
1040 {
1041 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES,
1042 angle::FormatID::NONE,
1043 DXGI_FORMAT_UNKNOWN,
1044 DXGI_FORMAT_UNKNOWN,
1045 DXGI_FORMAT_UNKNOWN,
1046 DXGI_FORMAT_UNKNOWN,
1047 DXGI_FORMAT_UNKNOWN,
1048 DXGI_FORMAT_UNKNOWN,
1049 GL_NONE,
1050 nullptr);
1051 return info;
1052 }
1053 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:
1054 {
1055 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
1056 angle::FormatID::NONE,
1057 DXGI_FORMAT_UNKNOWN,
1058 DXGI_FORMAT_UNKNOWN,
1059 DXGI_FORMAT_UNKNOWN,
1060 DXGI_FORMAT_UNKNOWN,
1061 DXGI_FORMAT_UNKNOWN,
1062 DXGI_FORMAT_UNKNOWN,
1063 GL_NONE,
1064 nullptr);
1065 return info;
1066 }
1067 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:
1068 {
1069 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES,
1070 angle::FormatID::NONE,
1071 DXGI_FORMAT_UNKNOWN,
1072 DXGI_FORMAT_UNKNOWN,
1073 DXGI_FORMAT_UNKNOWN,
1074 DXGI_FORMAT_UNKNOWN,
1075 DXGI_FORMAT_UNKNOWN,
1076 DXGI_FORMAT_UNKNOWN,
1077 GL_NONE,
1078 nullptr);
1079 return info;
1080 }
1081 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:
1082 {
1083 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
1084 angle::FormatID::NONE,
1085 DXGI_FORMAT_UNKNOWN,
1086 DXGI_FORMAT_UNKNOWN,
1087 DXGI_FORMAT_UNKNOWN,
1088 DXGI_FORMAT_UNKNOWN,
1089 DXGI_FORMAT_UNKNOWN,
1090 DXGI_FORMAT_UNKNOWN,
1091 GL_NONE,
1092 nullptr);
1093 return info;
1094 }
1095 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:
1096 {
1097 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES,
1098 angle::FormatID::NONE,
1099 DXGI_FORMAT_UNKNOWN,
1100 DXGI_FORMAT_UNKNOWN,
1101 DXGI_FORMAT_UNKNOWN,
1102 DXGI_FORMAT_UNKNOWN,
1103 DXGI_FORMAT_UNKNOWN,
1104 DXGI_FORMAT_UNKNOWN,
1105 GL_NONE,
1106 nullptr);
1107 return info;
1108 }
1109 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:
1110 {
1111 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES,
1112 angle::FormatID::NONE,
1113 DXGI_FORMAT_UNKNOWN,
1114 DXGI_FORMAT_UNKNOWN,
1115 DXGI_FORMAT_UNKNOWN,
1116 DXGI_FORMAT_UNKNOWN,
1117 DXGI_FORMAT_UNKNOWN,
1118 DXGI_FORMAT_UNKNOWN,
1119 GL_NONE,
1120 nullptr);
1121 return info;
1122 }
1123 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:
1124 {
1125 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
1126 angle::FormatID::NONE,
1127 DXGI_FORMAT_UNKNOWN,
1128 DXGI_FORMAT_UNKNOWN,
1129 DXGI_FORMAT_UNKNOWN,
1130 DXGI_FORMAT_UNKNOWN,
1131 DXGI_FORMAT_UNKNOWN,
1132 DXGI_FORMAT_UNKNOWN,
1133 GL_NONE,
1134 nullptr);
1135 return info;
1136 }
1137 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:
1138 {
1139 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES,
1140 angle::FormatID::NONE,
1141 DXGI_FORMAT_UNKNOWN,
1142 DXGI_FORMAT_UNKNOWN,
1143 DXGI_FORMAT_UNKNOWN,
1144 DXGI_FORMAT_UNKNOWN,
1145 DXGI_FORMAT_UNKNOWN,
1146 DXGI_FORMAT_UNKNOWN,
1147 GL_NONE,
1148 nullptr);
1149 return info;
1150 }
1151 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:
1152 {
1153 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
1154 angle::FormatID::NONE,
1155 DXGI_FORMAT_UNKNOWN,
1156 DXGI_FORMAT_UNKNOWN,
1157 DXGI_FORMAT_UNKNOWN,
1158 DXGI_FORMAT_UNKNOWN,
1159 DXGI_FORMAT_UNKNOWN,
1160 DXGI_FORMAT_UNKNOWN,
1161 GL_NONE,
1162 nullptr);
1163 return info;
1164 }
1165 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:
1166 {
1167 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES,
1168 angle::FormatID::NONE,
1169 DXGI_FORMAT_UNKNOWN,
1170 DXGI_FORMAT_UNKNOWN,
1171 DXGI_FORMAT_UNKNOWN,
1172 DXGI_FORMAT_UNKNOWN,
1173 DXGI_FORMAT_UNKNOWN,
1174 DXGI_FORMAT_UNKNOWN,
1175 GL_NONE,
1176 nullptr);
1177 return info;
1178 }
1179 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:
1180 {
1181 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES,
1182 angle::FormatID::NONE,
1183 DXGI_FORMAT_UNKNOWN,
1184 DXGI_FORMAT_UNKNOWN,
1185 DXGI_FORMAT_UNKNOWN,
1186 DXGI_FORMAT_UNKNOWN,
1187 DXGI_FORMAT_UNKNOWN,
1188 DXGI_FORMAT_UNKNOWN,
1189 GL_NONE,
1190 nullptr);
1191 return info;
1192 }
1193 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:
1194 {
1195 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
1196 angle::FormatID::NONE,
1197 DXGI_FORMAT_UNKNOWN,
1198 DXGI_FORMAT_UNKNOWN,
1199 DXGI_FORMAT_UNKNOWN,
1200 DXGI_FORMAT_UNKNOWN,
1201 DXGI_FORMAT_UNKNOWN,
1202 DXGI_FORMAT_UNKNOWN,
1203 GL_NONE,
1204 nullptr);
1205 return info;
1206 }
1207 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:
1208 {
1209 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
1210 angle::FormatID::NONE,
1211 DXGI_FORMAT_UNKNOWN,
1212 DXGI_FORMAT_UNKNOWN,
1213 DXGI_FORMAT_UNKNOWN,
1214 DXGI_FORMAT_UNKNOWN,
1215 DXGI_FORMAT_UNKNOWN,
1216 DXGI_FORMAT_UNKNOWN,
1217 GL_NONE,
1218 nullptr);
1219 return info;
1220 }
1221 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:
1222 {
1223 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
1224 angle::FormatID::NONE,
1225 DXGI_FORMAT_UNKNOWN,
1226 DXGI_FORMAT_UNKNOWN,
1227 DXGI_FORMAT_UNKNOWN,
1228 DXGI_FORMAT_UNKNOWN,
1229 DXGI_FORMAT_UNKNOWN,
1230 DXGI_FORMAT_UNKNOWN,
1231 GL_NONE,
1232 nullptr);
1233 return info;
1234 }
1235 case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
1236 {
1237 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
1238 angle::FormatID::R8G8B8A8_UNORM_SRGB,
1239 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1240 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1241 DXGI_FORMAT_UNKNOWN,
1242 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1243 DXGI_FORMAT_UNKNOWN,
1244 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1245 GL_SRGB8_ALPHA8,
1246 nullptr);
1247 return info;
1248 }
1249 case GL_COMPRESSED_SRGB8_ETC2:
1250 {
1251 static constexpr Format info(GL_COMPRESSED_SRGB8_ETC2,
1252 angle::FormatID::R8G8B8A8_UNORM_SRGB,
1253 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1254 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1255 DXGI_FORMAT_UNKNOWN,
1256 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1257 DXGI_FORMAT_UNKNOWN,
1258 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1259 GL_SRGB8_ALPHA8,
1260 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1261 return info;
1262 }
1263 case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE:
1264 {
1265 static constexpr Format info(GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE,
1266 angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
1267 DXGI_FORMAT_BC1_UNORM_SRGB,
1268 DXGI_FORMAT_BC1_UNORM_SRGB,
1269 DXGI_FORMAT_UNKNOWN,
1270 DXGI_FORMAT_UNKNOWN,
1271 DXGI_FORMAT_UNKNOWN,
1272 DXGI_FORMAT_BC1_UNORM_SRGB,
1273 GL_RGBA8,
1274 nullptr);
1275 return info;
1276 }
1277 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
1278 {
1279 static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
1280 angle::FormatID::R8G8B8A8_UNORM_SRGB,
1281 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1282 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1283 DXGI_FORMAT_UNKNOWN,
1284 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1285 DXGI_FORMAT_UNKNOWN,
1286 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1287 GL_SRGB8_ALPHA8,
1288 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1289 return info;
1290 }
1291 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
1292 {
1293 static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
1294 angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
1295 DXGI_FORMAT_BC1_UNORM_SRGB,
1296 DXGI_FORMAT_BC1_UNORM_SRGB,
1297 DXGI_FORMAT_UNKNOWN,
1298 DXGI_FORMAT_UNKNOWN,
1299 DXGI_FORMAT_UNKNOWN,
1300 DXGI_FORMAT_BC1_UNORM_SRGB,
1301 GL_RGBA8,
1302 nullptr);
1303 return info;
1304 }
1305 case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:
1306 {
1307 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,
1308 angle::FormatID::BC7_RGBA_UNORM_SRGB_BLOCK,
1309 DXGI_FORMAT_BC7_UNORM_SRGB,
1310 DXGI_FORMAT_BC7_UNORM_SRGB,
1311 DXGI_FORMAT_UNKNOWN,
1312 DXGI_FORMAT_UNKNOWN,
1313 DXGI_FORMAT_UNKNOWN,
1314 DXGI_FORMAT_BC7_UNORM_SRGB,
1315 GL_SRGB8_ALPHA8,
1316 nullptr);
1317 return info;
1318 }
1319 case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:
1320 {
1321 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT,
1322 angle::FormatID::NONE,
1323 DXGI_FORMAT_UNKNOWN,
1324 DXGI_FORMAT_UNKNOWN,
1325 DXGI_FORMAT_UNKNOWN,
1326 DXGI_FORMAT_UNKNOWN,
1327 DXGI_FORMAT_UNKNOWN,
1328 DXGI_FORMAT_UNKNOWN,
1329 GL_NONE,
1330 nullptr);
1331 return info;
1332 }
1333 case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:
1334 {
1335 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT,
1336 angle::FormatID::NONE,
1337 DXGI_FORMAT_UNKNOWN,
1338 DXGI_FORMAT_UNKNOWN,
1339 DXGI_FORMAT_UNKNOWN,
1340 DXGI_FORMAT_UNKNOWN,
1341 DXGI_FORMAT_UNKNOWN,
1342 DXGI_FORMAT_UNKNOWN,
1343 GL_NONE,
1344 nullptr);
1345 return info;
1346 }
1347 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
1348 {
1349 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
1350 angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
1351 DXGI_FORMAT_BC1_UNORM_SRGB,
1352 DXGI_FORMAT_BC1_UNORM_SRGB,
1353 DXGI_FORMAT_UNKNOWN,
1354 DXGI_FORMAT_UNKNOWN,
1355 DXGI_FORMAT_UNKNOWN,
1356 DXGI_FORMAT_BC1_UNORM_SRGB,
1357 GL_RGBA8,
1358 nullptr);
1359 return info;
1360 }
1361 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
1362 {
1363 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
1364 angle::FormatID::BC2_RGBA_UNORM_SRGB_BLOCK,
1365 DXGI_FORMAT_BC2_UNORM_SRGB,
1366 DXGI_FORMAT_BC2_UNORM_SRGB,
1367 DXGI_FORMAT_UNKNOWN,
1368 DXGI_FORMAT_UNKNOWN,
1369 DXGI_FORMAT_UNKNOWN,
1370 DXGI_FORMAT_BC2_UNORM_SRGB,
1371 GL_RGBA8,
1372 nullptr);
1373 return info;
1374 }
1375 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
1376 {
1377 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
1378 angle::FormatID::BC3_RGBA_UNORM_SRGB_BLOCK,
1379 DXGI_FORMAT_BC3_UNORM_SRGB,
1380 DXGI_FORMAT_BC3_UNORM_SRGB,
1381 DXGI_FORMAT_UNKNOWN,
1382 DXGI_FORMAT_UNKNOWN,
1383 DXGI_FORMAT_UNKNOWN,
1384 DXGI_FORMAT_BC3_UNORM_SRGB,
1385 GL_RGBA8,
1386 nullptr);
1387 return info;
1388 }
1389 case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:
1390 {
1391 static constexpr Format info(GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT,
1392 angle::FormatID::NONE,
1393 DXGI_FORMAT_UNKNOWN,
1394 DXGI_FORMAT_UNKNOWN,
1395 DXGI_FORMAT_UNKNOWN,
1396 DXGI_FORMAT_UNKNOWN,
1397 DXGI_FORMAT_UNKNOWN,
1398 DXGI_FORMAT_UNKNOWN,
1399 GL_NONE,
1400 nullptr);
1401 return info;
1402 }
1403 case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:
1404 {
1405 static constexpr Format info(GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT,
1406 angle::FormatID::NONE,
1407 DXGI_FORMAT_UNKNOWN,
1408 DXGI_FORMAT_UNKNOWN,
1409 DXGI_FORMAT_UNKNOWN,
1410 DXGI_FORMAT_UNKNOWN,
1411 DXGI_FORMAT_UNKNOWN,
1412 DXGI_FORMAT_UNKNOWN,
1413 GL_NONE,
1414 nullptr);
1415 return info;
1416 }
1417 case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
1418 {
1419 static constexpr Format info(GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
1420 angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
1421 DXGI_FORMAT_BC1_UNORM_SRGB,
1422 DXGI_FORMAT_BC1_UNORM_SRGB,
1423 DXGI_FORMAT_UNKNOWN,
1424 DXGI_FORMAT_UNKNOWN,
1425 DXGI_FORMAT_UNKNOWN,
1426 DXGI_FORMAT_BC1_UNORM_SRGB,
1427 GL_RGBA8,
1428 nullptr);
1429 return info;
1430 }
1431 case GL_DEPTH24_STENCIL8:
1432 {
1433 if (OnlyFL10Plus(deviceCaps))
1434 {
1435 static constexpr Format info(GL_DEPTH24_STENCIL8,
1436 angle::FormatID::D24_UNORM_S8_UINT,
1437 DXGI_FORMAT_R24G8_TYPELESS,
1438 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1439 DXGI_FORMAT_UNKNOWN,
1440 DXGI_FORMAT_UNKNOWN,
1441 DXGI_FORMAT_D24_UNORM_S8_UINT,
1442 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1443 GL_RGBA32F,
1444 nullptr);
1445 return info;
1446 }
1447 else
1448 {
1449 static constexpr Format info(GL_DEPTH24_STENCIL8,
1450 angle::FormatID::D24_UNORM_S8_UINT,
1451 DXGI_FORMAT_D24_UNORM_S8_UINT,
1452 DXGI_FORMAT_UNKNOWN,
1453 DXGI_FORMAT_UNKNOWN,
1454 DXGI_FORMAT_UNKNOWN,
1455 DXGI_FORMAT_D24_UNORM_S8_UINT,
1456 DXGI_FORMAT_UNKNOWN,
1457 GL_RGBA32F,
1458 nullptr);
1459 return info;
1460 }
1461 }
1462 case GL_DEPTH32F_STENCIL8:
1463 {
1464 static constexpr Format info(GL_DEPTH32F_STENCIL8,
1465 angle::FormatID::D32_FLOAT_S8X24_UINT,
1466 DXGI_FORMAT_R32G8X24_TYPELESS,
1467 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
1468 DXGI_FORMAT_UNKNOWN,
1469 DXGI_FORMAT_UNKNOWN,
1470 DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
1471 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
1472 GL_RGBA32F,
1473 nullptr);
1474 return info;
1475 }
1476 case GL_DEPTH_COMPONENT16:
1477 {
1478 if (OnlyFL10Plus(deviceCaps))
1479 {
1480 static constexpr Format info(GL_DEPTH_COMPONENT16,
1481 angle::FormatID::D16_UNORM,
1482 DXGI_FORMAT_R16_TYPELESS,
1483 DXGI_FORMAT_R16_UNORM,
1484 DXGI_FORMAT_UNKNOWN,
1485 DXGI_FORMAT_UNKNOWN,
1486 DXGI_FORMAT_D16_UNORM,
1487 DXGI_FORMAT_R16_UNORM,
1488 GL_RGBA16_EXT,
1489 nullptr);
1490 return info;
1491 }
1492 else
1493 {
1494 static constexpr Format info(GL_DEPTH_COMPONENT16,
1495 angle::FormatID::D16_UNORM,
1496 DXGI_FORMAT_D16_UNORM,
1497 DXGI_FORMAT_UNKNOWN,
1498 DXGI_FORMAT_UNKNOWN,
1499 DXGI_FORMAT_UNKNOWN,
1500 DXGI_FORMAT_D16_UNORM,
1501 DXGI_FORMAT_UNKNOWN,
1502 GL_RGBA16_EXT,
1503 nullptr);
1504 return info;
1505 }
1506 }
1507 case GL_DEPTH_COMPONENT24:
1508 {
1509 if (OnlyFL10Plus(deviceCaps))
1510 {
1511 static constexpr Format info(GL_DEPTH_COMPONENT24,
1512 angle::FormatID::D24_UNORM_S8_UINT,
1513 DXGI_FORMAT_R24G8_TYPELESS,
1514 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1515 DXGI_FORMAT_UNKNOWN,
1516 DXGI_FORMAT_UNKNOWN,
1517 DXGI_FORMAT_D24_UNORM_S8_UINT,
1518 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1519 GL_RGBA32F,
1520 nullptr);
1521 return info;
1522 }
1523 else
1524 {
1525 static constexpr Format info(GL_DEPTH_COMPONENT24,
1526 angle::FormatID::D24_UNORM_S8_UINT,
1527 DXGI_FORMAT_D24_UNORM_S8_UINT,
1528 DXGI_FORMAT_UNKNOWN,
1529 DXGI_FORMAT_UNKNOWN,
1530 DXGI_FORMAT_UNKNOWN,
1531 DXGI_FORMAT_D24_UNORM_S8_UINT,
1532 DXGI_FORMAT_UNKNOWN,
1533 GL_RGBA32F,
1534 nullptr);
1535 return info;
1536 }
1537 }
1538 case GL_DEPTH_COMPONENT32F:
1539 {
1540 static constexpr Format info(GL_DEPTH_COMPONENT32F,
1541 angle::FormatID::D32_FLOAT,
1542 DXGI_FORMAT_R32_TYPELESS,
1543 DXGI_FORMAT_R32_FLOAT,
1544 DXGI_FORMAT_UNKNOWN,
1545 DXGI_FORMAT_UNKNOWN,
1546 DXGI_FORMAT_D32_FLOAT,
1547 DXGI_FORMAT_R32_FLOAT,
1548 GL_RGBA32F,
1549 nullptr);
1550 return info;
1551 }
1552 case GL_DEPTH_COMPONENT32_OES:
1553 {
1554 if (OnlyFL10Plus(deviceCaps))
1555 {
1556 static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
1557 angle::FormatID::D24_UNORM_S8_UINT,
1558 DXGI_FORMAT_R24G8_TYPELESS,
1559 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1560 DXGI_FORMAT_UNKNOWN,
1561 DXGI_FORMAT_UNKNOWN,
1562 DXGI_FORMAT_D24_UNORM_S8_UINT,
1563 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1564 GL_RGBA32F,
1565 nullptr);
1566 return info;
1567 }
1568 else
1569 {
1570 static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
1571 angle::FormatID::D24_UNORM_S8_UINT,
1572 DXGI_FORMAT_D24_UNORM_S8_UINT,
1573 DXGI_FORMAT_UNKNOWN,
1574 DXGI_FORMAT_UNKNOWN,
1575 DXGI_FORMAT_UNKNOWN,
1576 DXGI_FORMAT_D24_UNORM_S8_UINT,
1577 DXGI_FORMAT_UNKNOWN,
1578 GL_RGBA32F,
1579 nullptr);
1580 return info;
1581 }
1582 }
1583 case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
1584 {
1585 static constexpr Format info(GL_ETC1_RGB8_LOSSY_DECODE_ANGLE,
1586 angle::FormatID::BC1_RGB_UNORM_BLOCK,
1587 DXGI_FORMAT_BC1_UNORM,
1588 DXGI_FORMAT_BC1_UNORM,
1589 DXGI_FORMAT_UNKNOWN,
1590 DXGI_FORMAT_UNKNOWN,
1591 DXGI_FORMAT_UNKNOWN,
1592 DXGI_FORMAT_BC1_UNORM,
1593 GL_RGBA8,
1594 nullptr);
1595 return info;
1596 }
1597 case GL_ETC1_RGB8_OES:
1598 {
1599 static constexpr Format info(GL_ETC1_RGB8_OES,
1600 angle::FormatID::R8G8B8A8_UNORM,
1601 DXGI_FORMAT_R8G8B8A8_UNORM,
1602 DXGI_FORMAT_R8G8B8A8_UNORM,
1603 DXGI_FORMAT_R8G8B8A8_UNORM,
1604 DXGI_FORMAT_R8G8B8A8_UNORM,
1605 DXGI_FORMAT_UNKNOWN,
1606 DXGI_FORMAT_R8G8B8A8_UNORM,
1607 GL_RGBA8,
1608 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1609 return info;
1610 }
1611 case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE:
1612 {
1613 static constexpr Format info(GL_G8_B8R8_2PLANE_420_UNORM_ANGLE,
1614 angle::FormatID::NONE,
1615 DXGI_FORMAT_UNKNOWN,
1616 DXGI_FORMAT_UNKNOWN,
1617 DXGI_FORMAT_UNKNOWN,
1618 DXGI_FORMAT_UNKNOWN,
1619 DXGI_FORMAT_UNKNOWN,
1620 DXGI_FORMAT_UNKNOWN,
1621 GL_NONE,
1622 nullptr);
1623 return info;
1624 }
1625 case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE:
1626 {
1627 static constexpr Format info(GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE,
1628 angle::FormatID::NONE,
1629 DXGI_FORMAT_UNKNOWN,
1630 DXGI_FORMAT_UNKNOWN,
1631 DXGI_FORMAT_UNKNOWN,
1632 DXGI_FORMAT_UNKNOWN,
1633 DXGI_FORMAT_UNKNOWN,
1634 DXGI_FORMAT_UNKNOWN,
1635 GL_NONE,
1636 nullptr);
1637 return info;
1638 }
1639 case GL_LUMINANCE16F_EXT:
1640 {
1641 static constexpr Format info(GL_LUMINANCE16F_EXT,
1642 angle::FormatID::R16G16B16A16_FLOAT,
1643 DXGI_FORMAT_R16G16B16A16_FLOAT,
1644 DXGI_FORMAT_R16G16B16A16_FLOAT,
1645 DXGI_FORMAT_R16G16B16A16_FLOAT,
1646 DXGI_FORMAT_R16G16B16A16_FLOAT,
1647 DXGI_FORMAT_UNKNOWN,
1648 DXGI_FORMAT_R16G16B16A16_FLOAT,
1649 GL_RGBA16F,
1650 Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
1651 return info;
1652 }
1653 case GL_LUMINANCE32F_EXT:
1654 {
1655 static constexpr Format info(GL_LUMINANCE32F_EXT,
1656 angle::FormatID::R32G32B32A32_FLOAT,
1657 DXGI_FORMAT_R32G32B32A32_FLOAT,
1658 DXGI_FORMAT_R32G32B32A32_FLOAT,
1659 DXGI_FORMAT_R32G32B32A32_FLOAT,
1660 DXGI_FORMAT_R32G32B32A32_FLOAT,
1661 DXGI_FORMAT_UNKNOWN,
1662 DXGI_FORMAT_R32G32B32A32_FLOAT,
1663 GL_RGBA32F,
1664 Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
1665 return info;
1666 }
1667 case GL_LUMINANCE8_ALPHA8_EXT:
1668 {
1669 static constexpr Format info(GL_LUMINANCE8_ALPHA8_EXT,
1670 angle::FormatID::R8G8B8A8_UNORM,
1671 DXGI_FORMAT_R8G8B8A8_UNORM,
1672 DXGI_FORMAT_R8G8B8A8_UNORM,
1673 DXGI_FORMAT_R8G8B8A8_UNORM,
1674 DXGI_FORMAT_R8G8B8A8_UNORM,
1675 DXGI_FORMAT_UNKNOWN,
1676 DXGI_FORMAT_R8G8B8A8_UNORM,
1677 GL_RGBA8,
1678 nullptr);
1679 return info;
1680 }
1681 case GL_LUMINANCE8_EXT:
1682 {
1683 static constexpr Format info(GL_LUMINANCE8_EXT,
1684 angle::FormatID::R8G8B8A8_UNORM,
1685 DXGI_FORMAT_R8G8B8A8_UNORM,
1686 DXGI_FORMAT_R8G8B8A8_UNORM,
1687 DXGI_FORMAT_R8G8B8A8_UNORM,
1688 DXGI_FORMAT_R8G8B8A8_UNORM,
1689 DXGI_FORMAT_UNKNOWN,
1690 DXGI_FORMAT_R8G8B8A8_UNORM,
1691 GL_RGBA8,
1692 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1693 return info;
1694 }
1695 case GL_LUMINANCE_ALPHA16F_EXT:
1696 {
1697 static constexpr Format info(GL_LUMINANCE_ALPHA16F_EXT,
1698 angle::FormatID::R16G16B16A16_FLOAT,
1699 DXGI_FORMAT_R16G16B16A16_FLOAT,
1700 DXGI_FORMAT_R16G16B16A16_FLOAT,
1701 DXGI_FORMAT_R16G16B16A16_FLOAT,
1702 DXGI_FORMAT_R16G16B16A16_FLOAT,
1703 DXGI_FORMAT_UNKNOWN,
1704 DXGI_FORMAT_R16G16B16A16_FLOAT,
1705 GL_RGBA16F,
1706 nullptr);
1707 return info;
1708 }
1709 case GL_LUMINANCE_ALPHA32F_EXT:
1710 {
1711 static constexpr Format info(GL_LUMINANCE_ALPHA32F_EXT,
1712 angle::FormatID::R32G32B32A32_FLOAT,
1713 DXGI_FORMAT_R32G32B32A32_FLOAT,
1714 DXGI_FORMAT_R32G32B32A32_FLOAT,
1715 DXGI_FORMAT_R32G32B32A32_FLOAT,
1716 DXGI_FORMAT_R32G32B32A32_FLOAT,
1717 DXGI_FORMAT_UNKNOWN,
1718 DXGI_FORMAT_R32G32B32A32_FLOAT,
1719 GL_RGBA32F,
1720 nullptr);
1721 return info;
1722 }
1723 case GL_NONE:
1724 {
1725 static constexpr Format info(GL_NONE,
1726 angle::FormatID::NONE,
1727 DXGI_FORMAT_UNKNOWN,
1728 DXGI_FORMAT_UNKNOWN,
1729 DXGI_FORMAT_UNKNOWN,
1730 DXGI_FORMAT_UNKNOWN,
1731 DXGI_FORMAT_UNKNOWN,
1732 DXGI_FORMAT_UNKNOWN,
1733 GL_NONE,
1734 nullptr);
1735 return info;
1736 }
1737 case GL_R11F_G11F_B10F:
1738 {
1739 static constexpr Format info(GL_R11F_G11F_B10F,
1740 angle::FormatID::R11G11B10_FLOAT,
1741 DXGI_FORMAT_R11G11B10_FLOAT,
1742 DXGI_FORMAT_R11G11B10_FLOAT,
1743 DXGI_FORMAT_UNKNOWN,
1744 DXGI_FORMAT_R11G11B10_FLOAT,
1745 DXGI_FORMAT_UNKNOWN,
1746 DXGI_FORMAT_R11G11B10_FLOAT,
1747 GL_RGBA16F_EXT,
1748 nullptr);
1749 return info;
1750 }
1751 case GL_R16F:
1752 {
1753 static constexpr Format info(GL_R16F,
1754 angle::FormatID::R16_FLOAT,
1755 DXGI_FORMAT_R16_FLOAT,
1756 DXGI_FORMAT_R16_FLOAT,
1757 DXGI_FORMAT_UNKNOWN,
1758 DXGI_FORMAT_R16_FLOAT,
1759 DXGI_FORMAT_UNKNOWN,
1760 DXGI_FORMAT_R16_FLOAT,
1761 GL_RGBA16F_EXT,
1762 nullptr);
1763 return info;
1764 }
1765 case GL_R16I:
1766 {
1767 static constexpr Format info(GL_R16I,
1768 angle::FormatID::R16_SINT,
1769 DXGI_FORMAT_R16_SINT,
1770 DXGI_FORMAT_R16_SINT,
1771 DXGI_FORMAT_UNKNOWN,
1772 DXGI_FORMAT_R16_SINT,
1773 DXGI_FORMAT_UNKNOWN,
1774 DXGI_FORMAT_R16_SINT,
1775 GL_RGBA16I,
1776 nullptr);
1777 return info;
1778 }
1779 case GL_R16UI:
1780 {
1781 static constexpr Format info(GL_R16UI,
1782 angle::FormatID::R16_UINT,
1783 DXGI_FORMAT_R16_UINT,
1784 DXGI_FORMAT_R16_UINT,
1785 DXGI_FORMAT_UNKNOWN,
1786 DXGI_FORMAT_R16_UINT,
1787 DXGI_FORMAT_UNKNOWN,
1788 DXGI_FORMAT_R16_UINT,
1789 GL_RGBA16I,
1790 nullptr);
1791 return info;
1792 }
1793 case GL_R16_EXT:
1794 {
1795 static constexpr Format info(GL_R16_EXT,
1796 angle::FormatID::R16_UNORM,
1797 DXGI_FORMAT_R16_UNORM,
1798 DXGI_FORMAT_R16_UNORM,
1799 DXGI_FORMAT_UNKNOWN,
1800 DXGI_FORMAT_R16_UNORM,
1801 DXGI_FORMAT_UNKNOWN,
1802 DXGI_FORMAT_R16_UNORM,
1803 GL_RGBA16_EXT,
1804 nullptr);
1805 return info;
1806 }
1807 case GL_R16_SNORM_EXT:
1808 {
1809 static constexpr Format info(GL_R16_SNORM_EXT,
1810 angle::FormatID::R16_SNORM,
1811 DXGI_FORMAT_R16_SNORM,
1812 DXGI_FORMAT_R16_SNORM,
1813 DXGI_FORMAT_UNKNOWN,
1814 DXGI_FORMAT_UNKNOWN,
1815 DXGI_FORMAT_UNKNOWN,
1816 DXGI_FORMAT_R16_SNORM,
1817 GL_RGBA16_SNORM_EXT,
1818 nullptr);
1819 return info;
1820 }
1821 case GL_R32F:
1822 {
1823 static constexpr Format info(GL_R32F,
1824 angle::FormatID::R32_FLOAT,
1825 DXGI_FORMAT_R32_FLOAT,
1826 DXGI_FORMAT_R32_FLOAT,
1827 DXGI_FORMAT_R32_FLOAT,
1828 DXGI_FORMAT_R32_FLOAT,
1829 DXGI_FORMAT_UNKNOWN,
1830 DXGI_FORMAT_R32_FLOAT,
1831 GL_RGBA32F,
1832 nullptr);
1833 return info;
1834 }
1835 case GL_R32I:
1836 {
1837 static constexpr Format info(GL_R32I,
1838 angle::FormatID::R32_SINT,
1839 DXGI_FORMAT_R32_SINT,
1840 DXGI_FORMAT_R32_SINT,
1841 DXGI_FORMAT_R32_SINT,
1842 DXGI_FORMAT_R32_SINT,
1843 DXGI_FORMAT_UNKNOWN,
1844 DXGI_FORMAT_R32_SINT,
1845 GL_RGBA32I,
1846 nullptr);
1847 return info;
1848 }
1849 case GL_R32UI:
1850 {
1851 static constexpr Format info(GL_R32UI,
1852 angle::FormatID::R32_UINT,
1853 DXGI_FORMAT_R32_UINT,
1854 DXGI_FORMAT_R32_UINT,
1855 DXGI_FORMAT_R32_UINT,
1856 DXGI_FORMAT_R32_UINT,
1857 DXGI_FORMAT_UNKNOWN,
1858 DXGI_FORMAT_R32_UINT,
1859 GL_RGBA32I,
1860 nullptr);
1861 return info;
1862 }
1863 case GL_R8:
1864 {
1865 static constexpr Format info(GL_R8,
1866 angle::FormatID::R8_UNORM,
1867 DXGI_FORMAT_R8_UNORM,
1868 DXGI_FORMAT_R8_UNORM,
1869 DXGI_FORMAT_UNKNOWN,
1870 DXGI_FORMAT_R8_UNORM,
1871 DXGI_FORMAT_UNKNOWN,
1872 DXGI_FORMAT_R8_UNORM,
1873 GL_RGBA8,
1874 nullptr);
1875 return info;
1876 }
1877 case GL_R8I:
1878 {
1879 static constexpr Format info(GL_R8I,
1880 angle::FormatID::R8_SINT,
1881 DXGI_FORMAT_R8_SINT,
1882 DXGI_FORMAT_R8_SINT,
1883 DXGI_FORMAT_UNKNOWN,
1884 DXGI_FORMAT_R8_SINT,
1885 DXGI_FORMAT_UNKNOWN,
1886 DXGI_FORMAT_R8_SINT,
1887 GL_RGBA8I,
1888 nullptr);
1889 return info;
1890 }
1891 case GL_R8UI:
1892 {
1893 static constexpr Format info(GL_R8UI,
1894 angle::FormatID::R8_UINT,
1895 DXGI_FORMAT_R8_UINT,
1896 DXGI_FORMAT_R8_UINT,
1897 DXGI_FORMAT_UNKNOWN,
1898 DXGI_FORMAT_R8_UINT,
1899 DXGI_FORMAT_UNKNOWN,
1900 DXGI_FORMAT_R8_UINT,
1901 GL_RGBA8I,
1902 nullptr);
1903 return info;
1904 }
1905 case GL_R8_SNORM:
1906 {
1907 static constexpr Format info(GL_R8_SNORM,
1908 angle::FormatID::R8_SNORM,
1909 DXGI_FORMAT_R8_SNORM,
1910 DXGI_FORMAT_R8_SNORM,
1911 DXGI_FORMAT_UNKNOWN,
1912 DXGI_FORMAT_UNKNOWN,
1913 DXGI_FORMAT_UNKNOWN,
1914 DXGI_FORMAT_R8_SNORM,
1915 GL_RGBA8_SNORM,
1916 nullptr);
1917 return info;
1918 }
1919 case GL_RG16F:
1920 {
1921 static constexpr Format info(GL_RG16F,
1922 angle::FormatID::R16G16_FLOAT,
1923 DXGI_FORMAT_R16G16_FLOAT,
1924 DXGI_FORMAT_R16G16_FLOAT,
1925 DXGI_FORMAT_UNKNOWN,
1926 DXGI_FORMAT_R16G16_FLOAT,
1927 DXGI_FORMAT_UNKNOWN,
1928 DXGI_FORMAT_R16G16_FLOAT,
1929 GL_RGBA16F_EXT,
1930 nullptr);
1931 return info;
1932 }
1933 case GL_RG16I:
1934 {
1935 static constexpr Format info(GL_RG16I,
1936 angle::FormatID::R16G16_SINT,
1937 DXGI_FORMAT_R16G16_SINT,
1938 DXGI_FORMAT_R16G16_SINT,
1939 DXGI_FORMAT_UNKNOWN,
1940 DXGI_FORMAT_R16G16_SINT,
1941 DXGI_FORMAT_UNKNOWN,
1942 DXGI_FORMAT_R16G16_SINT,
1943 GL_RGBA16I,
1944 nullptr);
1945 return info;
1946 }
1947 case GL_RG16UI:
1948 {
1949 static constexpr Format info(GL_RG16UI,
1950 angle::FormatID::R16G16_UINT,
1951 DXGI_FORMAT_R16G16_UINT,
1952 DXGI_FORMAT_R16G16_UINT,
1953 DXGI_FORMAT_UNKNOWN,
1954 DXGI_FORMAT_R16G16_UINT,
1955 DXGI_FORMAT_UNKNOWN,
1956 DXGI_FORMAT_R16G16_UINT,
1957 GL_RGBA16I,
1958 nullptr);
1959 return info;
1960 }
1961 case GL_RG16_EXT:
1962 {
1963 static constexpr Format info(GL_RG16_EXT,
1964 angle::FormatID::R16G16_UNORM,
1965 DXGI_FORMAT_R16G16_UNORM,
1966 DXGI_FORMAT_R16G16_UNORM,
1967 DXGI_FORMAT_UNKNOWN,
1968 DXGI_FORMAT_R16G16_UNORM,
1969 DXGI_FORMAT_UNKNOWN,
1970 DXGI_FORMAT_R16G16_UNORM,
1971 GL_RGBA16_EXT,
1972 nullptr);
1973 return info;
1974 }
1975 case GL_RG16_SNORM_EXT:
1976 {
1977 static constexpr Format info(GL_RG16_SNORM_EXT,
1978 angle::FormatID::R16G16_SNORM,
1979 DXGI_FORMAT_R16G16_SNORM,
1980 DXGI_FORMAT_R16G16_SNORM,
1981 DXGI_FORMAT_UNKNOWN,
1982 DXGI_FORMAT_UNKNOWN,
1983 DXGI_FORMAT_UNKNOWN,
1984 DXGI_FORMAT_R16G16_SNORM,
1985 GL_RGBA16_SNORM_EXT,
1986 nullptr);
1987 return info;
1988 }
1989 case GL_RG32F:
1990 {
1991 static constexpr Format info(GL_RG32F,
1992 angle::FormatID::R32G32_FLOAT,
1993 DXGI_FORMAT_R32G32_FLOAT,
1994 DXGI_FORMAT_R32G32_FLOAT,
1995 DXGI_FORMAT_UNKNOWN,
1996 DXGI_FORMAT_R32G32_FLOAT,
1997 DXGI_FORMAT_UNKNOWN,
1998 DXGI_FORMAT_R32G32_FLOAT,
1999 GL_RGBA32F,
2000 nullptr);
2001 return info;
2002 }
2003 case GL_RG32I:
2004 {
2005 static constexpr Format info(GL_RG32I,
2006 angle::FormatID::R32G32_SINT,
2007 DXGI_FORMAT_R32G32_SINT,
2008 DXGI_FORMAT_R32G32_SINT,
2009 DXGI_FORMAT_UNKNOWN,
2010 DXGI_FORMAT_R32G32_SINT,
2011 DXGI_FORMAT_UNKNOWN,
2012 DXGI_FORMAT_R32G32_SINT,
2013 GL_RGBA32I,
2014 nullptr);
2015 return info;
2016 }
2017 case GL_RG32UI:
2018 {
2019 static constexpr Format info(GL_RG32UI,
2020 angle::FormatID::R32G32_UINT,
2021 DXGI_FORMAT_R32G32_UINT,
2022 DXGI_FORMAT_R32G32_UINT,
2023 DXGI_FORMAT_UNKNOWN,
2024 DXGI_FORMAT_R32G32_UINT,
2025 DXGI_FORMAT_UNKNOWN,
2026 DXGI_FORMAT_R32G32_UINT,
2027 GL_RGBA32I,
2028 nullptr);
2029 return info;
2030 }
2031 case GL_RG8:
2032 {
2033 static constexpr Format info(GL_RG8,
2034 angle::FormatID::R8G8_UNORM,
2035 DXGI_FORMAT_R8G8_UNORM,
2036 DXGI_FORMAT_R8G8_UNORM,
2037 DXGI_FORMAT_UNKNOWN,
2038 DXGI_FORMAT_R8G8_UNORM,
2039 DXGI_FORMAT_UNKNOWN,
2040 DXGI_FORMAT_R8G8_UNORM,
2041 GL_RGBA8,
2042 nullptr);
2043 return info;
2044 }
2045 case GL_RG8I:
2046 {
2047 static constexpr Format info(GL_RG8I,
2048 angle::FormatID::R8G8_SINT,
2049 DXGI_FORMAT_R8G8_SINT,
2050 DXGI_FORMAT_R8G8_SINT,
2051 DXGI_FORMAT_UNKNOWN,
2052 DXGI_FORMAT_R8G8_SINT,
2053 DXGI_FORMAT_UNKNOWN,
2054 DXGI_FORMAT_R8G8_SINT,
2055 GL_RGBA8I,
2056 nullptr);
2057 return info;
2058 }
2059 case GL_RG8UI:
2060 {
2061 static constexpr Format info(GL_RG8UI,
2062 angle::FormatID::R8G8_UINT,
2063 DXGI_FORMAT_R8G8_UINT,
2064 DXGI_FORMAT_R8G8_UINT,
2065 DXGI_FORMAT_UNKNOWN,
2066 DXGI_FORMAT_R8G8_UINT,
2067 DXGI_FORMAT_UNKNOWN,
2068 DXGI_FORMAT_R8G8_UINT,
2069 GL_RGBA8I,
2070 nullptr);
2071 return info;
2072 }
2073 case GL_RG8_SNORM:
2074 {
2075 static constexpr Format info(GL_RG8_SNORM,
2076 angle::FormatID::R8G8_SNORM,
2077 DXGI_FORMAT_R8G8_SNORM,
2078 DXGI_FORMAT_R8G8_SNORM,
2079 DXGI_FORMAT_UNKNOWN,
2080 DXGI_FORMAT_UNKNOWN,
2081 DXGI_FORMAT_UNKNOWN,
2082 DXGI_FORMAT_R8G8_SNORM,
2083 GL_RGBA8_SNORM,
2084 nullptr);
2085 return info;
2086 }
2087 case GL_RGB:
2088 {
2089 static constexpr Format info(GL_RGB,
2090 angle::FormatID::R8G8B8A8_UNORM,
2091 DXGI_FORMAT_R8G8B8A8_UNORM,
2092 DXGI_FORMAT_R8G8B8A8_UNORM,
2093 DXGI_FORMAT_R8G8B8A8_UNORM,
2094 DXGI_FORMAT_R8G8B8A8_UNORM,
2095 DXGI_FORMAT_UNKNOWN,
2096 DXGI_FORMAT_R8G8B8A8_UNORM,
2097 GL_RGBA8,
2098 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2099 return info;
2100 }
2101 case GL_RGB10_A2:
2102 {
2103 static constexpr Format info(GL_RGB10_A2,
2104 angle::FormatID::R10G10B10A2_UNORM,
2105 DXGI_FORMAT_R10G10B10A2_UNORM,
2106 DXGI_FORMAT_R10G10B10A2_UNORM,
2107 DXGI_FORMAT_UNKNOWN,
2108 DXGI_FORMAT_R10G10B10A2_UNORM,
2109 DXGI_FORMAT_UNKNOWN,
2110 DXGI_FORMAT_R10G10B10A2_UNORM,
2111 GL_RGBA16_EXT,
2112 nullptr);
2113 return info;
2114 }
2115 case GL_RGB10_A2UI:
2116 {
2117 static constexpr Format info(GL_RGB10_A2UI,
2118 angle::FormatID::R10G10B10A2_UINT,
2119 DXGI_FORMAT_R10G10B10A2_UINT,
2120 DXGI_FORMAT_R10G10B10A2_UINT,
2121 DXGI_FORMAT_UNKNOWN,
2122 DXGI_FORMAT_R10G10B10A2_UINT,
2123 DXGI_FORMAT_UNKNOWN,
2124 DXGI_FORMAT_R10G10B10A2_UINT,
2125 GL_RGBA16I,
2126 nullptr);
2127 return info;
2128 }
2129 case GL_RGB10_UNORM_ANGLEX:
2130 {
2131 static constexpr Format info(GL_RGB10_UNORM_ANGLEX,
2132 angle::FormatID::R10G10B10X2_UNORM,
2133 DXGI_FORMAT_R10G10B10A2_UNORM,
2134 DXGI_FORMAT_R10G10B10A2_UNORM,
2135 DXGI_FORMAT_UNKNOWN,
2136 DXGI_FORMAT_R10G10B10A2_UNORM,
2137 DXGI_FORMAT_UNKNOWN,
2138 DXGI_FORMAT_R10G10B10A2_UNORM,
2139 GL_RGBA16_EXT,
2140 nullptr);
2141 return info;
2142 }
2143 case GL_RGB16F:
2144 {
2145 static constexpr Format info(GL_RGB16F,
2146 angle::FormatID::R16G16B16A16_FLOAT,
2147 DXGI_FORMAT_R16G16B16A16_FLOAT,
2148 DXGI_FORMAT_R16G16B16A16_FLOAT,
2149 DXGI_FORMAT_R16G16B16A16_FLOAT,
2150 DXGI_FORMAT_R16G16B16A16_FLOAT,
2151 DXGI_FORMAT_UNKNOWN,
2152 DXGI_FORMAT_R16G16B16A16_FLOAT,
2153 GL_RGBA16F,
2154 Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
2155 return info;
2156 }
2157 case GL_RGB16I:
2158 {
2159 static constexpr Format info(GL_RGB16I,
2160 angle::FormatID::R16G16B16A16_SINT,
2161 DXGI_FORMAT_R16G16B16A16_SINT,
2162 DXGI_FORMAT_R16G16B16A16_SINT,
2163 DXGI_FORMAT_R16G16B16A16_SINT,
2164 DXGI_FORMAT_R16G16B16A16_SINT,
2165 DXGI_FORMAT_UNKNOWN,
2166 DXGI_FORMAT_R16G16B16A16_SINT,
2167 GL_RGBA16I,
2168 Initialize4ComponentData<GLshort, 0x0000, 0x0000, 0x0000, 0x0001>);
2169 return info;
2170 }
2171 case GL_RGB16UI:
2172 {
2173 static constexpr Format info(GL_RGB16UI,
2174 angle::FormatID::R16G16B16A16_UINT,
2175 DXGI_FORMAT_R16G16B16A16_UINT,
2176 DXGI_FORMAT_R16G16B16A16_UINT,
2177 DXGI_FORMAT_R16G16B16A16_UINT,
2178 DXGI_FORMAT_R16G16B16A16_UINT,
2179 DXGI_FORMAT_UNKNOWN,
2180 DXGI_FORMAT_R16G16B16A16_UINT,
2181 GL_RGBA16UI,
2182 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x0001>);
2183 return info;
2184 }
2185 case GL_RGB16_EXT:
2186 {
2187 static constexpr Format info(GL_RGB16_EXT,
2188 angle::FormatID::R16G16B16A16_UNORM,
2189 DXGI_FORMAT_R16G16B16A16_UNORM,
2190 DXGI_FORMAT_R16G16B16A16_UNORM,
2191 DXGI_FORMAT_UNKNOWN,
2192 DXGI_FORMAT_R16G16B16A16_UNORM,
2193 DXGI_FORMAT_UNKNOWN,
2194 DXGI_FORMAT_R16G16B16A16_UNORM,
2195 GL_RGBA16_EXT,
2196 Initialize4ComponentData<GLubyte, 0x0000, 0x0000, 0x0000, 0xFFFF>);
2197 return info;
2198 }
2199 case GL_RGB16_SNORM_EXT:
2200 {
2201 static constexpr Format info(GL_RGB16_SNORM_EXT,
2202 angle::FormatID::R16G16B16A16_SNORM,
2203 DXGI_FORMAT_R16G16B16A16_SNORM,
2204 DXGI_FORMAT_R16G16B16A16_SNORM,
2205 DXGI_FORMAT_UNKNOWN,
2206 DXGI_FORMAT_UNKNOWN,
2207 DXGI_FORMAT_UNKNOWN,
2208 DXGI_FORMAT_R16G16B16A16_SNORM,
2209 GL_RGBA16_SNORM_EXT,
2210 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x7FFF>);
2211 return info;
2212 }
2213 case GL_RGB32F:
2214 {
2215 static constexpr Format info(GL_RGB32F,
2216 angle::FormatID::R32G32B32A32_FLOAT,
2217 DXGI_FORMAT_R32G32B32A32_FLOAT,
2218 DXGI_FORMAT_R32G32B32A32_FLOAT,
2219 DXGI_FORMAT_R32G32B32A32_FLOAT,
2220 DXGI_FORMAT_R32G32B32A32_FLOAT,
2221 DXGI_FORMAT_UNKNOWN,
2222 DXGI_FORMAT_R32G32B32A32_FLOAT,
2223 GL_RGBA32F,
2224 Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
2225 return info;
2226 }
2227 case GL_RGB32I:
2228 {
2229 static constexpr Format info(GL_RGB32I,
2230 angle::FormatID::R32G32B32A32_SINT,
2231 DXGI_FORMAT_R32G32B32A32_SINT,
2232 DXGI_FORMAT_R32G32B32A32_SINT,
2233 DXGI_FORMAT_R32G32B32A32_SINT,
2234 DXGI_FORMAT_R32G32B32A32_SINT,
2235 DXGI_FORMAT_UNKNOWN,
2236 DXGI_FORMAT_R32G32B32A32_SINT,
2237 GL_RGBA32I,
2238 Initialize4ComponentData<GLint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
2239 return info;
2240 }
2241 case GL_RGB32UI:
2242 {
2243 static constexpr Format info(GL_RGB32UI,
2244 angle::FormatID::R32G32B32A32_UINT,
2245 DXGI_FORMAT_R32G32B32A32_UINT,
2246 DXGI_FORMAT_R32G32B32A32_UINT,
2247 DXGI_FORMAT_R32G32B32A32_UINT,
2248 DXGI_FORMAT_R32G32B32A32_UINT,
2249 DXGI_FORMAT_UNKNOWN,
2250 DXGI_FORMAT_R32G32B32A32_UINT,
2251 GL_RGBA32UI,
2252 Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
2253 return info;
2254 }
2255 case GL_RGB565:
2256 {
2257 if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
2258 {
2259 static constexpr Format info(GL_RGB565,
2260 angle::FormatID::B5G6R5_UNORM,
2261 DXGI_FORMAT_B5G6R5_UNORM,
2262 DXGI_FORMAT_B5G6R5_UNORM,
2263 DXGI_FORMAT_UNKNOWN,
2264 DXGI_FORMAT_B5G6R5_UNORM,
2265 DXGI_FORMAT_UNKNOWN,
2266 DXGI_FORMAT_B5G6R5_UNORM,
2267 GL_RGBA8,
2268 nullptr);
2269 return info;
2270 }
2271 else
2272 {
2273 static constexpr Format info(GL_RGB565,
2274 angle::FormatID::R8G8B8A8_UNORM,
2275 DXGI_FORMAT_R8G8B8A8_UNORM,
2276 DXGI_FORMAT_R8G8B8A8_UNORM,
2277 DXGI_FORMAT_R8G8B8A8_UNORM,
2278 DXGI_FORMAT_R8G8B8A8_UNORM,
2279 DXGI_FORMAT_UNKNOWN,
2280 DXGI_FORMAT_R8G8B8A8_UNORM,
2281 GL_RGBA8,
2282 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2283 return info;
2284 }
2285 }
2286 case GL_RGB5_A1:
2287 {
2288 if (SupportsFormat(DXGI_FORMAT_B5G5R5A1_UNORM, deviceCaps))
2289 {
2290 static constexpr Format info(GL_RGB5_A1,
2291 angle::FormatID::B5G5R5A1_UNORM,
2292 DXGI_FORMAT_B5G5R5A1_UNORM,
2293 DXGI_FORMAT_B5G5R5A1_UNORM,
2294 DXGI_FORMAT_UNKNOWN,
2295 DXGI_FORMAT_B5G5R5A1_UNORM,
2296 DXGI_FORMAT_UNKNOWN,
2297 DXGI_FORMAT_B5G5R5A1_UNORM,
2298 GL_RGBA8,
2299 nullptr);
2300 return info;
2301 }
2302 else
2303 {
2304 static constexpr Format info(GL_RGB5_A1,
2305 angle::FormatID::R8G8B8A8_UNORM,
2306 DXGI_FORMAT_R8G8B8A8_UNORM,
2307 DXGI_FORMAT_R8G8B8A8_UNORM,
2308 DXGI_FORMAT_R8G8B8A8_UNORM,
2309 DXGI_FORMAT_R8G8B8A8_UNORM,
2310 DXGI_FORMAT_UNKNOWN,
2311 DXGI_FORMAT_R8G8B8A8_UNORM,
2312 GL_RGBA8,
2313 nullptr);
2314 return info;
2315 }
2316 }
2317 case GL_RGB8:
2318 {
2319 static constexpr Format info(GL_RGB8,
2320 angle::FormatID::R8G8B8A8_UNORM,
2321 DXGI_FORMAT_R8G8B8A8_UNORM,
2322 DXGI_FORMAT_R8G8B8A8_UNORM,
2323 DXGI_FORMAT_R8G8B8A8_UNORM,
2324 DXGI_FORMAT_R8G8B8A8_UNORM,
2325 DXGI_FORMAT_UNKNOWN,
2326 DXGI_FORMAT_R8G8B8A8_UNORM,
2327 GL_RGBA8,
2328 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2329 return info;
2330 }
2331 case GL_RGB8I:
2332 {
2333 static constexpr Format info(GL_RGB8I,
2334 angle::FormatID::R8G8B8A8_SINT,
2335 DXGI_FORMAT_R8G8B8A8_SINT,
2336 DXGI_FORMAT_R8G8B8A8_SINT,
2337 DXGI_FORMAT_R8G8B8A8_SINT,
2338 DXGI_FORMAT_R8G8B8A8_SINT,
2339 DXGI_FORMAT_UNKNOWN,
2340 DXGI_FORMAT_R8G8B8A8_SINT,
2341 GL_RGBA8I,
2342 Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x01>);
2343 return info;
2344 }
2345 case GL_RGB8UI:
2346 {
2347 static constexpr Format info(GL_RGB8UI,
2348 angle::FormatID::R8G8B8A8_UINT,
2349 DXGI_FORMAT_R8G8B8A8_UINT,
2350 DXGI_FORMAT_R8G8B8A8_UINT,
2351 DXGI_FORMAT_R8G8B8A8_UINT,
2352 DXGI_FORMAT_R8G8B8A8_UINT,
2353 DXGI_FORMAT_UNKNOWN,
2354 DXGI_FORMAT_R8G8B8A8_UINT,
2355 GL_RGBA8UI,
2356 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0x01>);
2357 return info;
2358 }
2359 case GL_RGB8_SNORM:
2360 {
2361 static constexpr Format info(GL_RGB8_SNORM,
2362 angle::FormatID::R8G8B8A8_SNORM,
2363 DXGI_FORMAT_R8G8B8A8_SNORM,
2364 DXGI_FORMAT_R8G8B8A8_SNORM,
2365 DXGI_FORMAT_R8G8B8A8_SNORM,
2366 DXGI_FORMAT_UNKNOWN,
2367 DXGI_FORMAT_UNKNOWN,
2368 DXGI_FORMAT_R8G8B8A8_SNORM,
2369 GL_RGBA8_SNORM,
2370 Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x7F>);
2371 return info;
2372 }
2373 case GL_RGB9_E5:
2374 {
2375 static constexpr Format info(GL_RGB9_E5,
2376 angle::FormatID::R9G9B9E5_SHAREDEXP,
2377 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
2378 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
2379 DXGI_FORMAT_UNKNOWN,
2380 DXGI_FORMAT_UNKNOWN,
2381 DXGI_FORMAT_UNKNOWN,
2382 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
2383 GL_RGBA16F_EXT,
2384 nullptr);
2385 return info;
2386 }
2387 case GL_RGBA:
2388 {
2389 static constexpr Format info(GL_RGBA,
2390 angle::FormatID::R8G8B8A8_UNORM,
2391 DXGI_FORMAT_R8G8B8A8_UNORM,
2392 DXGI_FORMAT_R8G8B8A8_UNORM,
2393 DXGI_FORMAT_R8G8B8A8_UNORM,
2394 DXGI_FORMAT_R8G8B8A8_UNORM,
2395 DXGI_FORMAT_UNKNOWN,
2396 DXGI_FORMAT_R8G8B8A8_UNORM,
2397 GL_RGBA8,
2398 nullptr);
2399 return info;
2400 }
2401 case GL_RGBA16F:
2402 {
2403 static constexpr Format info(GL_RGBA16F,
2404 angle::FormatID::R16G16B16A16_FLOAT,
2405 DXGI_FORMAT_R16G16B16A16_FLOAT,
2406 DXGI_FORMAT_R16G16B16A16_FLOAT,
2407 DXGI_FORMAT_R16G16B16A16_FLOAT,
2408 DXGI_FORMAT_R16G16B16A16_FLOAT,
2409 DXGI_FORMAT_UNKNOWN,
2410 DXGI_FORMAT_R16G16B16A16_FLOAT,
2411 GL_RGBA16F,
2412 nullptr);
2413 return info;
2414 }
2415 case GL_RGBA16I:
2416 {
2417 static constexpr Format info(GL_RGBA16I,
2418 angle::FormatID::R16G16B16A16_SINT,
2419 DXGI_FORMAT_R16G16B16A16_SINT,
2420 DXGI_FORMAT_R16G16B16A16_SINT,
2421 DXGI_FORMAT_R16G16B16A16_SINT,
2422 DXGI_FORMAT_R16G16B16A16_SINT,
2423 DXGI_FORMAT_UNKNOWN,
2424 DXGI_FORMAT_R16G16B16A16_SINT,
2425 GL_RGBA16I,
2426 nullptr);
2427 return info;
2428 }
2429 case GL_RGBA16UI:
2430 {
2431 static constexpr Format info(GL_RGBA16UI,
2432 angle::FormatID::R16G16B16A16_UINT,
2433 DXGI_FORMAT_R16G16B16A16_UINT,
2434 DXGI_FORMAT_R16G16B16A16_UINT,
2435 DXGI_FORMAT_R16G16B16A16_UINT,
2436 DXGI_FORMAT_R16G16B16A16_UINT,
2437 DXGI_FORMAT_UNKNOWN,
2438 DXGI_FORMAT_R16G16B16A16_UINT,
2439 GL_RGBA16UI,
2440 nullptr);
2441 return info;
2442 }
2443 case GL_RGBA16_EXT:
2444 {
2445 static constexpr Format info(GL_RGBA16_EXT,
2446 angle::FormatID::R16G16B16A16_UNORM,
2447 DXGI_FORMAT_R16G16B16A16_UNORM,
2448 DXGI_FORMAT_R16G16B16A16_UNORM,
2449 DXGI_FORMAT_UNKNOWN,
2450 DXGI_FORMAT_R16G16B16A16_UNORM,
2451 DXGI_FORMAT_UNKNOWN,
2452 DXGI_FORMAT_R16G16B16A16_UNORM,
2453 GL_RGBA16_EXT,
2454 nullptr);
2455 return info;
2456 }
2457 case GL_RGBA16_SNORM_EXT:
2458 {
2459 static constexpr Format info(GL_RGBA16_SNORM_EXT,
2460 angle::FormatID::R16G16B16A16_SNORM,
2461 DXGI_FORMAT_R16G16B16A16_SNORM,
2462 DXGI_FORMAT_R16G16B16A16_SNORM,
2463 DXGI_FORMAT_UNKNOWN,
2464 DXGI_FORMAT_UNKNOWN,
2465 DXGI_FORMAT_UNKNOWN,
2466 DXGI_FORMAT_R16G16B16A16_SNORM,
2467 GL_RGBA16_SNORM_EXT,
2468 nullptr);
2469 return info;
2470 }
2471 case GL_RGBA32F:
2472 {
2473 static constexpr Format info(GL_RGBA32F,
2474 angle::FormatID::R32G32B32A32_FLOAT,
2475 DXGI_FORMAT_R32G32B32A32_FLOAT,
2476 DXGI_FORMAT_R32G32B32A32_FLOAT,
2477 DXGI_FORMAT_R32G32B32A32_FLOAT,
2478 DXGI_FORMAT_R32G32B32A32_FLOAT,
2479 DXGI_FORMAT_UNKNOWN,
2480 DXGI_FORMAT_R32G32B32A32_FLOAT,
2481 GL_RGBA32F,
2482 nullptr);
2483 return info;
2484 }
2485 case GL_RGBA32I:
2486 {
2487 static constexpr Format info(GL_RGBA32I,
2488 angle::FormatID::R32G32B32A32_SINT,
2489 DXGI_FORMAT_R32G32B32A32_SINT,
2490 DXGI_FORMAT_R32G32B32A32_SINT,
2491 DXGI_FORMAT_R32G32B32A32_SINT,
2492 DXGI_FORMAT_R32G32B32A32_SINT,
2493 DXGI_FORMAT_UNKNOWN,
2494 DXGI_FORMAT_R32G32B32A32_SINT,
2495 GL_RGBA32I,
2496 nullptr);
2497 return info;
2498 }
2499 case GL_RGBA32UI:
2500 {
2501 static constexpr Format info(GL_RGBA32UI,
2502 angle::FormatID::R32G32B32A32_UINT,
2503 DXGI_FORMAT_R32G32B32A32_UINT,
2504 DXGI_FORMAT_R32G32B32A32_UINT,
2505 DXGI_FORMAT_R32G32B32A32_UINT,
2506 DXGI_FORMAT_R32G32B32A32_UINT,
2507 DXGI_FORMAT_UNKNOWN,
2508 DXGI_FORMAT_R32G32B32A32_UINT,
2509 GL_RGBA32UI,
2510 nullptr);
2511 return info;
2512 }
2513 case GL_RGBA4:
2514 {
2515 if (SupportsFormat(DXGI_FORMAT_B4G4R4A4_UNORM, deviceCaps))
2516 {
2517 static constexpr Format info(GL_RGBA4,
2518 angle::FormatID::B4G4R4A4_UNORM,
2519 DXGI_FORMAT_B4G4R4A4_UNORM,
2520 DXGI_FORMAT_B4G4R4A4_UNORM,
2521 DXGI_FORMAT_UNKNOWN,
2522 DXGI_FORMAT_B4G4R4A4_UNORM,
2523 DXGI_FORMAT_UNKNOWN,
2524 DXGI_FORMAT_B4G4R4A4_UNORM,
2525 GL_RGBA4,
2526 nullptr);
2527 return info;
2528 }
2529 else
2530 {
2531 static constexpr Format info(GL_RGBA4,
2532 angle::FormatID::R8G8B8A8_UNORM,
2533 DXGI_FORMAT_R8G8B8A8_UNORM,
2534 DXGI_FORMAT_R8G8B8A8_UNORM,
2535 DXGI_FORMAT_R8G8B8A8_UNORM,
2536 DXGI_FORMAT_R8G8B8A8_UNORM,
2537 DXGI_FORMAT_UNKNOWN,
2538 DXGI_FORMAT_R8G8B8A8_UNORM,
2539 GL_RGBA8,
2540 nullptr);
2541 return info;
2542 }
2543 }
2544 case GL_RGBA8:
2545 {
2546 static constexpr Format info(GL_RGBA8,
2547 angle::FormatID::R8G8B8A8_UNORM,
2548 DXGI_FORMAT_R8G8B8A8_UNORM,
2549 DXGI_FORMAT_R8G8B8A8_UNORM,
2550 DXGI_FORMAT_R8G8B8A8_UNORM,
2551 DXGI_FORMAT_R8G8B8A8_UNORM,
2552 DXGI_FORMAT_UNKNOWN,
2553 DXGI_FORMAT_R8G8B8A8_UNORM,
2554 GL_RGBA8,
2555 nullptr);
2556 return info;
2557 }
2558 case GL_RGBA8I:
2559 {
2560 static constexpr Format info(GL_RGBA8I,
2561 angle::FormatID::R8G8B8A8_SINT,
2562 DXGI_FORMAT_R8G8B8A8_SINT,
2563 DXGI_FORMAT_R8G8B8A8_SINT,
2564 DXGI_FORMAT_R8G8B8A8_SINT,
2565 DXGI_FORMAT_R8G8B8A8_SINT,
2566 DXGI_FORMAT_UNKNOWN,
2567 DXGI_FORMAT_R8G8B8A8_SINT,
2568 GL_RGBA8I,
2569 nullptr);
2570 return info;
2571 }
2572 case GL_RGBA8UI:
2573 {
2574 static constexpr Format info(GL_RGBA8UI,
2575 angle::FormatID::R8G8B8A8_UINT,
2576 DXGI_FORMAT_R8G8B8A8_UINT,
2577 DXGI_FORMAT_R8G8B8A8_UINT,
2578 DXGI_FORMAT_R8G8B8A8_UINT,
2579 DXGI_FORMAT_R8G8B8A8_UINT,
2580 DXGI_FORMAT_UNKNOWN,
2581 DXGI_FORMAT_R8G8B8A8_UINT,
2582 GL_RGBA8UI,
2583 nullptr);
2584 return info;
2585 }
2586 case GL_RGBA8_SNORM:
2587 {
2588 static constexpr Format info(GL_RGBA8_SNORM,
2589 angle::FormatID::R8G8B8A8_SNORM,
2590 DXGI_FORMAT_R8G8B8A8_SNORM,
2591 DXGI_FORMAT_R8G8B8A8_SNORM,
2592 DXGI_FORMAT_R8G8B8A8_SNORM,
2593 DXGI_FORMAT_UNKNOWN,
2594 DXGI_FORMAT_UNKNOWN,
2595 DXGI_FORMAT_R8G8B8A8_SNORM,
2596 GL_RGBA8_SNORM,
2597 nullptr);
2598 return info;
2599 }
2600 case GL_RGBX8_ANGLE:
2601 {
2602 if (OnlyFL11_1Plus(deviceCaps))
2603 {
2604 static constexpr Format info(GL_RGBX8_ANGLE,
2605 angle::FormatID::R8G8B8X8_UNORM,
2606 DXGI_FORMAT_B8G8R8X8_UNORM,
2607 DXGI_FORMAT_B8G8R8X8_UNORM,
2608 DXGI_FORMAT_UNKNOWN,
2609 DXGI_FORMAT_B8G8R8X8_UNORM,
2610 DXGI_FORMAT_UNKNOWN,
2611 DXGI_FORMAT_B8G8R8X8_UNORM,
2612 GL_RGBX8_ANGLE,
2613 nullptr);
2614 return info;
2615 }
2616 else
2617 {
2618 static constexpr Format info(GL_RGBX8_ANGLE,
2619 angle::FormatID::R8G8B8A8_UNORM,
2620 DXGI_FORMAT_R8G8B8A8_UNORM,
2621 DXGI_FORMAT_R8G8B8A8_UNORM,
2622 DXGI_FORMAT_R8G8B8A8_UNORM,
2623 DXGI_FORMAT_R8G8B8A8_UNORM,
2624 DXGI_FORMAT_UNKNOWN,
2625 DXGI_FORMAT_R8G8B8A8_UNORM,
2626 GL_RGBA8,
2627 nullptr);
2628 return info;
2629 }
2630 }
2631 case GL_SR8_EXT:
2632 {
2633 static constexpr Format info(GL_SR8_EXT,
2634 angle::FormatID::NONE,
2635 DXGI_FORMAT_UNKNOWN,
2636 DXGI_FORMAT_UNKNOWN,
2637 DXGI_FORMAT_UNKNOWN,
2638 DXGI_FORMAT_UNKNOWN,
2639 DXGI_FORMAT_UNKNOWN,
2640 DXGI_FORMAT_UNKNOWN,
2641 GL_NONE,
2642 nullptr);
2643 return info;
2644 }
2645 case GL_SRG8_EXT:
2646 {
2647 static constexpr Format info(GL_SRG8_EXT,
2648 angle::FormatID::NONE,
2649 DXGI_FORMAT_UNKNOWN,
2650 DXGI_FORMAT_UNKNOWN,
2651 DXGI_FORMAT_UNKNOWN,
2652 DXGI_FORMAT_UNKNOWN,
2653 DXGI_FORMAT_UNKNOWN,
2654 DXGI_FORMAT_UNKNOWN,
2655 GL_NONE,
2656 nullptr);
2657 return info;
2658 }
2659 case GL_SRGB8:
2660 {
2661 static constexpr Format info(GL_SRGB8,
2662 angle::FormatID::R8G8B8A8_UNORM_SRGB,
2663 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2664 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2665 DXGI_FORMAT_UNKNOWN,
2666 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2667 DXGI_FORMAT_UNKNOWN,
2668 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2669 GL_SRGB8_ALPHA8,
2670 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2671 return info;
2672 }
2673 case GL_SRGB8_ALPHA8:
2674 {
2675 static constexpr Format info(GL_SRGB8_ALPHA8,
2676 angle::FormatID::R8G8B8A8_UNORM_SRGB,
2677 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2678 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2679 DXGI_FORMAT_UNKNOWN,
2680 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2681 DXGI_FORMAT_UNKNOWN,
2682 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
2683 GL_SRGB8_ALPHA8,
2684 nullptr);
2685 return info;
2686 }
2687 case GL_STENCIL_INDEX8:
2688 {
2689 if (OnlyFL10Plus(deviceCaps))
2690 {
2691 static constexpr Format info(GL_STENCIL_INDEX8,
2692 angle::FormatID::D24_UNORM_S8_UINT,
2693 DXGI_FORMAT_R24G8_TYPELESS,
2694 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
2695 DXGI_FORMAT_UNKNOWN,
2696 DXGI_FORMAT_UNKNOWN,
2697 DXGI_FORMAT_D24_UNORM_S8_UINT,
2698 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
2699 GL_RGBA32F,
2700 nullptr);
2701 return info;
2702 }
2703 else
2704 {
2705 static constexpr Format info(GL_STENCIL_INDEX8,
2706 angle::FormatID::D24_UNORM_S8_UINT,
2707 DXGI_FORMAT_D24_UNORM_S8_UINT,
2708 DXGI_FORMAT_UNKNOWN,
2709 DXGI_FORMAT_UNKNOWN,
2710 DXGI_FORMAT_UNKNOWN,
2711 DXGI_FORMAT_D24_UNORM_S8_UINT,
2712 DXGI_FORMAT_UNKNOWN,
2713 GL_RGBA32F,
2714 nullptr);
2715 return info;
2716 }
2717 }
2718
2719 default:
2720 break;
2721 }
2722 // clang-format on
2723
2724 UNREACHABLE();
2725 static constexpr Format defaultInfo;
2726 return defaultInfo;
2727 }
2728
2729 } // namespace d3d11
2730
2731 } // namespace rx
2732