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 DXGI_FORMAT_UNKNOWN,
47 DXGI_FORMAT_UNKNOWN,
48 DXGI_FORMAT_R16G16B16A16_TYPELESS,
49 GL_RGBA16F,
50 nullptr);
51 return info;
52 }
53 case GL_ALPHA32F_EXT:
54 {
55 static constexpr Format info(GL_ALPHA32F_EXT,
56 angle::FormatID::R32G32B32A32_FLOAT,
57 DXGI_FORMAT_R32G32B32A32_FLOAT,
58 DXGI_FORMAT_R32G32B32A32_FLOAT,
59 DXGI_FORMAT_R32G32B32A32_FLOAT,
60 DXGI_FORMAT_R32G32B32A32_FLOAT,
61 DXGI_FORMAT_UNKNOWN,
62 DXGI_FORMAT_R32G32B32A32_FLOAT,
63 DXGI_FORMAT_UNKNOWN,
64 DXGI_FORMAT_UNKNOWN,
65 DXGI_FORMAT_R32G32B32A32_TYPELESS,
66 GL_RGBA32F,
67 nullptr);
68 return info;
69 }
70 case GL_ALPHA8_EXT:
71 {
72 if (OnlyFL10Plus(deviceCaps))
73 {
74 static constexpr Format info(GL_ALPHA8_EXT,
75 angle::FormatID::A8_UNORM,
76 DXGI_FORMAT_A8_UNORM,
77 DXGI_FORMAT_A8_UNORM,
78 DXGI_FORMAT_UNKNOWN,
79 DXGI_FORMAT_A8_UNORM,
80 DXGI_FORMAT_UNKNOWN,
81 DXGI_FORMAT_A8_UNORM,
82 DXGI_FORMAT_UNKNOWN,
83 DXGI_FORMAT_UNKNOWN,
84 DXGI_FORMAT_UNKNOWN,
85 GL_RGBA8,
86 nullptr);
87 return info;
88 }
89 else
90 {
91 static constexpr Format info(GL_ALPHA8_EXT,
92 angle::FormatID::R8G8B8A8_UNORM,
93 DXGI_FORMAT_R8G8B8A8_UNORM,
94 DXGI_FORMAT_R8G8B8A8_UNORM,
95 DXGI_FORMAT_R8G8B8A8_UNORM,
96 DXGI_FORMAT_R8G8B8A8_UNORM,
97 DXGI_FORMAT_UNKNOWN,
98 DXGI_FORMAT_R8G8B8A8_UNORM,
99 DXGI_FORMAT_UNKNOWN,
100 DXGI_FORMAT_UNKNOWN,
101 DXGI_FORMAT_R8G8B8A8_TYPELESS,
102 GL_RGBA8,
103 nullptr);
104 return info;
105 }
106 }
107 case GL_BGR10_A2_ANGLEX:
108 {
109 static constexpr Format info(GL_BGR10_A2_ANGLEX,
110 angle::FormatID::B10G10R10A2_UNORM,
111 DXGI_FORMAT_R10G10B10A2_UNORM,
112 DXGI_FORMAT_R10G10B10A2_UNORM,
113 DXGI_FORMAT_UNKNOWN,
114 DXGI_FORMAT_R10G10B10A2_UNORM,
115 DXGI_FORMAT_UNKNOWN,
116 DXGI_FORMAT_R10G10B10A2_UNORM,
117 DXGI_FORMAT_UNKNOWN,
118 DXGI_FORMAT_UNKNOWN,
119 DXGI_FORMAT_R10G10B10A2_TYPELESS,
120 GL_RGBA16_EXT,
121 nullptr);
122 return info;
123 }
124 case GL_BGR565_ANGLEX:
125 {
126 if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
127 {
128 static constexpr Format info(GL_BGR565_ANGLEX,
129 angle::FormatID::B5G6R5_UNORM,
130 DXGI_FORMAT_B5G6R5_UNORM,
131 DXGI_FORMAT_B5G6R5_UNORM,
132 DXGI_FORMAT_UNKNOWN,
133 DXGI_FORMAT_B5G6R5_UNORM,
134 DXGI_FORMAT_UNKNOWN,
135 DXGI_FORMAT_B5G6R5_UNORM,
136 DXGI_FORMAT_UNKNOWN,
137 DXGI_FORMAT_UNKNOWN,
138 DXGI_FORMAT_UNKNOWN,
139 GL_RGBA8,
140 nullptr);
141 return info;
142 }
143 else
144 {
145 static constexpr Format info(GL_BGR565_ANGLEX,
146 angle::FormatID::R8G8B8A8_UNORM,
147 DXGI_FORMAT_R8G8B8A8_UNORM,
148 DXGI_FORMAT_R8G8B8A8_UNORM,
149 DXGI_FORMAT_R8G8B8A8_UNORM,
150 DXGI_FORMAT_R8G8B8A8_UNORM,
151 DXGI_FORMAT_UNKNOWN,
152 DXGI_FORMAT_R8G8B8A8_UNORM,
153 DXGI_FORMAT_UNKNOWN,
154 DXGI_FORMAT_UNKNOWN,
155 DXGI_FORMAT_R8G8B8A8_TYPELESS,
156 GL_RGBA8,
157 nullptr);
158 return info;
159 }
160 }
161 case GL_BGR5_A1_ANGLEX:
162 {
163 static constexpr Format info(GL_BGR5_A1_ANGLEX,
164 angle::FormatID::B8G8R8A8_UNORM,
165 DXGI_FORMAT_B8G8R8A8_UNORM,
166 DXGI_FORMAT_B8G8R8A8_UNORM,
167 DXGI_FORMAT_UNKNOWN,
168 DXGI_FORMAT_B8G8R8A8_UNORM,
169 DXGI_FORMAT_UNKNOWN,
170 DXGI_FORMAT_B8G8R8A8_UNORM,
171 DXGI_FORMAT_UNKNOWN,
172 DXGI_FORMAT_UNKNOWN,
173 DXGI_FORMAT_B8G8R8A8_TYPELESS,
174 GL_BGRA8_EXT,
175 nullptr);
176 return info;
177 }
178 case GL_BGRA4_ANGLEX:
179 {
180 static constexpr Format info(GL_BGRA4_ANGLEX,
181 angle::FormatID::B8G8R8A8_UNORM,
182 DXGI_FORMAT_B8G8R8A8_UNORM,
183 DXGI_FORMAT_B8G8R8A8_UNORM,
184 DXGI_FORMAT_UNKNOWN,
185 DXGI_FORMAT_B8G8R8A8_UNORM,
186 DXGI_FORMAT_UNKNOWN,
187 DXGI_FORMAT_B8G8R8A8_UNORM,
188 DXGI_FORMAT_UNKNOWN,
189 DXGI_FORMAT_UNKNOWN,
190 DXGI_FORMAT_B8G8R8A8_TYPELESS,
191 GL_BGRA8_EXT,
192 nullptr);
193 return info;
194 }
195 case GL_BGRA8_EXT:
196 {
197 static constexpr Format info(GL_BGRA8_EXT,
198 angle::FormatID::B8G8R8A8_UNORM,
199 DXGI_FORMAT_B8G8R8A8_UNORM,
200 DXGI_FORMAT_B8G8R8A8_UNORM,
201 DXGI_FORMAT_UNKNOWN,
202 DXGI_FORMAT_B8G8R8A8_UNORM,
203 DXGI_FORMAT_UNKNOWN,
204 DXGI_FORMAT_B8G8R8A8_UNORM,
205 DXGI_FORMAT_UNKNOWN,
206 DXGI_FORMAT_UNKNOWN,
207 DXGI_FORMAT_B8G8R8A8_TYPELESS,
208 GL_BGRA8_EXT,
209 nullptr);
210 return info;
211 }
212 case GL_BGRA8_SRGB_ANGLEX:
213 {
214 static constexpr Format info(GL_BGRA8_SRGB_ANGLEX,
215 angle::FormatID::B8G8R8A8_UNORM_SRGB,
216 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
217 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
218 DXGI_FORMAT_UNKNOWN,
219 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
220 DXGI_FORMAT_UNKNOWN,
221 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
222 DXGI_FORMAT_UNKNOWN,
223 DXGI_FORMAT_B8G8R8A8_UNORM,
224 DXGI_FORMAT_B8G8R8A8_TYPELESS,
225 GL_BGRA8_SRGB_ANGLEX,
226 nullptr);
227 return info;
228 }
229 case GL_BGRX8_ANGLEX:
230 {
231 if (OnlyFL11_1Plus(deviceCaps))
232 {
233 static constexpr Format info(GL_BGRX8_ANGLEX,
234 angle::FormatID::B8G8R8X8_UNORM,
235 DXGI_FORMAT_B8G8R8X8_UNORM,
236 DXGI_FORMAT_B8G8R8X8_UNORM,
237 DXGI_FORMAT_UNKNOWN,
238 DXGI_FORMAT_B8G8R8X8_UNORM,
239 DXGI_FORMAT_UNKNOWN,
240 DXGI_FORMAT_B8G8R8X8_UNORM,
241 DXGI_FORMAT_UNKNOWN,
242 DXGI_FORMAT_UNKNOWN,
243 DXGI_FORMAT_B8G8R8X8_TYPELESS,
244 GL_BGRX8_ANGLEX,
245 nullptr);
246 return info;
247 }
248 else
249 {
250 static constexpr Format info(GL_BGRX8_ANGLEX,
251 angle::FormatID::R8G8B8A8_UNORM,
252 DXGI_FORMAT_R8G8B8A8_UNORM,
253 DXGI_FORMAT_R8G8B8A8_UNORM,
254 DXGI_FORMAT_R8G8B8A8_UNORM,
255 DXGI_FORMAT_R8G8B8A8_UNORM,
256 DXGI_FORMAT_UNKNOWN,
257 DXGI_FORMAT_R8G8B8A8_UNORM,
258 DXGI_FORMAT_UNKNOWN,
259 DXGI_FORMAT_UNKNOWN,
260 DXGI_FORMAT_R8G8B8A8_TYPELESS,
261 GL_RGBA8,
262 nullptr);
263 return info;
264 }
265 }
266 case GL_BGRX8_SRGB_ANGLEX:
267 {
268 if (OnlyFL11_1Plus(deviceCaps))
269 {
270 static constexpr Format info(GL_BGRX8_SRGB_ANGLEX,
271 angle::FormatID::B8G8R8X8_UNORM_SRGB,
272 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
273 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
274 DXGI_FORMAT_UNKNOWN,
275 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
276 DXGI_FORMAT_UNKNOWN,
277 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
278 DXGI_FORMAT_UNKNOWN,
279 DXGI_FORMAT_B8G8R8X8_UNORM,
280 DXGI_FORMAT_B8G8R8X8_TYPELESS,
281 GL_BGRX8_SRGB_ANGLEX,
282 nullptr);
283 return info;
284 }
285 else
286 {
287 static constexpr Format info(GL_BGRX8_SRGB_ANGLEX,
288 angle::FormatID::R8G8B8A8_UNORM,
289 DXGI_FORMAT_R8G8B8A8_UNORM,
290 DXGI_FORMAT_R8G8B8A8_UNORM,
291 DXGI_FORMAT_R8G8B8A8_UNORM,
292 DXGI_FORMAT_R8G8B8A8_UNORM,
293 DXGI_FORMAT_UNKNOWN,
294 DXGI_FORMAT_R8G8B8A8_UNORM,
295 DXGI_FORMAT_UNKNOWN,
296 DXGI_FORMAT_UNKNOWN,
297 DXGI_FORMAT_R8G8B8A8_TYPELESS,
298 GL_RGBA8,
299 nullptr);
300 return info;
301 }
302 }
303 case GL_COMPRESSED_R11_EAC:
304 {
305 static constexpr Format info(GL_COMPRESSED_R11_EAC,
306 angle::FormatID::R16_UNORM,
307 DXGI_FORMAT_R16_UNORM,
308 DXGI_FORMAT_R16_UNORM,
309 DXGI_FORMAT_UNKNOWN,
310 DXGI_FORMAT_R16_UNORM,
311 DXGI_FORMAT_UNKNOWN,
312 DXGI_FORMAT_R16_UNORM,
313 DXGI_FORMAT_UNKNOWN,
314 DXGI_FORMAT_UNKNOWN,
315 DXGI_FORMAT_R16_TYPELESS,
316 GL_RGBA16_EXT,
317 nullptr);
318 return info;
319 }
320 case GL_COMPRESSED_RED_GREEN_RGTC2_EXT:
321 {
322 static constexpr Format info(GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
323 angle::FormatID::BC5_RG_UNORM_BLOCK,
324 DXGI_FORMAT_BC5_UNORM,
325 DXGI_FORMAT_BC5_UNORM,
326 DXGI_FORMAT_UNKNOWN,
327 DXGI_FORMAT_UNKNOWN,
328 DXGI_FORMAT_UNKNOWN,
329 DXGI_FORMAT_BC5_UNORM,
330 DXGI_FORMAT_UNKNOWN,
331 DXGI_FORMAT_UNKNOWN,
332 DXGI_FORMAT_UNKNOWN,
333 GL_RGBA8,
334 nullptr);
335 return info;
336 }
337 case GL_COMPRESSED_RED_RGTC1_EXT:
338 {
339 static constexpr Format info(GL_COMPRESSED_RED_RGTC1_EXT,
340 angle::FormatID::BC4_RED_UNORM_BLOCK,
341 DXGI_FORMAT_BC4_UNORM,
342 DXGI_FORMAT_BC4_UNORM,
343 DXGI_FORMAT_UNKNOWN,
344 DXGI_FORMAT_UNKNOWN,
345 DXGI_FORMAT_UNKNOWN,
346 DXGI_FORMAT_BC4_UNORM,
347 DXGI_FORMAT_UNKNOWN,
348 DXGI_FORMAT_UNKNOWN,
349 DXGI_FORMAT_UNKNOWN,
350 GL_RGBA8,
351 nullptr);
352 return info;
353 }
354 case GL_COMPRESSED_RG11_EAC:
355 {
356 static constexpr Format info(GL_COMPRESSED_RG11_EAC,
357 angle::FormatID::R16G16_UNORM,
358 DXGI_FORMAT_R16G16_UNORM,
359 DXGI_FORMAT_R16G16_UNORM,
360 DXGI_FORMAT_UNKNOWN,
361 DXGI_FORMAT_R16G16_UNORM,
362 DXGI_FORMAT_UNKNOWN,
363 DXGI_FORMAT_R16G16_UNORM,
364 DXGI_FORMAT_UNKNOWN,
365 DXGI_FORMAT_UNKNOWN,
366 DXGI_FORMAT_R16G16_TYPELESS,
367 GL_RGBA16_EXT,
368 nullptr);
369 return info;
370 }
371 case GL_COMPRESSED_RGB8_ETC2:
372 {
373 static constexpr Format info(GL_COMPRESSED_RGB8_ETC2,
374 angle::FormatID::R8G8B8A8_UNORM,
375 DXGI_FORMAT_R8G8B8A8_UNORM,
376 DXGI_FORMAT_R8G8B8A8_UNORM,
377 DXGI_FORMAT_R8G8B8A8_UNORM,
378 DXGI_FORMAT_R8G8B8A8_UNORM,
379 DXGI_FORMAT_UNKNOWN,
380 DXGI_FORMAT_R8G8B8A8_UNORM,
381 DXGI_FORMAT_UNKNOWN,
382 DXGI_FORMAT_UNKNOWN,
383 DXGI_FORMAT_R8G8B8A8_TYPELESS,
384 GL_RGBA8,
385 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
386 return info;
387 }
388 case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE:
389 {
390 static constexpr Format info(GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE,
391 angle::FormatID::BC1_RGB_UNORM_BLOCK,
392 DXGI_FORMAT_BC1_UNORM,
393 DXGI_FORMAT_BC1_UNORM,
394 DXGI_FORMAT_UNKNOWN,
395 DXGI_FORMAT_UNKNOWN,
396 DXGI_FORMAT_UNKNOWN,
397 DXGI_FORMAT_BC1_UNORM,
398 DXGI_FORMAT_UNKNOWN,
399 DXGI_FORMAT_UNKNOWN,
400 DXGI_FORMAT_UNKNOWN,
401 GL_RGBA8,
402 nullptr);
403 return info;
404 }
405 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
406 {
407 static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
408 angle::FormatID::R8G8B8A8_UNORM,
409 DXGI_FORMAT_R8G8B8A8_UNORM,
410 DXGI_FORMAT_R8G8B8A8_UNORM,
411 DXGI_FORMAT_R8G8B8A8_UNORM,
412 DXGI_FORMAT_R8G8B8A8_UNORM,
413 DXGI_FORMAT_UNKNOWN,
414 DXGI_FORMAT_R8G8B8A8_UNORM,
415 DXGI_FORMAT_UNKNOWN,
416 DXGI_FORMAT_UNKNOWN,
417 DXGI_FORMAT_R8G8B8A8_TYPELESS,
418 GL_RGBA8,
419 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
420 return info;
421 }
422 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
423 {
424 static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
425 angle::FormatID::BC1_RGBA_UNORM_BLOCK,
426 DXGI_FORMAT_BC1_UNORM,
427 DXGI_FORMAT_BC1_UNORM,
428 DXGI_FORMAT_UNKNOWN,
429 DXGI_FORMAT_UNKNOWN,
430 DXGI_FORMAT_UNKNOWN,
431 DXGI_FORMAT_BC1_UNORM,
432 DXGI_FORMAT_UNKNOWN,
433 DXGI_FORMAT_UNKNOWN,
434 DXGI_FORMAT_UNKNOWN,
435 GL_RGBA8,
436 nullptr);
437 return info;
438 }
439 case GL_COMPRESSED_RGBA8_ETC2_EAC:
440 {
441 static constexpr Format info(GL_COMPRESSED_RGBA8_ETC2_EAC,
442 angle::FormatID::R8G8B8A8_UNORM,
443 DXGI_FORMAT_R8G8B8A8_UNORM,
444 DXGI_FORMAT_R8G8B8A8_UNORM,
445 DXGI_FORMAT_R8G8B8A8_UNORM,
446 DXGI_FORMAT_R8G8B8A8_UNORM,
447 DXGI_FORMAT_UNKNOWN,
448 DXGI_FORMAT_R8G8B8A8_UNORM,
449 DXGI_FORMAT_UNKNOWN,
450 DXGI_FORMAT_UNKNOWN,
451 DXGI_FORMAT_R8G8B8A8_TYPELESS,
452 GL_RGBA8,
453 nullptr);
454 return info;
455 }
456 case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:
457 {
458 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
459 angle::FormatID::NONE,
460 DXGI_FORMAT_UNKNOWN,
461 DXGI_FORMAT_UNKNOWN,
462 DXGI_FORMAT_UNKNOWN,
463 DXGI_FORMAT_UNKNOWN,
464 DXGI_FORMAT_UNKNOWN,
465 DXGI_FORMAT_UNKNOWN,
466 DXGI_FORMAT_UNKNOWN,
467 DXGI_FORMAT_UNKNOWN,
468 DXGI_FORMAT_UNKNOWN,
469 GL_NONE,
470 nullptr);
471 return info;
472 }
473 case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:
474 {
475 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
476 angle::FormatID::NONE,
477 DXGI_FORMAT_UNKNOWN,
478 DXGI_FORMAT_UNKNOWN,
479 DXGI_FORMAT_UNKNOWN,
480 DXGI_FORMAT_UNKNOWN,
481 DXGI_FORMAT_UNKNOWN,
482 DXGI_FORMAT_UNKNOWN,
483 DXGI_FORMAT_UNKNOWN,
484 DXGI_FORMAT_UNKNOWN,
485 DXGI_FORMAT_UNKNOWN,
486 GL_NONE,
487 nullptr);
488 return info;
489 }
490 case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:
491 {
492 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
493 angle::FormatID::NONE,
494 DXGI_FORMAT_UNKNOWN,
495 DXGI_FORMAT_UNKNOWN,
496 DXGI_FORMAT_UNKNOWN,
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_10x8_KHR:
508 {
509 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x8_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 DXGI_FORMAT_UNKNOWN,
518 DXGI_FORMAT_UNKNOWN,
519 DXGI_FORMAT_UNKNOWN,
520 GL_NONE,
521 nullptr);
522 return info;
523 }
524 case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:
525 {
526 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
527 angle::FormatID::NONE,
528 DXGI_FORMAT_UNKNOWN,
529 DXGI_FORMAT_UNKNOWN,
530 DXGI_FORMAT_UNKNOWN,
531 DXGI_FORMAT_UNKNOWN,
532 DXGI_FORMAT_UNKNOWN,
533 DXGI_FORMAT_UNKNOWN,
534 DXGI_FORMAT_UNKNOWN,
535 DXGI_FORMAT_UNKNOWN,
536 DXGI_FORMAT_UNKNOWN,
537 GL_NONE,
538 nullptr);
539 return info;
540 }
541 case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:
542 {
543 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
544 angle::FormatID::NONE,
545 DXGI_FORMAT_UNKNOWN,
546 DXGI_FORMAT_UNKNOWN,
547 DXGI_FORMAT_UNKNOWN,
548 DXGI_FORMAT_UNKNOWN,
549 DXGI_FORMAT_UNKNOWN,
550 DXGI_FORMAT_UNKNOWN,
551 DXGI_FORMAT_UNKNOWN,
552 DXGI_FORMAT_UNKNOWN,
553 DXGI_FORMAT_UNKNOWN,
554 GL_NONE,
555 nullptr);
556 return info;
557 }
558 case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:
559 {
560 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_3x3x3_OES,
561 angle::FormatID::NONE,
562 DXGI_FORMAT_UNKNOWN,
563 DXGI_FORMAT_UNKNOWN,
564 DXGI_FORMAT_UNKNOWN,
565 DXGI_FORMAT_UNKNOWN,
566 DXGI_FORMAT_UNKNOWN,
567 DXGI_FORMAT_UNKNOWN,
568 DXGI_FORMAT_UNKNOWN,
569 DXGI_FORMAT_UNKNOWN,
570 DXGI_FORMAT_UNKNOWN,
571 GL_NONE,
572 nullptr);
573 return info;
574 }
575 case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:
576 {
577 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x3x3_OES,
578 angle::FormatID::NONE,
579 DXGI_FORMAT_UNKNOWN,
580 DXGI_FORMAT_UNKNOWN,
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 DXGI_FORMAT_UNKNOWN,
588 GL_NONE,
589 nullptr);
590 return info;
591 }
592 case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
593 {
594 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
595 angle::FormatID::NONE,
596 DXGI_FORMAT_UNKNOWN,
597 DXGI_FORMAT_UNKNOWN,
598 DXGI_FORMAT_UNKNOWN,
599 DXGI_FORMAT_UNKNOWN,
600 DXGI_FORMAT_UNKNOWN,
601 DXGI_FORMAT_UNKNOWN,
602 DXGI_FORMAT_UNKNOWN,
603 DXGI_FORMAT_UNKNOWN,
604 DXGI_FORMAT_UNKNOWN,
605 GL_NONE,
606 nullptr);
607 return info;
608 }
609 case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:
610 {
611 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4x3_OES,
612 angle::FormatID::NONE,
613 DXGI_FORMAT_UNKNOWN,
614 DXGI_FORMAT_UNKNOWN,
615 DXGI_FORMAT_UNKNOWN,
616 DXGI_FORMAT_UNKNOWN,
617 DXGI_FORMAT_UNKNOWN,
618 DXGI_FORMAT_UNKNOWN,
619 DXGI_FORMAT_UNKNOWN,
620 DXGI_FORMAT_UNKNOWN,
621 DXGI_FORMAT_UNKNOWN,
622 GL_NONE,
623 nullptr);
624 return info;
625 }
626 case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:
627 {
628 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4x4_OES,
629 angle::FormatID::NONE,
630 DXGI_FORMAT_UNKNOWN,
631 DXGI_FORMAT_UNKNOWN,
632 DXGI_FORMAT_UNKNOWN,
633 DXGI_FORMAT_UNKNOWN,
634 DXGI_FORMAT_UNKNOWN,
635 DXGI_FORMAT_UNKNOWN,
636 DXGI_FORMAT_UNKNOWN,
637 DXGI_FORMAT_UNKNOWN,
638 DXGI_FORMAT_UNKNOWN,
639 GL_NONE,
640 nullptr);
641 return info;
642 }
643 case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
644 {
645 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
646 angle::FormatID::NONE,
647 DXGI_FORMAT_UNKNOWN,
648 DXGI_FORMAT_UNKNOWN,
649 DXGI_FORMAT_UNKNOWN,
650 DXGI_FORMAT_UNKNOWN,
651 DXGI_FORMAT_UNKNOWN,
652 DXGI_FORMAT_UNKNOWN,
653 DXGI_FORMAT_UNKNOWN,
654 DXGI_FORMAT_UNKNOWN,
655 DXGI_FORMAT_UNKNOWN,
656 GL_NONE,
657 nullptr);
658 return info;
659 }
660 case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:
661 {
662 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x4x4_OES,
663 angle::FormatID::NONE,
664 DXGI_FORMAT_UNKNOWN,
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 DXGI_FORMAT_UNKNOWN,
672 DXGI_FORMAT_UNKNOWN,
673 GL_NONE,
674 nullptr);
675 return info;
676 }
677 case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
678 {
679 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
680 angle::FormatID::NONE,
681 DXGI_FORMAT_UNKNOWN,
682 DXGI_FORMAT_UNKNOWN,
683 DXGI_FORMAT_UNKNOWN,
684 DXGI_FORMAT_UNKNOWN,
685 DXGI_FORMAT_UNKNOWN,
686 DXGI_FORMAT_UNKNOWN,
687 DXGI_FORMAT_UNKNOWN,
688 DXGI_FORMAT_UNKNOWN,
689 DXGI_FORMAT_UNKNOWN,
690 GL_NONE,
691 nullptr);
692 return info;
693 }
694 case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:
695 {
696 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5x4_OES,
697 angle::FormatID::NONE,
698 DXGI_FORMAT_UNKNOWN,
699 DXGI_FORMAT_UNKNOWN,
700 DXGI_FORMAT_UNKNOWN,
701 DXGI_FORMAT_UNKNOWN,
702 DXGI_FORMAT_UNKNOWN,
703 DXGI_FORMAT_UNKNOWN,
704 DXGI_FORMAT_UNKNOWN,
705 DXGI_FORMAT_UNKNOWN,
706 DXGI_FORMAT_UNKNOWN,
707 GL_NONE,
708 nullptr);
709 return info;
710 }
711 case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:
712 {
713 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5x5_OES,
714 angle::FormatID::NONE,
715 DXGI_FORMAT_UNKNOWN,
716 DXGI_FORMAT_UNKNOWN,
717 DXGI_FORMAT_UNKNOWN,
718 DXGI_FORMAT_UNKNOWN,
719 DXGI_FORMAT_UNKNOWN,
720 DXGI_FORMAT_UNKNOWN,
721 DXGI_FORMAT_UNKNOWN,
722 DXGI_FORMAT_UNKNOWN,
723 DXGI_FORMAT_UNKNOWN,
724 GL_NONE,
725 nullptr);
726 return info;
727 }
728 case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:
729 {
730 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
731 angle::FormatID::NONE,
732 DXGI_FORMAT_UNKNOWN,
733 DXGI_FORMAT_UNKNOWN,
734 DXGI_FORMAT_UNKNOWN,
735 DXGI_FORMAT_UNKNOWN,
736 DXGI_FORMAT_UNKNOWN,
737 DXGI_FORMAT_UNKNOWN,
738 DXGI_FORMAT_UNKNOWN,
739 DXGI_FORMAT_UNKNOWN,
740 DXGI_FORMAT_UNKNOWN,
741 GL_NONE,
742 nullptr);
743 return info;
744 }
745 case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:
746 {
747 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x5x5_OES,
748 angle::FormatID::NONE,
749 DXGI_FORMAT_UNKNOWN,
750 DXGI_FORMAT_UNKNOWN,
751 DXGI_FORMAT_UNKNOWN,
752 DXGI_FORMAT_UNKNOWN,
753 DXGI_FORMAT_UNKNOWN,
754 DXGI_FORMAT_UNKNOWN,
755 DXGI_FORMAT_UNKNOWN,
756 DXGI_FORMAT_UNKNOWN,
757 DXGI_FORMAT_UNKNOWN,
758 GL_NONE,
759 nullptr);
760 return info;
761 }
762 case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:
763 {
764 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
765 angle::FormatID::NONE,
766 DXGI_FORMAT_UNKNOWN,
767 DXGI_FORMAT_UNKNOWN,
768 DXGI_FORMAT_UNKNOWN,
769 DXGI_FORMAT_UNKNOWN,
770 DXGI_FORMAT_UNKNOWN,
771 DXGI_FORMAT_UNKNOWN,
772 DXGI_FORMAT_UNKNOWN,
773 DXGI_FORMAT_UNKNOWN,
774 DXGI_FORMAT_UNKNOWN,
775 GL_NONE,
776 nullptr);
777 return info;
778 }
779 case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:
780 {
781 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6x5_OES,
782 angle::FormatID::NONE,
783 DXGI_FORMAT_UNKNOWN,
784 DXGI_FORMAT_UNKNOWN,
785 DXGI_FORMAT_UNKNOWN,
786 DXGI_FORMAT_UNKNOWN,
787 DXGI_FORMAT_UNKNOWN,
788 DXGI_FORMAT_UNKNOWN,
789 DXGI_FORMAT_UNKNOWN,
790 DXGI_FORMAT_UNKNOWN,
791 DXGI_FORMAT_UNKNOWN,
792 GL_NONE,
793 nullptr);
794 return info;
795 }
796 case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:
797 {
798 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6x6_OES,
799 angle::FormatID::NONE,
800 DXGI_FORMAT_UNKNOWN,
801 DXGI_FORMAT_UNKNOWN,
802 DXGI_FORMAT_UNKNOWN,
803 DXGI_FORMAT_UNKNOWN,
804 DXGI_FORMAT_UNKNOWN,
805 DXGI_FORMAT_UNKNOWN,
806 DXGI_FORMAT_UNKNOWN,
807 DXGI_FORMAT_UNKNOWN,
808 DXGI_FORMAT_UNKNOWN,
809 GL_NONE,
810 nullptr);
811 return info;
812 }
813 case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
814 {
815 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
816 angle::FormatID::NONE,
817 DXGI_FORMAT_UNKNOWN,
818 DXGI_FORMAT_UNKNOWN,
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 DXGI_FORMAT_UNKNOWN,
826 GL_NONE,
827 nullptr);
828 return info;
829 }
830 case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:
831 {
832 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
833 angle::FormatID::NONE,
834 DXGI_FORMAT_UNKNOWN,
835 DXGI_FORMAT_UNKNOWN,
836 DXGI_FORMAT_UNKNOWN,
837 DXGI_FORMAT_UNKNOWN,
838 DXGI_FORMAT_UNKNOWN,
839 DXGI_FORMAT_UNKNOWN,
840 DXGI_FORMAT_UNKNOWN,
841 DXGI_FORMAT_UNKNOWN,
842 DXGI_FORMAT_UNKNOWN,
843 GL_NONE,
844 nullptr);
845 return info;
846 }
847 case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:
848 {
849 static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
850 angle::FormatID::NONE,
851 DXGI_FORMAT_UNKNOWN,
852 DXGI_FORMAT_UNKNOWN,
853 DXGI_FORMAT_UNKNOWN,
854 DXGI_FORMAT_UNKNOWN,
855 DXGI_FORMAT_UNKNOWN,
856 DXGI_FORMAT_UNKNOWN,
857 DXGI_FORMAT_UNKNOWN,
858 DXGI_FORMAT_UNKNOWN,
859 DXGI_FORMAT_UNKNOWN,
860 GL_NONE,
861 nullptr);
862 return info;
863 }
864 case GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:
865 {
866 static constexpr Format info(GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
867 angle::FormatID::BC7_RGBA_UNORM_BLOCK,
868 DXGI_FORMAT_BC7_UNORM,
869 DXGI_FORMAT_BC7_UNORM,
870 DXGI_FORMAT_UNKNOWN,
871 DXGI_FORMAT_UNKNOWN,
872 DXGI_FORMAT_UNKNOWN,
873 DXGI_FORMAT_BC7_UNORM,
874 DXGI_FORMAT_UNKNOWN,
875 DXGI_FORMAT_UNKNOWN,
876 DXGI_FORMAT_UNKNOWN,
877 GL_RGBA8,
878 nullptr);
879 return info;
880 }
881 case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:
882 {
883 static constexpr Format info(GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
884 angle::FormatID::NONE,
885 DXGI_FORMAT_UNKNOWN,
886 DXGI_FORMAT_UNKNOWN,
887 DXGI_FORMAT_UNKNOWN,
888 DXGI_FORMAT_UNKNOWN,
889 DXGI_FORMAT_UNKNOWN,
890 DXGI_FORMAT_UNKNOWN,
891 DXGI_FORMAT_UNKNOWN,
892 DXGI_FORMAT_UNKNOWN,
893 DXGI_FORMAT_UNKNOWN,
894 GL_NONE,
895 nullptr);
896 return info;
897 }
898 case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:
899 {
900 static constexpr Format info(GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
901 angle::FormatID::NONE,
902 DXGI_FORMAT_UNKNOWN,
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 DXGI_FORMAT_UNKNOWN,
910 DXGI_FORMAT_UNKNOWN,
911 GL_NONE,
912 nullptr);
913 return info;
914 }
915 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
916 {
917 static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
918 angle::FormatID::BC1_RGBA_UNORM_BLOCK,
919 DXGI_FORMAT_BC1_UNORM,
920 DXGI_FORMAT_BC1_UNORM,
921 DXGI_FORMAT_UNKNOWN,
922 DXGI_FORMAT_UNKNOWN,
923 DXGI_FORMAT_UNKNOWN,
924 DXGI_FORMAT_BC1_UNORM,
925 DXGI_FORMAT_UNKNOWN,
926 DXGI_FORMAT_UNKNOWN,
927 DXGI_FORMAT_UNKNOWN,
928 GL_RGBA8,
929 nullptr);
930 return info;
931 }
932 case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
933 {
934 static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,
935 angle::FormatID::BC2_RGBA_UNORM_BLOCK,
936 DXGI_FORMAT_BC2_UNORM,
937 DXGI_FORMAT_BC2_UNORM,
938 DXGI_FORMAT_UNKNOWN,
939 DXGI_FORMAT_UNKNOWN,
940 DXGI_FORMAT_UNKNOWN,
941 DXGI_FORMAT_BC2_UNORM,
942 DXGI_FORMAT_UNKNOWN,
943 DXGI_FORMAT_UNKNOWN,
944 DXGI_FORMAT_UNKNOWN,
945 GL_RGBA8,
946 nullptr);
947 return info;
948 }
949 case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
950 {
951 static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,
952 angle::FormatID::BC3_RGBA_UNORM_BLOCK,
953 DXGI_FORMAT_BC3_UNORM,
954 DXGI_FORMAT_BC3_UNORM,
955 DXGI_FORMAT_UNKNOWN,
956 DXGI_FORMAT_UNKNOWN,
957 DXGI_FORMAT_UNKNOWN,
958 DXGI_FORMAT_BC3_UNORM,
959 DXGI_FORMAT_UNKNOWN,
960 DXGI_FORMAT_UNKNOWN,
961 DXGI_FORMAT_UNKNOWN,
962 GL_RGBA8,
963 nullptr);
964 return info;
965 }
966 case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:
967 {
968 static constexpr Format info(GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,
969 angle::FormatID::BC6H_RGB_SFLOAT_BLOCK,
970 DXGI_FORMAT_BC6H_SF16,
971 DXGI_FORMAT_BC6H_SF16,
972 DXGI_FORMAT_UNKNOWN,
973 DXGI_FORMAT_UNKNOWN,
974 DXGI_FORMAT_UNKNOWN,
975 DXGI_FORMAT_BC6H_SF16,
976 DXGI_FORMAT_UNKNOWN,
977 DXGI_FORMAT_UNKNOWN,
978 DXGI_FORMAT_UNKNOWN,
979 GL_RGBA32F,
980 nullptr);
981 return info;
982 }
983 case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:
984 {
985 static constexpr Format info(GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,
986 angle::FormatID::BC6H_RGB_UFLOAT_BLOCK,
987 DXGI_FORMAT_BC6H_UF16,
988 DXGI_FORMAT_BC6H_UF16,
989 DXGI_FORMAT_UNKNOWN,
990 DXGI_FORMAT_UNKNOWN,
991 DXGI_FORMAT_UNKNOWN,
992 DXGI_FORMAT_BC6H_UF16,
993 DXGI_FORMAT_UNKNOWN,
994 DXGI_FORMAT_UNKNOWN,
995 DXGI_FORMAT_UNKNOWN,
996 GL_RGBA32F,
997 nullptr);
998 return info;
999 }
1000 case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:
1001 {
1002 static constexpr Format info(GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
1003 angle::FormatID::NONE,
1004 DXGI_FORMAT_UNKNOWN,
1005 DXGI_FORMAT_UNKNOWN,
1006 DXGI_FORMAT_UNKNOWN,
1007 DXGI_FORMAT_UNKNOWN,
1008 DXGI_FORMAT_UNKNOWN,
1009 DXGI_FORMAT_UNKNOWN,
1010 DXGI_FORMAT_UNKNOWN,
1011 DXGI_FORMAT_UNKNOWN,
1012 DXGI_FORMAT_UNKNOWN,
1013 GL_NONE,
1014 nullptr);
1015 return info;
1016 }
1017 case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:
1018 {
1019 static constexpr Format info(GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
1020 angle::FormatID::NONE,
1021 DXGI_FORMAT_UNKNOWN,
1022 DXGI_FORMAT_UNKNOWN,
1023 DXGI_FORMAT_UNKNOWN,
1024 DXGI_FORMAT_UNKNOWN,
1025 DXGI_FORMAT_UNKNOWN,
1026 DXGI_FORMAT_UNKNOWN,
1027 DXGI_FORMAT_UNKNOWN,
1028 DXGI_FORMAT_UNKNOWN,
1029 DXGI_FORMAT_UNKNOWN,
1030 GL_NONE,
1031 nullptr);
1032 return info;
1033 }
1034 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
1035 {
1036 static constexpr Format info(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
1037 angle::FormatID::BC1_RGB_UNORM_BLOCK,
1038 DXGI_FORMAT_BC1_UNORM,
1039 DXGI_FORMAT_BC1_UNORM,
1040 DXGI_FORMAT_UNKNOWN,
1041 DXGI_FORMAT_UNKNOWN,
1042 DXGI_FORMAT_UNKNOWN,
1043 DXGI_FORMAT_BC1_UNORM,
1044 DXGI_FORMAT_UNKNOWN,
1045 DXGI_FORMAT_UNKNOWN,
1046 DXGI_FORMAT_UNKNOWN,
1047 GL_RGBA8,
1048 nullptr);
1049 return info;
1050 }
1051 case GL_COMPRESSED_SIGNED_R11_EAC:
1052 {
1053 static constexpr Format info(GL_COMPRESSED_SIGNED_R11_EAC,
1054 angle::FormatID::R16_SNORM,
1055 DXGI_FORMAT_R16_SNORM,
1056 DXGI_FORMAT_R16_SNORM,
1057 DXGI_FORMAT_UNKNOWN,
1058 DXGI_FORMAT_R16_SNORM,
1059 DXGI_FORMAT_UNKNOWN,
1060 DXGI_FORMAT_R16_SNORM,
1061 DXGI_FORMAT_UNKNOWN,
1062 DXGI_FORMAT_UNKNOWN,
1063 DXGI_FORMAT_R16_TYPELESS,
1064 GL_RGBA16_SNORM_EXT,
1065 nullptr);
1066 return info;
1067 }
1068 case GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:
1069 {
1070 static constexpr Format info(GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
1071 angle::FormatID::BC5_RG_SNORM_BLOCK,
1072 DXGI_FORMAT_BC5_SNORM,
1073 DXGI_FORMAT_BC5_SNORM,
1074 DXGI_FORMAT_UNKNOWN,
1075 DXGI_FORMAT_UNKNOWN,
1076 DXGI_FORMAT_UNKNOWN,
1077 DXGI_FORMAT_BC5_SNORM,
1078 DXGI_FORMAT_UNKNOWN,
1079 DXGI_FORMAT_UNKNOWN,
1080 DXGI_FORMAT_UNKNOWN,
1081 GL_RGBA8_SNORM,
1082 nullptr);
1083 return info;
1084 }
1085 case GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:
1086 {
1087 static constexpr Format info(GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
1088 angle::FormatID::BC4_RED_SNORM_BLOCK,
1089 DXGI_FORMAT_BC4_SNORM,
1090 DXGI_FORMAT_BC4_SNORM,
1091 DXGI_FORMAT_UNKNOWN,
1092 DXGI_FORMAT_UNKNOWN,
1093 DXGI_FORMAT_UNKNOWN,
1094 DXGI_FORMAT_BC4_SNORM,
1095 DXGI_FORMAT_UNKNOWN,
1096 DXGI_FORMAT_UNKNOWN,
1097 DXGI_FORMAT_UNKNOWN,
1098 GL_RGBA8_SNORM,
1099 nullptr);
1100 return info;
1101 }
1102 case GL_COMPRESSED_SIGNED_RG11_EAC:
1103 {
1104 static constexpr Format info(GL_COMPRESSED_SIGNED_RG11_EAC,
1105 angle::FormatID::R16G16_SNORM,
1106 DXGI_FORMAT_R16G16_SNORM,
1107 DXGI_FORMAT_R16G16_SNORM,
1108 DXGI_FORMAT_UNKNOWN,
1109 DXGI_FORMAT_R16G16_SNORM,
1110 DXGI_FORMAT_UNKNOWN,
1111 DXGI_FORMAT_R16G16_SNORM,
1112 DXGI_FORMAT_UNKNOWN,
1113 DXGI_FORMAT_UNKNOWN,
1114 DXGI_FORMAT_R16G16_TYPELESS,
1115 GL_RGBA16_SNORM_EXT,
1116 nullptr);
1117 return info;
1118 }
1119 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
1120 {
1121 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
1122 angle::FormatID::NONE,
1123 DXGI_FORMAT_UNKNOWN,
1124 DXGI_FORMAT_UNKNOWN,
1125 DXGI_FORMAT_UNKNOWN,
1126 DXGI_FORMAT_UNKNOWN,
1127 DXGI_FORMAT_UNKNOWN,
1128 DXGI_FORMAT_UNKNOWN,
1129 DXGI_FORMAT_UNKNOWN,
1130 DXGI_FORMAT_UNKNOWN,
1131 DXGI_FORMAT_UNKNOWN,
1132 GL_NONE,
1133 nullptr);
1134 return info;
1135 }
1136 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:
1137 {
1138 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
1139 angle::FormatID::NONE,
1140 DXGI_FORMAT_UNKNOWN,
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 DXGI_FORMAT_UNKNOWN,
1148 DXGI_FORMAT_UNKNOWN,
1149 GL_NONE,
1150 nullptr);
1151 return info;
1152 }
1153 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:
1154 {
1155 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
1156 angle::FormatID::NONE,
1157 DXGI_FORMAT_UNKNOWN,
1158 DXGI_FORMAT_UNKNOWN,
1159 DXGI_FORMAT_UNKNOWN,
1160 DXGI_FORMAT_UNKNOWN,
1161 DXGI_FORMAT_UNKNOWN,
1162 DXGI_FORMAT_UNKNOWN,
1163 DXGI_FORMAT_UNKNOWN,
1164 DXGI_FORMAT_UNKNOWN,
1165 DXGI_FORMAT_UNKNOWN,
1166 GL_NONE,
1167 nullptr);
1168 return info;
1169 }
1170 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
1171 {
1172 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
1173 angle::FormatID::NONE,
1174 DXGI_FORMAT_UNKNOWN,
1175 DXGI_FORMAT_UNKNOWN,
1176 DXGI_FORMAT_UNKNOWN,
1177 DXGI_FORMAT_UNKNOWN,
1178 DXGI_FORMAT_UNKNOWN,
1179 DXGI_FORMAT_UNKNOWN,
1180 DXGI_FORMAT_UNKNOWN,
1181 DXGI_FORMAT_UNKNOWN,
1182 DXGI_FORMAT_UNKNOWN,
1183 GL_NONE,
1184 nullptr);
1185 return info;
1186 }
1187 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
1188 {
1189 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
1190 angle::FormatID::NONE,
1191 DXGI_FORMAT_UNKNOWN,
1192 DXGI_FORMAT_UNKNOWN,
1193 DXGI_FORMAT_UNKNOWN,
1194 DXGI_FORMAT_UNKNOWN,
1195 DXGI_FORMAT_UNKNOWN,
1196 DXGI_FORMAT_UNKNOWN,
1197 DXGI_FORMAT_UNKNOWN,
1198 DXGI_FORMAT_UNKNOWN,
1199 DXGI_FORMAT_UNKNOWN,
1200 GL_NONE,
1201 nullptr);
1202 return info;
1203 }
1204 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
1205 {
1206 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
1207 angle::FormatID::NONE,
1208 DXGI_FORMAT_UNKNOWN,
1209 DXGI_FORMAT_UNKNOWN,
1210 DXGI_FORMAT_UNKNOWN,
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_3x3x3_OES:
1222 {
1223 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES,
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 DXGI_FORMAT_UNKNOWN,
1232 DXGI_FORMAT_UNKNOWN,
1233 DXGI_FORMAT_UNKNOWN,
1234 GL_NONE,
1235 nullptr);
1236 return info;
1237 }
1238 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:
1239 {
1240 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES,
1241 angle::FormatID::NONE,
1242 DXGI_FORMAT_UNKNOWN,
1243 DXGI_FORMAT_UNKNOWN,
1244 DXGI_FORMAT_UNKNOWN,
1245 DXGI_FORMAT_UNKNOWN,
1246 DXGI_FORMAT_UNKNOWN,
1247 DXGI_FORMAT_UNKNOWN,
1248 DXGI_FORMAT_UNKNOWN,
1249 DXGI_FORMAT_UNKNOWN,
1250 DXGI_FORMAT_UNKNOWN,
1251 GL_NONE,
1252 nullptr);
1253 return info;
1254 }
1255 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
1256 {
1257 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
1258 angle::FormatID::NONE,
1259 DXGI_FORMAT_UNKNOWN,
1260 DXGI_FORMAT_UNKNOWN,
1261 DXGI_FORMAT_UNKNOWN,
1262 DXGI_FORMAT_UNKNOWN,
1263 DXGI_FORMAT_UNKNOWN,
1264 DXGI_FORMAT_UNKNOWN,
1265 DXGI_FORMAT_UNKNOWN,
1266 DXGI_FORMAT_UNKNOWN,
1267 DXGI_FORMAT_UNKNOWN,
1268 GL_NONE,
1269 nullptr);
1270 return info;
1271 }
1272 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:
1273 {
1274 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES,
1275 angle::FormatID::NONE,
1276 DXGI_FORMAT_UNKNOWN,
1277 DXGI_FORMAT_UNKNOWN,
1278 DXGI_FORMAT_UNKNOWN,
1279 DXGI_FORMAT_UNKNOWN,
1280 DXGI_FORMAT_UNKNOWN,
1281 DXGI_FORMAT_UNKNOWN,
1282 DXGI_FORMAT_UNKNOWN,
1283 DXGI_FORMAT_UNKNOWN,
1284 DXGI_FORMAT_UNKNOWN,
1285 GL_NONE,
1286 nullptr);
1287 return info;
1288 }
1289 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:
1290 {
1291 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES,
1292 angle::FormatID::NONE,
1293 DXGI_FORMAT_UNKNOWN,
1294 DXGI_FORMAT_UNKNOWN,
1295 DXGI_FORMAT_UNKNOWN,
1296 DXGI_FORMAT_UNKNOWN,
1297 DXGI_FORMAT_UNKNOWN,
1298 DXGI_FORMAT_UNKNOWN,
1299 DXGI_FORMAT_UNKNOWN,
1300 DXGI_FORMAT_UNKNOWN,
1301 DXGI_FORMAT_UNKNOWN,
1302 GL_NONE,
1303 nullptr);
1304 return info;
1305 }
1306 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:
1307 {
1308 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
1309 angle::FormatID::NONE,
1310 DXGI_FORMAT_UNKNOWN,
1311 DXGI_FORMAT_UNKNOWN,
1312 DXGI_FORMAT_UNKNOWN,
1313 DXGI_FORMAT_UNKNOWN,
1314 DXGI_FORMAT_UNKNOWN,
1315 DXGI_FORMAT_UNKNOWN,
1316 DXGI_FORMAT_UNKNOWN,
1317 DXGI_FORMAT_UNKNOWN,
1318 DXGI_FORMAT_UNKNOWN,
1319 GL_NONE,
1320 nullptr);
1321 return info;
1322 }
1323 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:
1324 {
1325 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES,
1326 angle::FormatID::NONE,
1327 DXGI_FORMAT_UNKNOWN,
1328 DXGI_FORMAT_UNKNOWN,
1329 DXGI_FORMAT_UNKNOWN,
1330 DXGI_FORMAT_UNKNOWN,
1331 DXGI_FORMAT_UNKNOWN,
1332 DXGI_FORMAT_UNKNOWN,
1333 DXGI_FORMAT_UNKNOWN,
1334 DXGI_FORMAT_UNKNOWN,
1335 DXGI_FORMAT_UNKNOWN,
1336 GL_NONE,
1337 nullptr);
1338 return info;
1339 }
1340 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:
1341 {
1342 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
1343 angle::FormatID::NONE,
1344 DXGI_FORMAT_UNKNOWN,
1345 DXGI_FORMAT_UNKNOWN,
1346 DXGI_FORMAT_UNKNOWN,
1347 DXGI_FORMAT_UNKNOWN,
1348 DXGI_FORMAT_UNKNOWN,
1349 DXGI_FORMAT_UNKNOWN,
1350 DXGI_FORMAT_UNKNOWN,
1351 DXGI_FORMAT_UNKNOWN,
1352 DXGI_FORMAT_UNKNOWN,
1353 GL_NONE,
1354 nullptr);
1355 return info;
1356 }
1357 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:
1358 {
1359 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES,
1360 angle::FormatID::NONE,
1361 DXGI_FORMAT_UNKNOWN,
1362 DXGI_FORMAT_UNKNOWN,
1363 DXGI_FORMAT_UNKNOWN,
1364 DXGI_FORMAT_UNKNOWN,
1365 DXGI_FORMAT_UNKNOWN,
1366 DXGI_FORMAT_UNKNOWN,
1367 DXGI_FORMAT_UNKNOWN,
1368 DXGI_FORMAT_UNKNOWN,
1369 DXGI_FORMAT_UNKNOWN,
1370 GL_NONE,
1371 nullptr);
1372 return info;
1373 }
1374 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:
1375 {
1376 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES,
1377 angle::FormatID::NONE,
1378 DXGI_FORMAT_UNKNOWN,
1379 DXGI_FORMAT_UNKNOWN,
1380 DXGI_FORMAT_UNKNOWN,
1381 DXGI_FORMAT_UNKNOWN,
1382 DXGI_FORMAT_UNKNOWN,
1383 DXGI_FORMAT_UNKNOWN,
1384 DXGI_FORMAT_UNKNOWN,
1385 DXGI_FORMAT_UNKNOWN,
1386 DXGI_FORMAT_UNKNOWN,
1387 GL_NONE,
1388 nullptr);
1389 return info;
1390 }
1391 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:
1392 {
1393 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
1394 angle::FormatID::NONE,
1395 DXGI_FORMAT_UNKNOWN,
1396 DXGI_FORMAT_UNKNOWN,
1397 DXGI_FORMAT_UNKNOWN,
1398 DXGI_FORMAT_UNKNOWN,
1399 DXGI_FORMAT_UNKNOWN,
1400 DXGI_FORMAT_UNKNOWN,
1401 DXGI_FORMAT_UNKNOWN,
1402 DXGI_FORMAT_UNKNOWN,
1403 DXGI_FORMAT_UNKNOWN,
1404 GL_NONE,
1405 nullptr);
1406 return info;
1407 }
1408 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:
1409 {
1410 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES,
1411 angle::FormatID::NONE,
1412 DXGI_FORMAT_UNKNOWN,
1413 DXGI_FORMAT_UNKNOWN,
1414 DXGI_FORMAT_UNKNOWN,
1415 DXGI_FORMAT_UNKNOWN,
1416 DXGI_FORMAT_UNKNOWN,
1417 DXGI_FORMAT_UNKNOWN,
1418 DXGI_FORMAT_UNKNOWN,
1419 DXGI_FORMAT_UNKNOWN,
1420 DXGI_FORMAT_UNKNOWN,
1421 GL_NONE,
1422 nullptr);
1423 return info;
1424 }
1425 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:
1426 {
1427 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
1428 angle::FormatID::NONE,
1429 DXGI_FORMAT_UNKNOWN,
1430 DXGI_FORMAT_UNKNOWN,
1431 DXGI_FORMAT_UNKNOWN,
1432 DXGI_FORMAT_UNKNOWN,
1433 DXGI_FORMAT_UNKNOWN,
1434 DXGI_FORMAT_UNKNOWN,
1435 DXGI_FORMAT_UNKNOWN,
1436 DXGI_FORMAT_UNKNOWN,
1437 DXGI_FORMAT_UNKNOWN,
1438 GL_NONE,
1439 nullptr);
1440 return info;
1441 }
1442 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:
1443 {
1444 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES,
1445 angle::FormatID::NONE,
1446 DXGI_FORMAT_UNKNOWN,
1447 DXGI_FORMAT_UNKNOWN,
1448 DXGI_FORMAT_UNKNOWN,
1449 DXGI_FORMAT_UNKNOWN,
1450 DXGI_FORMAT_UNKNOWN,
1451 DXGI_FORMAT_UNKNOWN,
1452 DXGI_FORMAT_UNKNOWN,
1453 DXGI_FORMAT_UNKNOWN,
1454 DXGI_FORMAT_UNKNOWN,
1455 GL_NONE,
1456 nullptr);
1457 return info;
1458 }
1459 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:
1460 {
1461 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES,
1462 angle::FormatID::NONE,
1463 DXGI_FORMAT_UNKNOWN,
1464 DXGI_FORMAT_UNKNOWN,
1465 DXGI_FORMAT_UNKNOWN,
1466 DXGI_FORMAT_UNKNOWN,
1467 DXGI_FORMAT_UNKNOWN,
1468 DXGI_FORMAT_UNKNOWN,
1469 DXGI_FORMAT_UNKNOWN,
1470 DXGI_FORMAT_UNKNOWN,
1471 DXGI_FORMAT_UNKNOWN,
1472 GL_NONE,
1473 nullptr);
1474 return info;
1475 }
1476 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:
1477 {
1478 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
1479 angle::FormatID::NONE,
1480 DXGI_FORMAT_UNKNOWN,
1481 DXGI_FORMAT_UNKNOWN,
1482 DXGI_FORMAT_UNKNOWN,
1483 DXGI_FORMAT_UNKNOWN,
1484 DXGI_FORMAT_UNKNOWN,
1485 DXGI_FORMAT_UNKNOWN,
1486 DXGI_FORMAT_UNKNOWN,
1487 DXGI_FORMAT_UNKNOWN,
1488 DXGI_FORMAT_UNKNOWN,
1489 GL_NONE,
1490 nullptr);
1491 return info;
1492 }
1493 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:
1494 {
1495 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
1496 angle::FormatID::NONE,
1497 DXGI_FORMAT_UNKNOWN,
1498 DXGI_FORMAT_UNKNOWN,
1499 DXGI_FORMAT_UNKNOWN,
1500 DXGI_FORMAT_UNKNOWN,
1501 DXGI_FORMAT_UNKNOWN,
1502 DXGI_FORMAT_UNKNOWN,
1503 DXGI_FORMAT_UNKNOWN,
1504 DXGI_FORMAT_UNKNOWN,
1505 DXGI_FORMAT_UNKNOWN,
1506 GL_NONE,
1507 nullptr);
1508 return info;
1509 }
1510 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:
1511 {
1512 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
1513 angle::FormatID::NONE,
1514 DXGI_FORMAT_UNKNOWN,
1515 DXGI_FORMAT_UNKNOWN,
1516 DXGI_FORMAT_UNKNOWN,
1517 DXGI_FORMAT_UNKNOWN,
1518 DXGI_FORMAT_UNKNOWN,
1519 DXGI_FORMAT_UNKNOWN,
1520 DXGI_FORMAT_UNKNOWN,
1521 DXGI_FORMAT_UNKNOWN,
1522 DXGI_FORMAT_UNKNOWN,
1523 GL_NONE,
1524 nullptr);
1525 return info;
1526 }
1527 case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
1528 {
1529 static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
1530 angle::FormatID::R8G8B8A8_UNORM_SRGB,
1531 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1532 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1533 DXGI_FORMAT_UNKNOWN,
1534 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1535 DXGI_FORMAT_UNKNOWN,
1536 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1537 DXGI_FORMAT_UNKNOWN,
1538 DXGI_FORMAT_R8G8B8A8_UNORM,
1539 DXGI_FORMAT_R8G8B8A8_TYPELESS,
1540 GL_SRGB8_ALPHA8,
1541 nullptr);
1542 return info;
1543 }
1544 case GL_COMPRESSED_SRGB8_ETC2:
1545 {
1546 static constexpr Format info(GL_COMPRESSED_SRGB8_ETC2,
1547 angle::FormatID::R8G8B8A8_UNORM_SRGB,
1548 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1549 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1550 DXGI_FORMAT_UNKNOWN,
1551 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1552 DXGI_FORMAT_UNKNOWN,
1553 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1554 DXGI_FORMAT_UNKNOWN,
1555 DXGI_FORMAT_R8G8B8A8_UNORM,
1556 DXGI_FORMAT_R8G8B8A8_TYPELESS,
1557 GL_SRGB8_ALPHA8,
1558 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1559 return info;
1560 }
1561 case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE:
1562 {
1563 static constexpr Format info(GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE,
1564 angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
1565 DXGI_FORMAT_BC1_UNORM_SRGB,
1566 DXGI_FORMAT_BC1_UNORM_SRGB,
1567 DXGI_FORMAT_UNKNOWN,
1568 DXGI_FORMAT_UNKNOWN,
1569 DXGI_FORMAT_UNKNOWN,
1570 DXGI_FORMAT_BC1_UNORM_SRGB,
1571 DXGI_FORMAT_UNKNOWN,
1572 DXGI_FORMAT_BC1_UNORM,
1573 DXGI_FORMAT_BC1_TYPELESS,
1574 GL_RGBA8,
1575 nullptr);
1576 return info;
1577 }
1578 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
1579 {
1580 static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
1581 angle::FormatID::R8G8B8A8_UNORM_SRGB,
1582 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1583 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1584 DXGI_FORMAT_UNKNOWN,
1585 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1586 DXGI_FORMAT_UNKNOWN,
1587 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
1588 DXGI_FORMAT_UNKNOWN,
1589 DXGI_FORMAT_R8G8B8A8_UNORM,
1590 DXGI_FORMAT_R8G8B8A8_TYPELESS,
1591 GL_SRGB8_ALPHA8,
1592 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1593 return info;
1594 }
1595 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
1596 {
1597 static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
1598 angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
1599 DXGI_FORMAT_BC1_UNORM_SRGB,
1600 DXGI_FORMAT_BC1_UNORM_SRGB,
1601 DXGI_FORMAT_UNKNOWN,
1602 DXGI_FORMAT_UNKNOWN,
1603 DXGI_FORMAT_UNKNOWN,
1604 DXGI_FORMAT_BC1_UNORM_SRGB,
1605 DXGI_FORMAT_UNKNOWN,
1606 DXGI_FORMAT_BC1_UNORM,
1607 DXGI_FORMAT_BC1_TYPELESS,
1608 GL_RGBA8,
1609 nullptr);
1610 return info;
1611 }
1612 case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:
1613 {
1614 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,
1615 angle::FormatID::BC7_RGBA_UNORM_SRGB_BLOCK,
1616 DXGI_FORMAT_BC7_UNORM_SRGB,
1617 DXGI_FORMAT_BC7_UNORM_SRGB,
1618 DXGI_FORMAT_UNKNOWN,
1619 DXGI_FORMAT_UNKNOWN,
1620 DXGI_FORMAT_UNKNOWN,
1621 DXGI_FORMAT_BC7_UNORM_SRGB,
1622 DXGI_FORMAT_UNKNOWN,
1623 DXGI_FORMAT_BC7_UNORM,
1624 DXGI_FORMAT_BC7_TYPELESS,
1625 GL_SRGB8_ALPHA8,
1626 nullptr);
1627 return info;
1628 }
1629 case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:
1630 {
1631 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT,
1632 angle::FormatID::NONE,
1633 DXGI_FORMAT_UNKNOWN,
1634 DXGI_FORMAT_UNKNOWN,
1635 DXGI_FORMAT_UNKNOWN,
1636 DXGI_FORMAT_UNKNOWN,
1637 DXGI_FORMAT_UNKNOWN,
1638 DXGI_FORMAT_UNKNOWN,
1639 DXGI_FORMAT_UNKNOWN,
1640 DXGI_FORMAT_UNKNOWN,
1641 DXGI_FORMAT_UNKNOWN,
1642 GL_NONE,
1643 nullptr);
1644 return info;
1645 }
1646 case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:
1647 {
1648 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT,
1649 angle::FormatID::NONE,
1650 DXGI_FORMAT_UNKNOWN,
1651 DXGI_FORMAT_UNKNOWN,
1652 DXGI_FORMAT_UNKNOWN,
1653 DXGI_FORMAT_UNKNOWN,
1654 DXGI_FORMAT_UNKNOWN,
1655 DXGI_FORMAT_UNKNOWN,
1656 DXGI_FORMAT_UNKNOWN,
1657 DXGI_FORMAT_UNKNOWN,
1658 DXGI_FORMAT_UNKNOWN,
1659 GL_NONE,
1660 nullptr);
1661 return info;
1662 }
1663 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
1664 {
1665 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
1666 angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
1667 DXGI_FORMAT_BC1_UNORM_SRGB,
1668 DXGI_FORMAT_BC1_UNORM_SRGB,
1669 DXGI_FORMAT_UNKNOWN,
1670 DXGI_FORMAT_UNKNOWN,
1671 DXGI_FORMAT_UNKNOWN,
1672 DXGI_FORMAT_BC1_UNORM_SRGB,
1673 DXGI_FORMAT_UNKNOWN,
1674 DXGI_FORMAT_BC1_UNORM,
1675 DXGI_FORMAT_BC1_TYPELESS,
1676 GL_RGBA8,
1677 nullptr);
1678 return info;
1679 }
1680 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
1681 {
1682 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
1683 angle::FormatID::BC2_RGBA_UNORM_SRGB_BLOCK,
1684 DXGI_FORMAT_BC2_UNORM_SRGB,
1685 DXGI_FORMAT_BC2_UNORM_SRGB,
1686 DXGI_FORMAT_UNKNOWN,
1687 DXGI_FORMAT_UNKNOWN,
1688 DXGI_FORMAT_UNKNOWN,
1689 DXGI_FORMAT_BC2_UNORM_SRGB,
1690 DXGI_FORMAT_UNKNOWN,
1691 DXGI_FORMAT_BC2_UNORM,
1692 DXGI_FORMAT_BC2_TYPELESS,
1693 GL_RGBA8,
1694 nullptr);
1695 return info;
1696 }
1697 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
1698 {
1699 static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
1700 angle::FormatID::BC3_RGBA_UNORM_SRGB_BLOCK,
1701 DXGI_FORMAT_BC3_UNORM_SRGB,
1702 DXGI_FORMAT_BC3_UNORM_SRGB,
1703 DXGI_FORMAT_UNKNOWN,
1704 DXGI_FORMAT_UNKNOWN,
1705 DXGI_FORMAT_UNKNOWN,
1706 DXGI_FORMAT_BC3_UNORM_SRGB,
1707 DXGI_FORMAT_UNKNOWN,
1708 DXGI_FORMAT_BC3_UNORM,
1709 DXGI_FORMAT_BC3_TYPELESS,
1710 GL_RGBA8,
1711 nullptr);
1712 return info;
1713 }
1714 case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:
1715 {
1716 static constexpr Format info(GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT,
1717 angle::FormatID::NONE,
1718 DXGI_FORMAT_UNKNOWN,
1719 DXGI_FORMAT_UNKNOWN,
1720 DXGI_FORMAT_UNKNOWN,
1721 DXGI_FORMAT_UNKNOWN,
1722 DXGI_FORMAT_UNKNOWN,
1723 DXGI_FORMAT_UNKNOWN,
1724 DXGI_FORMAT_UNKNOWN,
1725 DXGI_FORMAT_UNKNOWN,
1726 DXGI_FORMAT_UNKNOWN,
1727 GL_NONE,
1728 nullptr);
1729 return info;
1730 }
1731 case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:
1732 {
1733 static constexpr Format info(GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT,
1734 angle::FormatID::NONE,
1735 DXGI_FORMAT_UNKNOWN,
1736 DXGI_FORMAT_UNKNOWN,
1737 DXGI_FORMAT_UNKNOWN,
1738 DXGI_FORMAT_UNKNOWN,
1739 DXGI_FORMAT_UNKNOWN,
1740 DXGI_FORMAT_UNKNOWN,
1741 DXGI_FORMAT_UNKNOWN,
1742 DXGI_FORMAT_UNKNOWN,
1743 DXGI_FORMAT_UNKNOWN,
1744 GL_NONE,
1745 nullptr);
1746 return info;
1747 }
1748 case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
1749 {
1750 static constexpr Format info(GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
1751 angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
1752 DXGI_FORMAT_BC1_UNORM_SRGB,
1753 DXGI_FORMAT_BC1_UNORM_SRGB,
1754 DXGI_FORMAT_UNKNOWN,
1755 DXGI_FORMAT_UNKNOWN,
1756 DXGI_FORMAT_UNKNOWN,
1757 DXGI_FORMAT_BC1_UNORM_SRGB,
1758 DXGI_FORMAT_UNKNOWN,
1759 DXGI_FORMAT_BC1_UNORM,
1760 DXGI_FORMAT_BC1_TYPELESS,
1761 GL_RGBA8,
1762 nullptr);
1763 return info;
1764 }
1765 case GL_DEPTH24_STENCIL8:
1766 {
1767 if (OnlyFL10Plus(deviceCaps))
1768 {
1769 static constexpr Format info(GL_DEPTH24_STENCIL8,
1770 angle::FormatID::D24_UNORM_S8_UINT,
1771 DXGI_FORMAT_R24G8_TYPELESS,
1772 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1773 DXGI_FORMAT_UNKNOWN,
1774 DXGI_FORMAT_UNKNOWN,
1775 DXGI_FORMAT_D24_UNORM_S8_UINT,
1776 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1777 DXGI_FORMAT_X24_TYPELESS_G8_UINT,
1778 DXGI_FORMAT_UNKNOWN,
1779 DXGI_FORMAT_UNKNOWN,
1780 GL_RGBA32F,
1781 nullptr);
1782 return info;
1783 }
1784 else
1785 {
1786 static constexpr Format info(GL_DEPTH24_STENCIL8,
1787 angle::FormatID::D24_UNORM_S8_UINT,
1788 DXGI_FORMAT_D24_UNORM_S8_UINT,
1789 DXGI_FORMAT_UNKNOWN,
1790 DXGI_FORMAT_UNKNOWN,
1791 DXGI_FORMAT_UNKNOWN,
1792 DXGI_FORMAT_D24_UNORM_S8_UINT,
1793 DXGI_FORMAT_UNKNOWN,
1794 DXGI_FORMAT_UNKNOWN,
1795 DXGI_FORMAT_UNKNOWN,
1796 DXGI_FORMAT_UNKNOWN,
1797 GL_RGBA32F,
1798 nullptr);
1799 return info;
1800 }
1801 }
1802 case GL_DEPTH32F_STENCIL8:
1803 {
1804 static constexpr Format info(GL_DEPTH32F_STENCIL8,
1805 angle::FormatID::D32_FLOAT_S8X24_UINT,
1806 DXGI_FORMAT_R32G8X24_TYPELESS,
1807 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
1808 DXGI_FORMAT_UNKNOWN,
1809 DXGI_FORMAT_UNKNOWN,
1810 DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
1811 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
1812 DXGI_FORMAT_X32_TYPELESS_G8X24_UINT,
1813 DXGI_FORMAT_UNKNOWN,
1814 DXGI_FORMAT_UNKNOWN,
1815 GL_RGBA32F,
1816 nullptr);
1817 return info;
1818 }
1819 case GL_DEPTH_COMPONENT16:
1820 {
1821 if (OnlyFL10Plus(deviceCaps))
1822 {
1823 static constexpr Format info(GL_DEPTH_COMPONENT16,
1824 angle::FormatID::D16_UNORM,
1825 DXGI_FORMAT_R16_TYPELESS,
1826 DXGI_FORMAT_R16_UNORM,
1827 DXGI_FORMAT_UNKNOWN,
1828 DXGI_FORMAT_UNKNOWN,
1829 DXGI_FORMAT_D16_UNORM,
1830 DXGI_FORMAT_R16_UNORM,
1831 DXGI_FORMAT_UNKNOWN,
1832 DXGI_FORMAT_UNKNOWN,
1833 DXGI_FORMAT_UNKNOWN,
1834 GL_RGBA16_EXT,
1835 nullptr);
1836 return info;
1837 }
1838 else
1839 {
1840 static constexpr Format info(GL_DEPTH_COMPONENT16,
1841 angle::FormatID::D16_UNORM,
1842 DXGI_FORMAT_D16_UNORM,
1843 DXGI_FORMAT_UNKNOWN,
1844 DXGI_FORMAT_UNKNOWN,
1845 DXGI_FORMAT_UNKNOWN,
1846 DXGI_FORMAT_D16_UNORM,
1847 DXGI_FORMAT_UNKNOWN,
1848 DXGI_FORMAT_UNKNOWN,
1849 DXGI_FORMAT_UNKNOWN,
1850 DXGI_FORMAT_UNKNOWN,
1851 GL_RGBA16_EXT,
1852 nullptr);
1853 return info;
1854 }
1855 }
1856 case GL_DEPTH_COMPONENT24:
1857 {
1858 if (OnlyFL10Plus(deviceCaps))
1859 {
1860 static constexpr Format info(GL_DEPTH_COMPONENT24,
1861 angle::FormatID::D24_UNORM_S8_UINT,
1862 DXGI_FORMAT_R24G8_TYPELESS,
1863 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1864 DXGI_FORMAT_UNKNOWN,
1865 DXGI_FORMAT_UNKNOWN,
1866 DXGI_FORMAT_D24_UNORM_S8_UINT,
1867 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1868 DXGI_FORMAT_X24_TYPELESS_G8_UINT,
1869 DXGI_FORMAT_UNKNOWN,
1870 DXGI_FORMAT_UNKNOWN,
1871 GL_RGBA32F,
1872 nullptr);
1873 return info;
1874 }
1875 else
1876 {
1877 static constexpr Format info(GL_DEPTH_COMPONENT24,
1878 angle::FormatID::D24_UNORM_S8_UINT,
1879 DXGI_FORMAT_D24_UNORM_S8_UINT,
1880 DXGI_FORMAT_UNKNOWN,
1881 DXGI_FORMAT_UNKNOWN,
1882 DXGI_FORMAT_UNKNOWN,
1883 DXGI_FORMAT_D24_UNORM_S8_UINT,
1884 DXGI_FORMAT_UNKNOWN,
1885 DXGI_FORMAT_UNKNOWN,
1886 DXGI_FORMAT_UNKNOWN,
1887 DXGI_FORMAT_UNKNOWN,
1888 GL_RGBA32F,
1889 nullptr);
1890 return info;
1891 }
1892 }
1893 case GL_DEPTH_COMPONENT32F:
1894 {
1895 static constexpr Format info(GL_DEPTH_COMPONENT32F,
1896 angle::FormatID::D32_FLOAT,
1897 DXGI_FORMAT_R32_TYPELESS,
1898 DXGI_FORMAT_R32_FLOAT,
1899 DXGI_FORMAT_UNKNOWN,
1900 DXGI_FORMAT_UNKNOWN,
1901 DXGI_FORMAT_D32_FLOAT,
1902 DXGI_FORMAT_R32_FLOAT,
1903 DXGI_FORMAT_UNKNOWN,
1904 DXGI_FORMAT_UNKNOWN,
1905 DXGI_FORMAT_UNKNOWN,
1906 GL_RGBA32F,
1907 nullptr);
1908 return info;
1909 }
1910 case GL_DEPTH_COMPONENT32_OES:
1911 {
1912 if (OnlyFL10Plus(deviceCaps))
1913 {
1914 static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
1915 angle::FormatID::D24_UNORM_S8_UINT,
1916 DXGI_FORMAT_R24G8_TYPELESS,
1917 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1918 DXGI_FORMAT_UNKNOWN,
1919 DXGI_FORMAT_UNKNOWN,
1920 DXGI_FORMAT_D24_UNORM_S8_UINT,
1921 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
1922 DXGI_FORMAT_X24_TYPELESS_G8_UINT,
1923 DXGI_FORMAT_UNKNOWN,
1924 DXGI_FORMAT_UNKNOWN,
1925 GL_RGBA32F,
1926 nullptr);
1927 return info;
1928 }
1929 else
1930 {
1931 static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
1932 angle::FormatID::D24_UNORM_S8_UINT,
1933 DXGI_FORMAT_D24_UNORM_S8_UINT,
1934 DXGI_FORMAT_UNKNOWN,
1935 DXGI_FORMAT_UNKNOWN,
1936 DXGI_FORMAT_UNKNOWN,
1937 DXGI_FORMAT_D24_UNORM_S8_UINT,
1938 DXGI_FORMAT_UNKNOWN,
1939 DXGI_FORMAT_UNKNOWN,
1940 DXGI_FORMAT_UNKNOWN,
1941 DXGI_FORMAT_UNKNOWN,
1942 GL_RGBA32F,
1943 nullptr);
1944 return info;
1945 }
1946 }
1947 case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
1948 {
1949 static constexpr Format info(GL_ETC1_RGB8_LOSSY_DECODE_ANGLE,
1950 angle::FormatID::BC1_RGB_UNORM_BLOCK,
1951 DXGI_FORMAT_BC1_UNORM,
1952 DXGI_FORMAT_BC1_UNORM,
1953 DXGI_FORMAT_UNKNOWN,
1954 DXGI_FORMAT_UNKNOWN,
1955 DXGI_FORMAT_UNKNOWN,
1956 DXGI_FORMAT_BC1_UNORM,
1957 DXGI_FORMAT_UNKNOWN,
1958 DXGI_FORMAT_UNKNOWN,
1959 DXGI_FORMAT_UNKNOWN,
1960 GL_RGBA8,
1961 nullptr);
1962 return info;
1963 }
1964 case GL_ETC1_RGB8_OES:
1965 {
1966 static constexpr Format info(GL_ETC1_RGB8_OES,
1967 angle::FormatID::R8G8B8A8_UNORM,
1968 DXGI_FORMAT_R8G8B8A8_UNORM,
1969 DXGI_FORMAT_R8G8B8A8_UNORM,
1970 DXGI_FORMAT_R8G8B8A8_UNORM,
1971 DXGI_FORMAT_R8G8B8A8_UNORM,
1972 DXGI_FORMAT_UNKNOWN,
1973 DXGI_FORMAT_R8G8B8A8_UNORM,
1974 DXGI_FORMAT_UNKNOWN,
1975 DXGI_FORMAT_UNKNOWN,
1976 DXGI_FORMAT_R8G8B8A8_TYPELESS,
1977 GL_RGBA8,
1978 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
1979 return info;
1980 }
1981 case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE:
1982 {
1983 static constexpr Format info(GL_G8_B8R8_2PLANE_420_UNORM_ANGLE,
1984 angle::FormatID::NONE,
1985 DXGI_FORMAT_UNKNOWN,
1986 DXGI_FORMAT_UNKNOWN,
1987 DXGI_FORMAT_UNKNOWN,
1988 DXGI_FORMAT_UNKNOWN,
1989 DXGI_FORMAT_UNKNOWN,
1990 DXGI_FORMAT_UNKNOWN,
1991 DXGI_FORMAT_UNKNOWN,
1992 DXGI_FORMAT_UNKNOWN,
1993 DXGI_FORMAT_UNKNOWN,
1994 GL_NONE,
1995 nullptr);
1996 return info;
1997 }
1998 case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE:
1999 {
2000 static constexpr Format info(GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE,
2001 angle::FormatID::NONE,
2002 DXGI_FORMAT_UNKNOWN,
2003 DXGI_FORMAT_UNKNOWN,
2004 DXGI_FORMAT_UNKNOWN,
2005 DXGI_FORMAT_UNKNOWN,
2006 DXGI_FORMAT_UNKNOWN,
2007 DXGI_FORMAT_UNKNOWN,
2008 DXGI_FORMAT_UNKNOWN,
2009 DXGI_FORMAT_UNKNOWN,
2010 DXGI_FORMAT_UNKNOWN,
2011 GL_NONE,
2012 nullptr);
2013 return info;
2014 }
2015 case GL_LUMINANCE16F_EXT:
2016 {
2017 static constexpr Format info(GL_LUMINANCE16F_EXT,
2018 angle::FormatID::R16G16B16A16_FLOAT,
2019 DXGI_FORMAT_R16G16B16A16_FLOAT,
2020 DXGI_FORMAT_R16G16B16A16_FLOAT,
2021 DXGI_FORMAT_R16G16B16A16_FLOAT,
2022 DXGI_FORMAT_R16G16B16A16_FLOAT,
2023 DXGI_FORMAT_UNKNOWN,
2024 DXGI_FORMAT_R16G16B16A16_FLOAT,
2025 DXGI_FORMAT_UNKNOWN,
2026 DXGI_FORMAT_UNKNOWN,
2027 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2028 GL_RGBA16F,
2029 Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
2030 return info;
2031 }
2032 case GL_LUMINANCE32F_EXT:
2033 {
2034 static constexpr Format info(GL_LUMINANCE32F_EXT,
2035 angle::FormatID::R32G32B32A32_FLOAT,
2036 DXGI_FORMAT_R32G32B32A32_FLOAT,
2037 DXGI_FORMAT_R32G32B32A32_FLOAT,
2038 DXGI_FORMAT_R32G32B32A32_FLOAT,
2039 DXGI_FORMAT_R32G32B32A32_FLOAT,
2040 DXGI_FORMAT_UNKNOWN,
2041 DXGI_FORMAT_R32G32B32A32_FLOAT,
2042 DXGI_FORMAT_UNKNOWN,
2043 DXGI_FORMAT_UNKNOWN,
2044 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2045 GL_RGBA32F,
2046 Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
2047 return info;
2048 }
2049 case GL_LUMINANCE4_ALPHA4_OES:
2050 {
2051 if (SupportsFormat(DXGI_FORMAT_B4G4R4A4_UNORM, deviceCaps))
2052 {
2053 static constexpr Format info(GL_LUMINANCE4_ALPHA4_OES,
2054 angle::FormatID::B4G4R4A4_UNORM,
2055 DXGI_FORMAT_B4G4R4A4_UNORM,
2056 DXGI_FORMAT_B4G4R4A4_UNORM,
2057 DXGI_FORMAT_UNKNOWN,
2058 DXGI_FORMAT_B4G4R4A4_UNORM,
2059 DXGI_FORMAT_UNKNOWN,
2060 DXGI_FORMAT_B4G4R4A4_UNORM,
2061 DXGI_FORMAT_UNKNOWN,
2062 DXGI_FORMAT_UNKNOWN,
2063 DXGI_FORMAT_UNKNOWN,
2064 GL_LUMINANCE4_ALPHA4_OES,
2065 nullptr);
2066 return info;
2067 }
2068 else
2069 {
2070 static constexpr Format info(GL_LUMINANCE4_ALPHA4_OES,
2071 angle::FormatID::R8G8B8A8_UNORM,
2072 DXGI_FORMAT_R8G8B8A8_UNORM,
2073 DXGI_FORMAT_R8G8B8A8_UNORM,
2074 DXGI_FORMAT_R8G8B8A8_UNORM,
2075 DXGI_FORMAT_R8G8B8A8_UNORM,
2076 DXGI_FORMAT_UNKNOWN,
2077 DXGI_FORMAT_R8G8B8A8_UNORM,
2078 DXGI_FORMAT_UNKNOWN,
2079 DXGI_FORMAT_UNKNOWN,
2080 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2081 GL_RGBA8,
2082 nullptr);
2083 return info;
2084 }
2085 }
2086 case GL_LUMINANCE8_ALPHA8_EXT:
2087 {
2088 static constexpr Format info(GL_LUMINANCE8_ALPHA8_EXT,
2089 angle::FormatID::R8G8B8A8_UNORM,
2090 DXGI_FORMAT_R8G8B8A8_UNORM,
2091 DXGI_FORMAT_R8G8B8A8_UNORM,
2092 DXGI_FORMAT_R8G8B8A8_UNORM,
2093 DXGI_FORMAT_R8G8B8A8_UNORM,
2094 DXGI_FORMAT_UNKNOWN,
2095 DXGI_FORMAT_R8G8B8A8_UNORM,
2096 DXGI_FORMAT_UNKNOWN,
2097 DXGI_FORMAT_UNKNOWN,
2098 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2099 GL_RGBA8,
2100 nullptr);
2101 return info;
2102 }
2103 case GL_LUMINANCE8_EXT:
2104 {
2105 static constexpr Format info(GL_LUMINANCE8_EXT,
2106 angle::FormatID::R8G8B8A8_UNORM,
2107 DXGI_FORMAT_R8G8B8A8_UNORM,
2108 DXGI_FORMAT_R8G8B8A8_UNORM,
2109 DXGI_FORMAT_R8G8B8A8_UNORM,
2110 DXGI_FORMAT_R8G8B8A8_UNORM,
2111 DXGI_FORMAT_UNKNOWN,
2112 DXGI_FORMAT_R8G8B8A8_UNORM,
2113 DXGI_FORMAT_UNKNOWN,
2114 DXGI_FORMAT_UNKNOWN,
2115 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2116 GL_RGBA8,
2117 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2118 return info;
2119 }
2120 case GL_LUMINANCE_ALPHA16F_EXT:
2121 {
2122 static constexpr Format info(GL_LUMINANCE_ALPHA16F_EXT,
2123 angle::FormatID::R16G16B16A16_FLOAT,
2124 DXGI_FORMAT_R16G16B16A16_FLOAT,
2125 DXGI_FORMAT_R16G16B16A16_FLOAT,
2126 DXGI_FORMAT_R16G16B16A16_FLOAT,
2127 DXGI_FORMAT_R16G16B16A16_FLOAT,
2128 DXGI_FORMAT_UNKNOWN,
2129 DXGI_FORMAT_R16G16B16A16_FLOAT,
2130 DXGI_FORMAT_UNKNOWN,
2131 DXGI_FORMAT_UNKNOWN,
2132 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2133 GL_RGBA16F,
2134 nullptr);
2135 return info;
2136 }
2137 case GL_LUMINANCE_ALPHA32F_EXT:
2138 {
2139 static constexpr Format info(GL_LUMINANCE_ALPHA32F_EXT,
2140 angle::FormatID::R32G32B32A32_FLOAT,
2141 DXGI_FORMAT_R32G32B32A32_FLOAT,
2142 DXGI_FORMAT_R32G32B32A32_FLOAT,
2143 DXGI_FORMAT_R32G32B32A32_FLOAT,
2144 DXGI_FORMAT_R32G32B32A32_FLOAT,
2145 DXGI_FORMAT_UNKNOWN,
2146 DXGI_FORMAT_R32G32B32A32_FLOAT,
2147 DXGI_FORMAT_UNKNOWN,
2148 DXGI_FORMAT_UNKNOWN,
2149 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2150 GL_RGBA32F,
2151 nullptr);
2152 return info;
2153 }
2154 case GL_NONE:
2155 {
2156 static constexpr Format info(GL_NONE,
2157 angle::FormatID::NONE,
2158 DXGI_FORMAT_UNKNOWN,
2159 DXGI_FORMAT_UNKNOWN,
2160 DXGI_FORMAT_UNKNOWN,
2161 DXGI_FORMAT_UNKNOWN,
2162 DXGI_FORMAT_UNKNOWN,
2163 DXGI_FORMAT_UNKNOWN,
2164 DXGI_FORMAT_UNKNOWN,
2165 DXGI_FORMAT_UNKNOWN,
2166 DXGI_FORMAT_UNKNOWN,
2167 GL_NONE,
2168 nullptr);
2169 return info;
2170 }
2171 case GL_PALETTE4_R5_G6_B5_OES:
2172 {
2173 static constexpr Format info(GL_PALETTE4_R5_G6_B5_OES,
2174 angle::FormatID::NONE,
2175 DXGI_FORMAT_UNKNOWN,
2176 DXGI_FORMAT_UNKNOWN,
2177 DXGI_FORMAT_UNKNOWN,
2178 DXGI_FORMAT_UNKNOWN,
2179 DXGI_FORMAT_UNKNOWN,
2180 DXGI_FORMAT_UNKNOWN,
2181 DXGI_FORMAT_UNKNOWN,
2182 DXGI_FORMAT_UNKNOWN,
2183 DXGI_FORMAT_UNKNOWN,
2184 GL_NONE,
2185 nullptr);
2186 return info;
2187 }
2188 case GL_PALETTE4_RGB5_A1_OES:
2189 {
2190 static constexpr Format info(GL_PALETTE4_RGB5_A1_OES,
2191 angle::FormatID::NONE,
2192 DXGI_FORMAT_UNKNOWN,
2193 DXGI_FORMAT_UNKNOWN,
2194 DXGI_FORMAT_UNKNOWN,
2195 DXGI_FORMAT_UNKNOWN,
2196 DXGI_FORMAT_UNKNOWN,
2197 DXGI_FORMAT_UNKNOWN,
2198 DXGI_FORMAT_UNKNOWN,
2199 DXGI_FORMAT_UNKNOWN,
2200 DXGI_FORMAT_UNKNOWN,
2201 GL_NONE,
2202 nullptr);
2203 return info;
2204 }
2205 case GL_PALETTE4_RGB8_OES:
2206 {
2207 static constexpr Format info(GL_PALETTE4_RGB8_OES,
2208 angle::FormatID::NONE,
2209 DXGI_FORMAT_UNKNOWN,
2210 DXGI_FORMAT_UNKNOWN,
2211 DXGI_FORMAT_UNKNOWN,
2212 DXGI_FORMAT_UNKNOWN,
2213 DXGI_FORMAT_UNKNOWN,
2214 DXGI_FORMAT_UNKNOWN,
2215 DXGI_FORMAT_UNKNOWN,
2216 DXGI_FORMAT_UNKNOWN,
2217 DXGI_FORMAT_UNKNOWN,
2218 GL_NONE,
2219 nullptr);
2220 return info;
2221 }
2222 case GL_PALETTE4_RGBA4_OES:
2223 {
2224 static constexpr Format info(GL_PALETTE4_RGBA4_OES,
2225 angle::FormatID::NONE,
2226 DXGI_FORMAT_UNKNOWN,
2227 DXGI_FORMAT_UNKNOWN,
2228 DXGI_FORMAT_UNKNOWN,
2229 DXGI_FORMAT_UNKNOWN,
2230 DXGI_FORMAT_UNKNOWN,
2231 DXGI_FORMAT_UNKNOWN,
2232 DXGI_FORMAT_UNKNOWN,
2233 DXGI_FORMAT_UNKNOWN,
2234 DXGI_FORMAT_UNKNOWN,
2235 GL_NONE,
2236 nullptr);
2237 return info;
2238 }
2239 case GL_PALETTE4_RGBA8_OES:
2240 {
2241 static constexpr Format info(GL_PALETTE4_RGBA8_OES,
2242 angle::FormatID::NONE,
2243 DXGI_FORMAT_UNKNOWN,
2244 DXGI_FORMAT_UNKNOWN,
2245 DXGI_FORMAT_UNKNOWN,
2246 DXGI_FORMAT_UNKNOWN,
2247 DXGI_FORMAT_UNKNOWN,
2248 DXGI_FORMAT_UNKNOWN,
2249 DXGI_FORMAT_UNKNOWN,
2250 DXGI_FORMAT_UNKNOWN,
2251 DXGI_FORMAT_UNKNOWN,
2252 GL_NONE,
2253 nullptr);
2254 return info;
2255 }
2256 case GL_PALETTE8_R5_G6_B5_OES:
2257 {
2258 static constexpr Format info(GL_PALETTE8_R5_G6_B5_OES,
2259 angle::FormatID::NONE,
2260 DXGI_FORMAT_UNKNOWN,
2261 DXGI_FORMAT_UNKNOWN,
2262 DXGI_FORMAT_UNKNOWN,
2263 DXGI_FORMAT_UNKNOWN,
2264 DXGI_FORMAT_UNKNOWN,
2265 DXGI_FORMAT_UNKNOWN,
2266 DXGI_FORMAT_UNKNOWN,
2267 DXGI_FORMAT_UNKNOWN,
2268 DXGI_FORMAT_UNKNOWN,
2269 GL_NONE,
2270 nullptr);
2271 return info;
2272 }
2273 case GL_PALETTE8_RGB5_A1_OES:
2274 {
2275 static constexpr Format info(GL_PALETTE8_RGB5_A1_OES,
2276 angle::FormatID::NONE,
2277 DXGI_FORMAT_UNKNOWN,
2278 DXGI_FORMAT_UNKNOWN,
2279 DXGI_FORMAT_UNKNOWN,
2280 DXGI_FORMAT_UNKNOWN,
2281 DXGI_FORMAT_UNKNOWN,
2282 DXGI_FORMAT_UNKNOWN,
2283 DXGI_FORMAT_UNKNOWN,
2284 DXGI_FORMAT_UNKNOWN,
2285 DXGI_FORMAT_UNKNOWN,
2286 GL_NONE,
2287 nullptr);
2288 return info;
2289 }
2290 case GL_PALETTE8_RGB8_OES:
2291 {
2292 static constexpr Format info(GL_PALETTE8_RGB8_OES,
2293 angle::FormatID::NONE,
2294 DXGI_FORMAT_UNKNOWN,
2295 DXGI_FORMAT_UNKNOWN,
2296 DXGI_FORMAT_UNKNOWN,
2297 DXGI_FORMAT_UNKNOWN,
2298 DXGI_FORMAT_UNKNOWN,
2299 DXGI_FORMAT_UNKNOWN,
2300 DXGI_FORMAT_UNKNOWN,
2301 DXGI_FORMAT_UNKNOWN,
2302 DXGI_FORMAT_UNKNOWN,
2303 GL_NONE,
2304 nullptr);
2305 return info;
2306 }
2307 case GL_PALETTE8_RGBA4_OES:
2308 {
2309 static constexpr Format info(GL_PALETTE8_RGBA4_OES,
2310 angle::FormatID::NONE,
2311 DXGI_FORMAT_UNKNOWN,
2312 DXGI_FORMAT_UNKNOWN,
2313 DXGI_FORMAT_UNKNOWN,
2314 DXGI_FORMAT_UNKNOWN,
2315 DXGI_FORMAT_UNKNOWN,
2316 DXGI_FORMAT_UNKNOWN,
2317 DXGI_FORMAT_UNKNOWN,
2318 DXGI_FORMAT_UNKNOWN,
2319 DXGI_FORMAT_UNKNOWN,
2320 GL_NONE,
2321 nullptr);
2322 return info;
2323 }
2324 case GL_PALETTE8_RGBA8_OES:
2325 {
2326 static constexpr Format info(GL_PALETTE8_RGBA8_OES,
2327 angle::FormatID::NONE,
2328 DXGI_FORMAT_UNKNOWN,
2329 DXGI_FORMAT_UNKNOWN,
2330 DXGI_FORMAT_UNKNOWN,
2331 DXGI_FORMAT_UNKNOWN,
2332 DXGI_FORMAT_UNKNOWN,
2333 DXGI_FORMAT_UNKNOWN,
2334 DXGI_FORMAT_UNKNOWN,
2335 DXGI_FORMAT_UNKNOWN,
2336 DXGI_FORMAT_UNKNOWN,
2337 GL_NONE,
2338 nullptr);
2339 return info;
2340 }
2341 case GL_R11F_G11F_B10F:
2342 {
2343 static constexpr Format info(GL_R11F_G11F_B10F,
2344 angle::FormatID::R11G11B10_FLOAT,
2345 DXGI_FORMAT_R11G11B10_FLOAT,
2346 DXGI_FORMAT_R11G11B10_FLOAT,
2347 DXGI_FORMAT_UNKNOWN,
2348 DXGI_FORMAT_R11G11B10_FLOAT,
2349 DXGI_FORMAT_UNKNOWN,
2350 DXGI_FORMAT_R11G11B10_FLOAT,
2351 DXGI_FORMAT_UNKNOWN,
2352 DXGI_FORMAT_UNKNOWN,
2353 DXGI_FORMAT_UNKNOWN,
2354 GL_RGBA16F_EXT,
2355 nullptr);
2356 return info;
2357 }
2358 case GL_R16F:
2359 {
2360 static constexpr Format info(GL_R16F,
2361 angle::FormatID::R16_FLOAT,
2362 DXGI_FORMAT_R16_FLOAT,
2363 DXGI_FORMAT_R16_FLOAT,
2364 DXGI_FORMAT_UNKNOWN,
2365 DXGI_FORMAT_R16_FLOAT,
2366 DXGI_FORMAT_UNKNOWN,
2367 DXGI_FORMAT_R16_FLOAT,
2368 DXGI_FORMAT_UNKNOWN,
2369 DXGI_FORMAT_UNKNOWN,
2370 DXGI_FORMAT_R16_TYPELESS,
2371 GL_RGBA16F_EXT,
2372 nullptr);
2373 return info;
2374 }
2375 case GL_R16I:
2376 {
2377 static constexpr Format info(GL_R16I,
2378 angle::FormatID::R16_SINT,
2379 DXGI_FORMAT_R16_SINT,
2380 DXGI_FORMAT_R16_SINT,
2381 DXGI_FORMAT_UNKNOWN,
2382 DXGI_FORMAT_R16_SINT,
2383 DXGI_FORMAT_UNKNOWN,
2384 DXGI_FORMAT_R16_SINT,
2385 DXGI_FORMAT_UNKNOWN,
2386 DXGI_FORMAT_UNKNOWN,
2387 DXGI_FORMAT_R16_TYPELESS,
2388 GL_RGBA16I,
2389 nullptr);
2390 return info;
2391 }
2392 case GL_R16UI:
2393 {
2394 static constexpr Format info(GL_R16UI,
2395 angle::FormatID::R16_UINT,
2396 DXGI_FORMAT_R16_UINT,
2397 DXGI_FORMAT_R16_UINT,
2398 DXGI_FORMAT_UNKNOWN,
2399 DXGI_FORMAT_R16_UINT,
2400 DXGI_FORMAT_UNKNOWN,
2401 DXGI_FORMAT_R16_UINT,
2402 DXGI_FORMAT_UNKNOWN,
2403 DXGI_FORMAT_UNKNOWN,
2404 DXGI_FORMAT_R16_TYPELESS,
2405 GL_RGBA16I,
2406 nullptr);
2407 return info;
2408 }
2409 case GL_R16_EXT:
2410 {
2411 static constexpr Format info(GL_R16_EXT,
2412 angle::FormatID::R16_UNORM,
2413 DXGI_FORMAT_R16_UNORM,
2414 DXGI_FORMAT_R16_UNORM,
2415 DXGI_FORMAT_UNKNOWN,
2416 DXGI_FORMAT_R16_UNORM,
2417 DXGI_FORMAT_UNKNOWN,
2418 DXGI_FORMAT_R16_UNORM,
2419 DXGI_FORMAT_UNKNOWN,
2420 DXGI_FORMAT_UNKNOWN,
2421 DXGI_FORMAT_R16_TYPELESS,
2422 GL_RGBA16_EXT,
2423 nullptr);
2424 return info;
2425 }
2426 case GL_R16_SNORM_EXT:
2427 {
2428 static constexpr Format info(GL_R16_SNORM_EXT,
2429 angle::FormatID::R16_SNORM,
2430 DXGI_FORMAT_R16_SNORM,
2431 DXGI_FORMAT_R16_SNORM,
2432 DXGI_FORMAT_UNKNOWN,
2433 DXGI_FORMAT_R16_SNORM,
2434 DXGI_FORMAT_UNKNOWN,
2435 DXGI_FORMAT_R16_SNORM,
2436 DXGI_FORMAT_UNKNOWN,
2437 DXGI_FORMAT_UNKNOWN,
2438 DXGI_FORMAT_R16_TYPELESS,
2439 GL_RGBA16_SNORM_EXT,
2440 nullptr);
2441 return info;
2442 }
2443 case GL_R32F:
2444 {
2445 static constexpr Format info(GL_R32F,
2446 angle::FormatID::R32_FLOAT,
2447 DXGI_FORMAT_R32_FLOAT,
2448 DXGI_FORMAT_R32_FLOAT,
2449 DXGI_FORMAT_R32_FLOAT,
2450 DXGI_FORMAT_R32_FLOAT,
2451 DXGI_FORMAT_UNKNOWN,
2452 DXGI_FORMAT_R32_FLOAT,
2453 DXGI_FORMAT_UNKNOWN,
2454 DXGI_FORMAT_UNKNOWN,
2455 DXGI_FORMAT_R32_TYPELESS,
2456 GL_RGBA32F,
2457 nullptr);
2458 return info;
2459 }
2460 case GL_R32I:
2461 {
2462 static constexpr Format info(GL_R32I,
2463 angle::FormatID::R32_SINT,
2464 DXGI_FORMAT_R32_SINT,
2465 DXGI_FORMAT_R32_SINT,
2466 DXGI_FORMAT_R32_SINT,
2467 DXGI_FORMAT_R32_SINT,
2468 DXGI_FORMAT_UNKNOWN,
2469 DXGI_FORMAT_R32_SINT,
2470 DXGI_FORMAT_UNKNOWN,
2471 DXGI_FORMAT_UNKNOWN,
2472 DXGI_FORMAT_R32_TYPELESS,
2473 GL_RGBA32I,
2474 nullptr);
2475 return info;
2476 }
2477 case GL_R32UI:
2478 {
2479 static constexpr Format info(GL_R32UI,
2480 angle::FormatID::R32_UINT,
2481 DXGI_FORMAT_R32_UINT,
2482 DXGI_FORMAT_R32_UINT,
2483 DXGI_FORMAT_R32_UINT,
2484 DXGI_FORMAT_R32_UINT,
2485 DXGI_FORMAT_UNKNOWN,
2486 DXGI_FORMAT_R32_UINT,
2487 DXGI_FORMAT_UNKNOWN,
2488 DXGI_FORMAT_UNKNOWN,
2489 DXGI_FORMAT_R32_TYPELESS,
2490 GL_RGBA32I,
2491 nullptr);
2492 return info;
2493 }
2494 case GL_R8:
2495 {
2496 static constexpr Format info(GL_R8,
2497 angle::FormatID::R8_UNORM,
2498 DXGI_FORMAT_R8_UNORM,
2499 DXGI_FORMAT_R8_UNORM,
2500 DXGI_FORMAT_UNKNOWN,
2501 DXGI_FORMAT_R8_UNORM,
2502 DXGI_FORMAT_UNKNOWN,
2503 DXGI_FORMAT_R8_UNORM,
2504 DXGI_FORMAT_UNKNOWN,
2505 DXGI_FORMAT_UNKNOWN,
2506 DXGI_FORMAT_R8_TYPELESS,
2507 GL_RGBA8,
2508 nullptr);
2509 return info;
2510 }
2511 case GL_R8I:
2512 {
2513 static constexpr Format info(GL_R8I,
2514 angle::FormatID::R8_SINT,
2515 DXGI_FORMAT_R8_SINT,
2516 DXGI_FORMAT_R8_SINT,
2517 DXGI_FORMAT_UNKNOWN,
2518 DXGI_FORMAT_R8_SINT,
2519 DXGI_FORMAT_UNKNOWN,
2520 DXGI_FORMAT_R8_SINT,
2521 DXGI_FORMAT_UNKNOWN,
2522 DXGI_FORMAT_UNKNOWN,
2523 DXGI_FORMAT_R8_TYPELESS,
2524 GL_RGBA8I,
2525 nullptr);
2526 return info;
2527 }
2528 case GL_R8UI:
2529 {
2530 static constexpr Format info(GL_R8UI,
2531 angle::FormatID::R8_UINT,
2532 DXGI_FORMAT_R8_UINT,
2533 DXGI_FORMAT_R8_UINT,
2534 DXGI_FORMAT_UNKNOWN,
2535 DXGI_FORMAT_R8_UINT,
2536 DXGI_FORMAT_UNKNOWN,
2537 DXGI_FORMAT_R8_UINT,
2538 DXGI_FORMAT_UNKNOWN,
2539 DXGI_FORMAT_UNKNOWN,
2540 DXGI_FORMAT_R8_TYPELESS,
2541 GL_RGBA8I,
2542 nullptr);
2543 return info;
2544 }
2545 case GL_R8_SNORM:
2546 {
2547 static constexpr Format info(GL_R8_SNORM,
2548 angle::FormatID::R8_SNORM,
2549 DXGI_FORMAT_R8_SNORM,
2550 DXGI_FORMAT_R8_SNORM,
2551 DXGI_FORMAT_UNKNOWN,
2552 DXGI_FORMAT_R8_SNORM,
2553 DXGI_FORMAT_UNKNOWN,
2554 DXGI_FORMAT_R8_SNORM,
2555 DXGI_FORMAT_UNKNOWN,
2556 DXGI_FORMAT_UNKNOWN,
2557 DXGI_FORMAT_R8_TYPELESS,
2558 GL_RGBA8_SNORM,
2559 nullptr);
2560 return info;
2561 }
2562 case GL_RG16F:
2563 {
2564 static constexpr Format info(GL_RG16F,
2565 angle::FormatID::R16G16_FLOAT,
2566 DXGI_FORMAT_R16G16_FLOAT,
2567 DXGI_FORMAT_R16G16_FLOAT,
2568 DXGI_FORMAT_UNKNOWN,
2569 DXGI_FORMAT_R16G16_FLOAT,
2570 DXGI_FORMAT_UNKNOWN,
2571 DXGI_FORMAT_R16G16_FLOAT,
2572 DXGI_FORMAT_UNKNOWN,
2573 DXGI_FORMAT_UNKNOWN,
2574 DXGI_FORMAT_R16G16_TYPELESS,
2575 GL_RGBA16F_EXT,
2576 nullptr);
2577 return info;
2578 }
2579 case GL_RG16I:
2580 {
2581 static constexpr Format info(GL_RG16I,
2582 angle::FormatID::R16G16_SINT,
2583 DXGI_FORMAT_R16G16_SINT,
2584 DXGI_FORMAT_R16G16_SINT,
2585 DXGI_FORMAT_UNKNOWN,
2586 DXGI_FORMAT_R16G16_SINT,
2587 DXGI_FORMAT_UNKNOWN,
2588 DXGI_FORMAT_R16G16_SINT,
2589 DXGI_FORMAT_UNKNOWN,
2590 DXGI_FORMAT_UNKNOWN,
2591 DXGI_FORMAT_R16G16_TYPELESS,
2592 GL_RGBA16I,
2593 nullptr);
2594 return info;
2595 }
2596 case GL_RG16UI:
2597 {
2598 static constexpr Format info(GL_RG16UI,
2599 angle::FormatID::R16G16_UINT,
2600 DXGI_FORMAT_R16G16_UINT,
2601 DXGI_FORMAT_R16G16_UINT,
2602 DXGI_FORMAT_UNKNOWN,
2603 DXGI_FORMAT_R16G16_UINT,
2604 DXGI_FORMAT_UNKNOWN,
2605 DXGI_FORMAT_R16G16_UINT,
2606 DXGI_FORMAT_UNKNOWN,
2607 DXGI_FORMAT_UNKNOWN,
2608 DXGI_FORMAT_R16G16_TYPELESS,
2609 GL_RGBA16I,
2610 nullptr);
2611 return info;
2612 }
2613 case GL_RG16_EXT:
2614 {
2615 static constexpr Format info(GL_RG16_EXT,
2616 angle::FormatID::R16G16_UNORM,
2617 DXGI_FORMAT_R16G16_UNORM,
2618 DXGI_FORMAT_R16G16_UNORM,
2619 DXGI_FORMAT_UNKNOWN,
2620 DXGI_FORMAT_R16G16_UNORM,
2621 DXGI_FORMAT_UNKNOWN,
2622 DXGI_FORMAT_R16G16_UNORM,
2623 DXGI_FORMAT_UNKNOWN,
2624 DXGI_FORMAT_UNKNOWN,
2625 DXGI_FORMAT_R16G16_TYPELESS,
2626 GL_RGBA16_EXT,
2627 nullptr);
2628 return info;
2629 }
2630 case GL_RG16_SNORM_EXT:
2631 {
2632 static constexpr Format info(GL_RG16_SNORM_EXT,
2633 angle::FormatID::R16G16_SNORM,
2634 DXGI_FORMAT_R16G16_SNORM,
2635 DXGI_FORMAT_R16G16_SNORM,
2636 DXGI_FORMAT_UNKNOWN,
2637 DXGI_FORMAT_R16G16_SNORM,
2638 DXGI_FORMAT_UNKNOWN,
2639 DXGI_FORMAT_R16G16_SNORM,
2640 DXGI_FORMAT_UNKNOWN,
2641 DXGI_FORMAT_UNKNOWN,
2642 DXGI_FORMAT_R16G16_TYPELESS,
2643 GL_RGBA16_SNORM_EXT,
2644 nullptr);
2645 return info;
2646 }
2647 case GL_RG32F:
2648 {
2649 static constexpr Format info(GL_RG32F,
2650 angle::FormatID::R32G32_FLOAT,
2651 DXGI_FORMAT_R32G32_FLOAT,
2652 DXGI_FORMAT_R32G32_FLOAT,
2653 DXGI_FORMAT_UNKNOWN,
2654 DXGI_FORMAT_R32G32_FLOAT,
2655 DXGI_FORMAT_UNKNOWN,
2656 DXGI_FORMAT_R32G32_FLOAT,
2657 DXGI_FORMAT_UNKNOWN,
2658 DXGI_FORMAT_UNKNOWN,
2659 DXGI_FORMAT_R32G32_TYPELESS,
2660 GL_RGBA32F,
2661 nullptr);
2662 return info;
2663 }
2664 case GL_RG32I:
2665 {
2666 static constexpr Format info(GL_RG32I,
2667 angle::FormatID::R32G32_SINT,
2668 DXGI_FORMAT_R32G32_SINT,
2669 DXGI_FORMAT_R32G32_SINT,
2670 DXGI_FORMAT_UNKNOWN,
2671 DXGI_FORMAT_R32G32_SINT,
2672 DXGI_FORMAT_UNKNOWN,
2673 DXGI_FORMAT_R32G32_SINT,
2674 DXGI_FORMAT_UNKNOWN,
2675 DXGI_FORMAT_UNKNOWN,
2676 DXGI_FORMAT_R32G32_TYPELESS,
2677 GL_RGBA32I,
2678 nullptr);
2679 return info;
2680 }
2681 case GL_RG32UI:
2682 {
2683 static constexpr Format info(GL_RG32UI,
2684 angle::FormatID::R32G32_UINT,
2685 DXGI_FORMAT_R32G32_UINT,
2686 DXGI_FORMAT_R32G32_UINT,
2687 DXGI_FORMAT_UNKNOWN,
2688 DXGI_FORMAT_R32G32_UINT,
2689 DXGI_FORMAT_UNKNOWN,
2690 DXGI_FORMAT_R32G32_UINT,
2691 DXGI_FORMAT_UNKNOWN,
2692 DXGI_FORMAT_UNKNOWN,
2693 DXGI_FORMAT_R32G32_TYPELESS,
2694 GL_RGBA32I,
2695 nullptr);
2696 return info;
2697 }
2698 case GL_RG8:
2699 {
2700 static constexpr Format info(GL_RG8,
2701 angle::FormatID::R8G8_UNORM,
2702 DXGI_FORMAT_R8G8_UNORM,
2703 DXGI_FORMAT_R8G8_UNORM,
2704 DXGI_FORMAT_UNKNOWN,
2705 DXGI_FORMAT_R8G8_UNORM,
2706 DXGI_FORMAT_UNKNOWN,
2707 DXGI_FORMAT_R8G8_UNORM,
2708 DXGI_FORMAT_UNKNOWN,
2709 DXGI_FORMAT_UNKNOWN,
2710 DXGI_FORMAT_R8G8_TYPELESS,
2711 GL_RGBA8,
2712 nullptr);
2713 return info;
2714 }
2715 case GL_RG8I:
2716 {
2717 static constexpr Format info(GL_RG8I,
2718 angle::FormatID::R8G8_SINT,
2719 DXGI_FORMAT_R8G8_SINT,
2720 DXGI_FORMAT_R8G8_SINT,
2721 DXGI_FORMAT_UNKNOWN,
2722 DXGI_FORMAT_R8G8_SINT,
2723 DXGI_FORMAT_UNKNOWN,
2724 DXGI_FORMAT_R8G8_SINT,
2725 DXGI_FORMAT_UNKNOWN,
2726 DXGI_FORMAT_UNKNOWN,
2727 DXGI_FORMAT_R8G8_TYPELESS,
2728 GL_RGBA8I,
2729 nullptr);
2730 return info;
2731 }
2732 case GL_RG8UI:
2733 {
2734 static constexpr Format info(GL_RG8UI,
2735 angle::FormatID::R8G8_UINT,
2736 DXGI_FORMAT_R8G8_UINT,
2737 DXGI_FORMAT_R8G8_UINT,
2738 DXGI_FORMAT_UNKNOWN,
2739 DXGI_FORMAT_R8G8_UINT,
2740 DXGI_FORMAT_UNKNOWN,
2741 DXGI_FORMAT_R8G8_UINT,
2742 DXGI_FORMAT_UNKNOWN,
2743 DXGI_FORMAT_UNKNOWN,
2744 DXGI_FORMAT_R8G8_TYPELESS,
2745 GL_RGBA8I,
2746 nullptr);
2747 return info;
2748 }
2749 case GL_RG8_SNORM:
2750 {
2751 static constexpr Format info(GL_RG8_SNORM,
2752 angle::FormatID::R8G8_SNORM,
2753 DXGI_FORMAT_R8G8_SNORM,
2754 DXGI_FORMAT_R8G8_SNORM,
2755 DXGI_FORMAT_UNKNOWN,
2756 DXGI_FORMAT_R8G8_SNORM,
2757 DXGI_FORMAT_UNKNOWN,
2758 DXGI_FORMAT_R8G8_SNORM,
2759 DXGI_FORMAT_UNKNOWN,
2760 DXGI_FORMAT_UNKNOWN,
2761 DXGI_FORMAT_R8G8_TYPELESS,
2762 GL_RGBA8_SNORM,
2763 nullptr);
2764 return info;
2765 }
2766 case GL_RGB:
2767 {
2768 static constexpr Format info(GL_RGB,
2769 angle::FormatID::R8G8B8A8_UNORM,
2770 DXGI_FORMAT_R8G8B8A8_UNORM,
2771 DXGI_FORMAT_R8G8B8A8_UNORM,
2772 DXGI_FORMAT_R8G8B8A8_UNORM,
2773 DXGI_FORMAT_R8G8B8A8_UNORM,
2774 DXGI_FORMAT_UNKNOWN,
2775 DXGI_FORMAT_R8G8B8A8_UNORM,
2776 DXGI_FORMAT_UNKNOWN,
2777 DXGI_FORMAT_UNKNOWN,
2778 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2779 GL_RGBA8,
2780 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2781 return info;
2782 }
2783 case GL_RGB10_A2:
2784 {
2785 static constexpr Format info(GL_RGB10_A2,
2786 angle::FormatID::R10G10B10A2_UNORM,
2787 DXGI_FORMAT_R10G10B10A2_UNORM,
2788 DXGI_FORMAT_R10G10B10A2_UNORM,
2789 DXGI_FORMAT_UNKNOWN,
2790 DXGI_FORMAT_R10G10B10A2_UNORM,
2791 DXGI_FORMAT_UNKNOWN,
2792 DXGI_FORMAT_R10G10B10A2_UNORM,
2793 DXGI_FORMAT_UNKNOWN,
2794 DXGI_FORMAT_UNKNOWN,
2795 DXGI_FORMAT_R10G10B10A2_TYPELESS,
2796 GL_RGBA16_EXT,
2797 nullptr);
2798 return info;
2799 }
2800 case GL_RGB10_A2UI:
2801 {
2802 static constexpr Format info(GL_RGB10_A2UI,
2803 angle::FormatID::R10G10B10A2_UINT,
2804 DXGI_FORMAT_R10G10B10A2_UINT,
2805 DXGI_FORMAT_R10G10B10A2_UINT,
2806 DXGI_FORMAT_UNKNOWN,
2807 DXGI_FORMAT_R10G10B10A2_UINT,
2808 DXGI_FORMAT_UNKNOWN,
2809 DXGI_FORMAT_R10G10B10A2_UINT,
2810 DXGI_FORMAT_UNKNOWN,
2811 DXGI_FORMAT_UNKNOWN,
2812 DXGI_FORMAT_R10G10B10A2_TYPELESS,
2813 GL_RGBA16I,
2814 nullptr);
2815 return info;
2816 }
2817 case GL_RGB10_EXT:
2818 {
2819 static constexpr Format info(GL_RGB10_EXT,
2820 angle::FormatID::R10G10B10X2_UNORM,
2821 DXGI_FORMAT_R10G10B10A2_UNORM,
2822 DXGI_FORMAT_R10G10B10A2_UNORM,
2823 DXGI_FORMAT_UNKNOWN,
2824 DXGI_FORMAT_R10G10B10A2_UNORM,
2825 DXGI_FORMAT_UNKNOWN,
2826 DXGI_FORMAT_R10G10B10A2_UNORM,
2827 DXGI_FORMAT_UNKNOWN,
2828 DXGI_FORMAT_UNKNOWN,
2829 DXGI_FORMAT_R10G10B10A2_TYPELESS,
2830 GL_RGBA16_EXT,
2831 nullptr);
2832 return info;
2833 }
2834 case GL_RGB16F:
2835 {
2836 static constexpr Format info(GL_RGB16F,
2837 angle::FormatID::R16G16B16A16_FLOAT,
2838 DXGI_FORMAT_R16G16B16A16_FLOAT,
2839 DXGI_FORMAT_R16G16B16A16_FLOAT,
2840 DXGI_FORMAT_R16G16B16A16_FLOAT,
2841 DXGI_FORMAT_R16G16B16A16_FLOAT,
2842 DXGI_FORMAT_UNKNOWN,
2843 DXGI_FORMAT_R16G16B16A16_FLOAT,
2844 DXGI_FORMAT_UNKNOWN,
2845 DXGI_FORMAT_UNKNOWN,
2846 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2847 GL_RGBA16F,
2848 Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
2849 return info;
2850 }
2851 case GL_RGB16I:
2852 {
2853 static constexpr Format info(GL_RGB16I,
2854 angle::FormatID::R16G16B16A16_SINT,
2855 DXGI_FORMAT_R16G16B16A16_SINT,
2856 DXGI_FORMAT_R16G16B16A16_SINT,
2857 DXGI_FORMAT_R16G16B16A16_SINT,
2858 DXGI_FORMAT_R16G16B16A16_SINT,
2859 DXGI_FORMAT_UNKNOWN,
2860 DXGI_FORMAT_R16G16B16A16_SINT,
2861 DXGI_FORMAT_UNKNOWN,
2862 DXGI_FORMAT_UNKNOWN,
2863 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2864 GL_RGBA16I,
2865 Initialize4ComponentData<GLshort, 0x0000, 0x0000, 0x0000, 0x0001>);
2866 return info;
2867 }
2868 case GL_RGB16UI:
2869 {
2870 static constexpr Format info(GL_RGB16UI,
2871 angle::FormatID::R16G16B16A16_UINT,
2872 DXGI_FORMAT_R16G16B16A16_UINT,
2873 DXGI_FORMAT_R16G16B16A16_UINT,
2874 DXGI_FORMAT_R16G16B16A16_UINT,
2875 DXGI_FORMAT_R16G16B16A16_UINT,
2876 DXGI_FORMAT_UNKNOWN,
2877 DXGI_FORMAT_R16G16B16A16_UINT,
2878 DXGI_FORMAT_UNKNOWN,
2879 DXGI_FORMAT_UNKNOWN,
2880 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2881 GL_RGBA16UI,
2882 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x0001>);
2883 return info;
2884 }
2885 case GL_RGB16_EXT:
2886 {
2887 static constexpr Format info(GL_RGB16_EXT,
2888 angle::FormatID::R16G16B16A16_UNORM,
2889 DXGI_FORMAT_R16G16B16A16_UNORM,
2890 DXGI_FORMAT_R16G16B16A16_UNORM,
2891 DXGI_FORMAT_UNKNOWN,
2892 DXGI_FORMAT_R16G16B16A16_UNORM,
2893 DXGI_FORMAT_UNKNOWN,
2894 DXGI_FORMAT_R16G16B16A16_UNORM,
2895 DXGI_FORMAT_UNKNOWN,
2896 DXGI_FORMAT_UNKNOWN,
2897 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2898 GL_RGBA16_EXT,
2899 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0xFFFF>);
2900 return info;
2901 }
2902 case GL_RGB16_SNORM_EXT:
2903 {
2904 static constexpr Format info(GL_RGB16_SNORM_EXT,
2905 angle::FormatID::R16G16B16A16_SNORM,
2906 DXGI_FORMAT_R16G16B16A16_SNORM,
2907 DXGI_FORMAT_R16G16B16A16_SNORM,
2908 DXGI_FORMAT_UNKNOWN,
2909 DXGI_FORMAT_R16G16B16A16_SNORM,
2910 DXGI_FORMAT_UNKNOWN,
2911 DXGI_FORMAT_R16G16B16A16_SNORM,
2912 DXGI_FORMAT_UNKNOWN,
2913 DXGI_FORMAT_UNKNOWN,
2914 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2915 GL_RGBA16_SNORM_EXT,
2916 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x7FFF>);
2917 return info;
2918 }
2919 case GL_RGB32F:
2920 {
2921 static constexpr Format info(GL_RGB32F,
2922 angle::FormatID::R32G32B32A32_FLOAT,
2923 DXGI_FORMAT_R32G32B32A32_FLOAT,
2924 DXGI_FORMAT_R32G32B32A32_FLOAT,
2925 DXGI_FORMAT_R32G32B32A32_FLOAT,
2926 DXGI_FORMAT_R32G32B32A32_FLOAT,
2927 DXGI_FORMAT_UNKNOWN,
2928 DXGI_FORMAT_R32G32B32A32_FLOAT,
2929 DXGI_FORMAT_UNKNOWN,
2930 DXGI_FORMAT_UNKNOWN,
2931 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2932 GL_RGBA32F,
2933 Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
2934 return info;
2935 }
2936 case GL_RGB32I:
2937 {
2938 static constexpr Format info(GL_RGB32I,
2939 angle::FormatID::R32G32B32A32_SINT,
2940 DXGI_FORMAT_R32G32B32A32_SINT,
2941 DXGI_FORMAT_R32G32B32A32_SINT,
2942 DXGI_FORMAT_R32G32B32A32_SINT,
2943 DXGI_FORMAT_R32G32B32A32_SINT,
2944 DXGI_FORMAT_UNKNOWN,
2945 DXGI_FORMAT_R32G32B32A32_SINT,
2946 DXGI_FORMAT_UNKNOWN,
2947 DXGI_FORMAT_UNKNOWN,
2948 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2949 GL_RGBA32I,
2950 Initialize4ComponentData<GLint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
2951 return info;
2952 }
2953 case GL_RGB32UI:
2954 {
2955 static constexpr Format info(GL_RGB32UI,
2956 angle::FormatID::R32G32B32A32_UINT,
2957 DXGI_FORMAT_R32G32B32A32_UINT,
2958 DXGI_FORMAT_R32G32B32A32_UINT,
2959 DXGI_FORMAT_R32G32B32A32_UINT,
2960 DXGI_FORMAT_R32G32B32A32_UINT,
2961 DXGI_FORMAT_UNKNOWN,
2962 DXGI_FORMAT_R32G32B32A32_UINT,
2963 DXGI_FORMAT_UNKNOWN,
2964 DXGI_FORMAT_UNKNOWN,
2965 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2966 GL_RGBA32UI,
2967 Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
2968 return info;
2969 }
2970 case GL_RGB565:
2971 {
2972 if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
2973 {
2974 static constexpr Format info(GL_RGB565,
2975 angle::FormatID::B5G6R5_UNORM,
2976 DXGI_FORMAT_B5G6R5_UNORM,
2977 DXGI_FORMAT_B5G6R5_UNORM,
2978 DXGI_FORMAT_UNKNOWN,
2979 DXGI_FORMAT_B5G6R5_UNORM,
2980 DXGI_FORMAT_UNKNOWN,
2981 DXGI_FORMAT_B5G6R5_UNORM,
2982 DXGI_FORMAT_UNKNOWN,
2983 DXGI_FORMAT_UNKNOWN,
2984 DXGI_FORMAT_UNKNOWN,
2985 GL_RGBA8,
2986 nullptr);
2987 return info;
2988 }
2989 else
2990 {
2991 static constexpr Format info(GL_RGB565,
2992 angle::FormatID::R8G8B8A8_UNORM,
2993 DXGI_FORMAT_R8G8B8A8_UNORM,
2994 DXGI_FORMAT_R8G8B8A8_UNORM,
2995 DXGI_FORMAT_R8G8B8A8_UNORM,
2996 DXGI_FORMAT_R8G8B8A8_UNORM,
2997 DXGI_FORMAT_UNKNOWN,
2998 DXGI_FORMAT_R8G8B8A8_UNORM,
2999 DXGI_FORMAT_UNKNOWN,
3000 DXGI_FORMAT_UNKNOWN,
3001 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3002 GL_RGBA8,
3003 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
3004 return info;
3005 }
3006 }
3007 case GL_RGB5_A1:
3008 {
3009 if (SupportsFormat(DXGI_FORMAT_B5G5R5A1_UNORM, deviceCaps))
3010 {
3011 static constexpr Format info(GL_RGB5_A1,
3012 angle::FormatID::B5G5R5A1_UNORM,
3013 DXGI_FORMAT_B5G5R5A1_UNORM,
3014 DXGI_FORMAT_B5G5R5A1_UNORM,
3015 DXGI_FORMAT_UNKNOWN,
3016 DXGI_FORMAT_B5G5R5A1_UNORM,
3017 DXGI_FORMAT_UNKNOWN,
3018 DXGI_FORMAT_B5G5R5A1_UNORM,
3019 DXGI_FORMAT_UNKNOWN,
3020 DXGI_FORMAT_UNKNOWN,
3021 DXGI_FORMAT_UNKNOWN,
3022 GL_RGBA8,
3023 nullptr);
3024 return info;
3025 }
3026 else
3027 {
3028 static constexpr Format info(GL_RGB5_A1,
3029 angle::FormatID::R8G8B8A8_UNORM,
3030 DXGI_FORMAT_R8G8B8A8_UNORM,
3031 DXGI_FORMAT_R8G8B8A8_UNORM,
3032 DXGI_FORMAT_R8G8B8A8_UNORM,
3033 DXGI_FORMAT_R8G8B8A8_UNORM,
3034 DXGI_FORMAT_UNKNOWN,
3035 DXGI_FORMAT_R8G8B8A8_UNORM,
3036 DXGI_FORMAT_UNKNOWN,
3037 DXGI_FORMAT_UNKNOWN,
3038 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3039 GL_RGBA8,
3040 nullptr);
3041 return info;
3042 }
3043 }
3044 case GL_RGB8:
3045 {
3046 static constexpr Format info(GL_RGB8,
3047 angle::FormatID::R8G8B8A8_UNORM,
3048 DXGI_FORMAT_R8G8B8A8_UNORM,
3049 DXGI_FORMAT_R8G8B8A8_UNORM,
3050 DXGI_FORMAT_R8G8B8A8_UNORM,
3051 DXGI_FORMAT_R8G8B8A8_UNORM,
3052 DXGI_FORMAT_UNKNOWN,
3053 DXGI_FORMAT_R8G8B8A8_UNORM,
3054 DXGI_FORMAT_UNKNOWN,
3055 DXGI_FORMAT_UNKNOWN,
3056 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3057 GL_RGBA8,
3058 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
3059 return info;
3060 }
3061 case GL_RGB8I:
3062 {
3063 static constexpr Format info(GL_RGB8I,
3064 angle::FormatID::R8G8B8A8_SINT,
3065 DXGI_FORMAT_R8G8B8A8_SINT,
3066 DXGI_FORMAT_R8G8B8A8_SINT,
3067 DXGI_FORMAT_R8G8B8A8_SINT,
3068 DXGI_FORMAT_R8G8B8A8_SINT,
3069 DXGI_FORMAT_UNKNOWN,
3070 DXGI_FORMAT_R8G8B8A8_SINT,
3071 DXGI_FORMAT_UNKNOWN,
3072 DXGI_FORMAT_UNKNOWN,
3073 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3074 GL_RGBA8I,
3075 Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x01>);
3076 return info;
3077 }
3078 case GL_RGB8UI:
3079 {
3080 static constexpr Format info(GL_RGB8UI,
3081 angle::FormatID::R8G8B8A8_UINT,
3082 DXGI_FORMAT_R8G8B8A8_UINT,
3083 DXGI_FORMAT_R8G8B8A8_UINT,
3084 DXGI_FORMAT_R8G8B8A8_UINT,
3085 DXGI_FORMAT_R8G8B8A8_UINT,
3086 DXGI_FORMAT_UNKNOWN,
3087 DXGI_FORMAT_R8G8B8A8_UINT,
3088 DXGI_FORMAT_UNKNOWN,
3089 DXGI_FORMAT_UNKNOWN,
3090 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3091 GL_RGBA8UI,
3092 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0x01>);
3093 return info;
3094 }
3095 case GL_RGB8_SNORM:
3096 {
3097 static constexpr Format info(GL_RGB8_SNORM,
3098 angle::FormatID::R8G8B8A8_SNORM,
3099 DXGI_FORMAT_R8G8B8A8_SNORM,
3100 DXGI_FORMAT_R8G8B8A8_SNORM,
3101 DXGI_FORMAT_R8G8B8A8_SNORM,
3102 DXGI_FORMAT_R8G8B8A8_SNORM,
3103 DXGI_FORMAT_UNKNOWN,
3104 DXGI_FORMAT_R8G8B8A8_SNORM,
3105 DXGI_FORMAT_UNKNOWN,
3106 DXGI_FORMAT_UNKNOWN,
3107 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3108 GL_RGBA8_SNORM,
3109 Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x7F>);
3110 return info;
3111 }
3112 case GL_RGB9_E5:
3113 {
3114 static constexpr Format info(GL_RGB9_E5,
3115 angle::FormatID::R9G9B9E5_SHAREDEXP,
3116 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
3117 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
3118 DXGI_FORMAT_UNKNOWN,
3119 DXGI_FORMAT_UNKNOWN,
3120 DXGI_FORMAT_UNKNOWN,
3121 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
3122 DXGI_FORMAT_UNKNOWN,
3123 DXGI_FORMAT_UNKNOWN,
3124 DXGI_FORMAT_UNKNOWN,
3125 GL_RGBA16F_EXT,
3126 nullptr);
3127 return info;
3128 }
3129 case GL_RGBA:
3130 {
3131 static constexpr Format info(GL_RGBA,
3132 angle::FormatID::R8G8B8A8_UNORM,
3133 DXGI_FORMAT_R8G8B8A8_UNORM,
3134 DXGI_FORMAT_R8G8B8A8_UNORM,
3135 DXGI_FORMAT_R8G8B8A8_UNORM,
3136 DXGI_FORMAT_R8G8B8A8_UNORM,
3137 DXGI_FORMAT_UNKNOWN,
3138 DXGI_FORMAT_R8G8B8A8_UNORM,
3139 DXGI_FORMAT_UNKNOWN,
3140 DXGI_FORMAT_UNKNOWN,
3141 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3142 GL_RGBA8,
3143 nullptr);
3144 return info;
3145 }
3146 case GL_RGBA16F:
3147 {
3148 static constexpr Format info(GL_RGBA16F,
3149 angle::FormatID::R16G16B16A16_FLOAT,
3150 DXGI_FORMAT_R16G16B16A16_FLOAT,
3151 DXGI_FORMAT_R16G16B16A16_FLOAT,
3152 DXGI_FORMAT_R16G16B16A16_FLOAT,
3153 DXGI_FORMAT_R16G16B16A16_FLOAT,
3154 DXGI_FORMAT_UNKNOWN,
3155 DXGI_FORMAT_R16G16B16A16_FLOAT,
3156 DXGI_FORMAT_UNKNOWN,
3157 DXGI_FORMAT_UNKNOWN,
3158 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3159 GL_RGBA16F,
3160 nullptr);
3161 return info;
3162 }
3163 case GL_RGBA16I:
3164 {
3165 static constexpr Format info(GL_RGBA16I,
3166 angle::FormatID::R16G16B16A16_SINT,
3167 DXGI_FORMAT_R16G16B16A16_SINT,
3168 DXGI_FORMAT_R16G16B16A16_SINT,
3169 DXGI_FORMAT_R16G16B16A16_SINT,
3170 DXGI_FORMAT_R16G16B16A16_SINT,
3171 DXGI_FORMAT_UNKNOWN,
3172 DXGI_FORMAT_R16G16B16A16_SINT,
3173 DXGI_FORMAT_UNKNOWN,
3174 DXGI_FORMAT_UNKNOWN,
3175 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3176 GL_RGBA16I,
3177 nullptr);
3178 return info;
3179 }
3180 case GL_RGBA16UI:
3181 {
3182 static constexpr Format info(GL_RGBA16UI,
3183 angle::FormatID::R16G16B16A16_UINT,
3184 DXGI_FORMAT_R16G16B16A16_UINT,
3185 DXGI_FORMAT_R16G16B16A16_UINT,
3186 DXGI_FORMAT_R16G16B16A16_UINT,
3187 DXGI_FORMAT_R16G16B16A16_UINT,
3188 DXGI_FORMAT_UNKNOWN,
3189 DXGI_FORMAT_R16G16B16A16_UINT,
3190 DXGI_FORMAT_UNKNOWN,
3191 DXGI_FORMAT_UNKNOWN,
3192 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3193 GL_RGBA16UI,
3194 nullptr);
3195 return info;
3196 }
3197 case GL_RGBA16_EXT:
3198 {
3199 static constexpr Format info(GL_RGBA16_EXT,
3200 angle::FormatID::R16G16B16A16_UNORM,
3201 DXGI_FORMAT_R16G16B16A16_UNORM,
3202 DXGI_FORMAT_R16G16B16A16_UNORM,
3203 DXGI_FORMAT_UNKNOWN,
3204 DXGI_FORMAT_R16G16B16A16_UNORM,
3205 DXGI_FORMAT_UNKNOWN,
3206 DXGI_FORMAT_R16G16B16A16_UNORM,
3207 DXGI_FORMAT_UNKNOWN,
3208 DXGI_FORMAT_UNKNOWN,
3209 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3210 GL_RGBA16_EXT,
3211 nullptr);
3212 return info;
3213 }
3214 case GL_RGBA16_SNORM_EXT:
3215 {
3216 static constexpr Format info(GL_RGBA16_SNORM_EXT,
3217 angle::FormatID::R16G16B16A16_SNORM,
3218 DXGI_FORMAT_R16G16B16A16_SNORM,
3219 DXGI_FORMAT_R16G16B16A16_SNORM,
3220 DXGI_FORMAT_UNKNOWN,
3221 DXGI_FORMAT_R16G16B16A16_SNORM,
3222 DXGI_FORMAT_UNKNOWN,
3223 DXGI_FORMAT_R16G16B16A16_SNORM,
3224 DXGI_FORMAT_UNKNOWN,
3225 DXGI_FORMAT_UNKNOWN,
3226 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3227 GL_RGBA16_SNORM_EXT,
3228 nullptr);
3229 return info;
3230 }
3231 case GL_RGBA32F:
3232 {
3233 static constexpr Format info(GL_RGBA32F,
3234 angle::FormatID::R32G32B32A32_FLOAT,
3235 DXGI_FORMAT_R32G32B32A32_FLOAT,
3236 DXGI_FORMAT_R32G32B32A32_FLOAT,
3237 DXGI_FORMAT_R32G32B32A32_FLOAT,
3238 DXGI_FORMAT_R32G32B32A32_FLOAT,
3239 DXGI_FORMAT_UNKNOWN,
3240 DXGI_FORMAT_R32G32B32A32_FLOAT,
3241 DXGI_FORMAT_UNKNOWN,
3242 DXGI_FORMAT_UNKNOWN,
3243 DXGI_FORMAT_R32G32B32A32_TYPELESS,
3244 GL_RGBA32F,
3245 nullptr);
3246 return info;
3247 }
3248 case GL_RGBA32I:
3249 {
3250 static constexpr Format info(GL_RGBA32I,
3251 angle::FormatID::R32G32B32A32_SINT,
3252 DXGI_FORMAT_R32G32B32A32_SINT,
3253 DXGI_FORMAT_R32G32B32A32_SINT,
3254 DXGI_FORMAT_R32G32B32A32_SINT,
3255 DXGI_FORMAT_R32G32B32A32_SINT,
3256 DXGI_FORMAT_UNKNOWN,
3257 DXGI_FORMAT_R32G32B32A32_SINT,
3258 DXGI_FORMAT_UNKNOWN,
3259 DXGI_FORMAT_UNKNOWN,
3260 DXGI_FORMAT_R32G32B32A32_TYPELESS,
3261 GL_RGBA32I,
3262 nullptr);
3263 return info;
3264 }
3265 case GL_RGBA32UI:
3266 {
3267 static constexpr Format info(GL_RGBA32UI,
3268 angle::FormatID::R32G32B32A32_UINT,
3269 DXGI_FORMAT_R32G32B32A32_UINT,
3270 DXGI_FORMAT_R32G32B32A32_UINT,
3271 DXGI_FORMAT_R32G32B32A32_UINT,
3272 DXGI_FORMAT_R32G32B32A32_UINT,
3273 DXGI_FORMAT_UNKNOWN,
3274 DXGI_FORMAT_R32G32B32A32_UINT,
3275 DXGI_FORMAT_UNKNOWN,
3276 DXGI_FORMAT_UNKNOWN,
3277 DXGI_FORMAT_R32G32B32A32_TYPELESS,
3278 GL_RGBA32UI,
3279 nullptr);
3280 return info;
3281 }
3282 case GL_RGBA4:
3283 {
3284 if (SupportsFormat(DXGI_FORMAT_B4G4R4A4_UNORM, deviceCaps))
3285 {
3286 static constexpr Format info(GL_RGBA4,
3287 angle::FormatID::B4G4R4A4_UNORM,
3288 DXGI_FORMAT_B4G4R4A4_UNORM,
3289 DXGI_FORMAT_B4G4R4A4_UNORM,
3290 DXGI_FORMAT_UNKNOWN,
3291 DXGI_FORMAT_B4G4R4A4_UNORM,
3292 DXGI_FORMAT_UNKNOWN,
3293 DXGI_FORMAT_B4G4R4A4_UNORM,
3294 DXGI_FORMAT_UNKNOWN,
3295 DXGI_FORMAT_UNKNOWN,
3296 DXGI_FORMAT_UNKNOWN,
3297 GL_RGBA4,
3298 nullptr);
3299 return info;
3300 }
3301 else
3302 {
3303 static constexpr Format info(GL_RGBA4,
3304 angle::FormatID::R8G8B8A8_UNORM,
3305 DXGI_FORMAT_R8G8B8A8_UNORM,
3306 DXGI_FORMAT_R8G8B8A8_UNORM,
3307 DXGI_FORMAT_R8G8B8A8_UNORM,
3308 DXGI_FORMAT_R8G8B8A8_UNORM,
3309 DXGI_FORMAT_UNKNOWN,
3310 DXGI_FORMAT_R8G8B8A8_UNORM,
3311 DXGI_FORMAT_UNKNOWN,
3312 DXGI_FORMAT_UNKNOWN,
3313 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3314 GL_RGBA8,
3315 nullptr);
3316 return info;
3317 }
3318 }
3319 case GL_RGBA8:
3320 {
3321 static constexpr Format info(GL_RGBA8,
3322 angle::FormatID::R8G8B8A8_UNORM,
3323 DXGI_FORMAT_R8G8B8A8_UNORM,
3324 DXGI_FORMAT_R8G8B8A8_UNORM,
3325 DXGI_FORMAT_R8G8B8A8_UNORM,
3326 DXGI_FORMAT_R8G8B8A8_UNORM,
3327 DXGI_FORMAT_UNKNOWN,
3328 DXGI_FORMAT_R8G8B8A8_UNORM,
3329 DXGI_FORMAT_UNKNOWN,
3330 DXGI_FORMAT_UNKNOWN,
3331 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3332 GL_RGBA8,
3333 nullptr);
3334 return info;
3335 }
3336 case GL_RGBA8I:
3337 {
3338 static constexpr Format info(GL_RGBA8I,
3339 angle::FormatID::R8G8B8A8_SINT,
3340 DXGI_FORMAT_R8G8B8A8_SINT,
3341 DXGI_FORMAT_R8G8B8A8_SINT,
3342 DXGI_FORMAT_R8G8B8A8_SINT,
3343 DXGI_FORMAT_R8G8B8A8_SINT,
3344 DXGI_FORMAT_UNKNOWN,
3345 DXGI_FORMAT_R8G8B8A8_SINT,
3346 DXGI_FORMAT_UNKNOWN,
3347 DXGI_FORMAT_UNKNOWN,
3348 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3349 GL_RGBA8I,
3350 nullptr);
3351 return info;
3352 }
3353 case GL_RGBA8UI:
3354 {
3355 static constexpr Format info(GL_RGBA8UI,
3356 angle::FormatID::R8G8B8A8_UINT,
3357 DXGI_FORMAT_R8G8B8A8_UINT,
3358 DXGI_FORMAT_R8G8B8A8_UINT,
3359 DXGI_FORMAT_R8G8B8A8_UINT,
3360 DXGI_FORMAT_R8G8B8A8_UINT,
3361 DXGI_FORMAT_UNKNOWN,
3362 DXGI_FORMAT_R8G8B8A8_UINT,
3363 DXGI_FORMAT_UNKNOWN,
3364 DXGI_FORMAT_UNKNOWN,
3365 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3366 GL_RGBA8UI,
3367 nullptr);
3368 return info;
3369 }
3370 case GL_RGBA8_SNORM:
3371 {
3372 static constexpr Format info(GL_RGBA8_SNORM,
3373 angle::FormatID::R8G8B8A8_SNORM,
3374 DXGI_FORMAT_R8G8B8A8_SNORM,
3375 DXGI_FORMAT_R8G8B8A8_SNORM,
3376 DXGI_FORMAT_R8G8B8A8_SNORM,
3377 DXGI_FORMAT_R8G8B8A8_SNORM,
3378 DXGI_FORMAT_UNKNOWN,
3379 DXGI_FORMAT_R8G8B8A8_SNORM,
3380 DXGI_FORMAT_UNKNOWN,
3381 DXGI_FORMAT_UNKNOWN,
3382 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3383 GL_RGBA8_SNORM,
3384 nullptr);
3385 return info;
3386 }
3387 case GL_RGBX8_ANGLE:
3388 {
3389 if (OnlyFL11_1Plus(deviceCaps))
3390 {
3391 static constexpr Format info(GL_RGBX8_ANGLE,
3392 angle::FormatID::R8G8B8X8_UNORM,
3393 DXGI_FORMAT_B8G8R8X8_UNORM,
3394 DXGI_FORMAT_B8G8R8X8_UNORM,
3395 DXGI_FORMAT_UNKNOWN,
3396 DXGI_FORMAT_B8G8R8X8_UNORM,
3397 DXGI_FORMAT_UNKNOWN,
3398 DXGI_FORMAT_B8G8R8X8_UNORM,
3399 DXGI_FORMAT_UNKNOWN,
3400 DXGI_FORMAT_UNKNOWN,
3401 DXGI_FORMAT_UNKNOWN,
3402 GL_RGBX8_ANGLE,
3403 nullptr);
3404 return info;
3405 }
3406 else
3407 {
3408 static constexpr Format info(GL_RGBX8_ANGLE,
3409 angle::FormatID::R8G8B8A8_UNORM,
3410 DXGI_FORMAT_R8G8B8A8_UNORM,
3411 DXGI_FORMAT_R8G8B8A8_UNORM,
3412 DXGI_FORMAT_R8G8B8A8_UNORM,
3413 DXGI_FORMAT_R8G8B8A8_UNORM,
3414 DXGI_FORMAT_UNKNOWN,
3415 DXGI_FORMAT_R8G8B8A8_UNORM,
3416 DXGI_FORMAT_UNKNOWN,
3417 DXGI_FORMAT_UNKNOWN,
3418 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3419 GL_RGBA8,
3420 nullptr);
3421 return info;
3422 }
3423 }
3424 case GL_RGBX8_SRGB_ANGLEX:
3425 {
3426 if (OnlyFL11_1Plus(deviceCaps))
3427 {
3428 static constexpr Format info(GL_RGBX8_SRGB_ANGLEX,
3429 angle::FormatID::R8G8B8X8_UNORM_SRGB,
3430 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3431 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3432 DXGI_FORMAT_UNKNOWN,
3433 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3434 DXGI_FORMAT_UNKNOWN,
3435 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3436 DXGI_FORMAT_UNKNOWN,
3437 DXGI_FORMAT_B8G8R8X8_UNORM,
3438 DXGI_FORMAT_B8G8R8X8_TYPELESS,
3439 GL_RGBX8_SRGB_ANGLEX,
3440 nullptr);
3441 return info;
3442 }
3443 else
3444 {
3445 static constexpr Format info(GL_RGBX8_SRGB_ANGLEX,
3446 angle::FormatID::R8G8B8A8_UNORM_SRGB,
3447 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3448 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3449 DXGI_FORMAT_UNKNOWN,
3450 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3451 DXGI_FORMAT_UNKNOWN,
3452 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3453 DXGI_FORMAT_UNKNOWN,
3454 DXGI_FORMAT_R8G8B8A8_UNORM,
3455 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3456 GL_SRGB8_ALPHA8,
3457 nullptr);
3458 return info;
3459 }
3460 }
3461 case GL_SR8_EXT:
3462 {
3463 static constexpr Format info(GL_SR8_EXT,
3464 angle::FormatID::NONE,
3465 DXGI_FORMAT_UNKNOWN,
3466 DXGI_FORMAT_UNKNOWN,
3467 DXGI_FORMAT_UNKNOWN,
3468 DXGI_FORMAT_UNKNOWN,
3469 DXGI_FORMAT_UNKNOWN,
3470 DXGI_FORMAT_UNKNOWN,
3471 DXGI_FORMAT_UNKNOWN,
3472 DXGI_FORMAT_UNKNOWN,
3473 DXGI_FORMAT_UNKNOWN,
3474 GL_NONE,
3475 nullptr);
3476 return info;
3477 }
3478 case GL_SRG8_EXT:
3479 {
3480 static constexpr Format info(GL_SRG8_EXT,
3481 angle::FormatID::NONE,
3482 DXGI_FORMAT_UNKNOWN,
3483 DXGI_FORMAT_UNKNOWN,
3484 DXGI_FORMAT_UNKNOWN,
3485 DXGI_FORMAT_UNKNOWN,
3486 DXGI_FORMAT_UNKNOWN,
3487 DXGI_FORMAT_UNKNOWN,
3488 DXGI_FORMAT_UNKNOWN,
3489 DXGI_FORMAT_UNKNOWN,
3490 DXGI_FORMAT_UNKNOWN,
3491 GL_NONE,
3492 nullptr);
3493 return info;
3494 }
3495 case GL_SRGB8:
3496 {
3497 static constexpr Format info(GL_SRGB8,
3498 angle::FormatID::R8G8B8A8_UNORM_SRGB,
3499 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3500 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3501 DXGI_FORMAT_UNKNOWN,
3502 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3503 DXGI_FORMAT_UNKNOWN,
3504 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3505 DXGI_FORMAT_UNKNOWN,
3506 DXGI_FORMAT_R8G8B8A8_UNORM,
3507 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3508 GL_SRGB8_ALPHA8,
3509 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
3510 return info;
3511 }
3512 case GL_SRGB8_ALPHA8:
3513 {
3514 static constexpr Format info(GL_SRGB8_ALPHA8,
3515 angle::FormatID::R8G8B8A8_UNORM_SRGB,
3516 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3517 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3518 DXGI_FORMAT_UNKNOWN,
3519 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3520 DXGI_FORMAT_UNKNOWN,
3521 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3522 DXGI_FORMAT_UNKNOWN,
3523 DXGI_FORMAT_R8G8B8A8_UNORM,
3524 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3525 GL_SRGB8_ALPHA8,
3526 nullptr);
3527 return info;
3528 }
3529 case GL_STENCIL_INDEX8:
3530 {
3531 if (OnlyFL10Plus(deviceCaps))
3532 {
3533 static constexpr Format info(GL_STENCIL_INDEX8,
3534 angle::FormatID::D24_UNORM_S8_UINT,
3535 DXGI_FORMAT_R24G8_TYPELESS,
3536 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
3537 DXGI_FORMAT_UNKNOWN,
3538 DXGI_FORMAT_UNKNOWN,
3539 DXGI_FORMAT_D24_UNORM_S8_UINT,
3540 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
3541 DXGI_FORMAT_X24_TYPELESS_G8_UINT,
3542 DXGI_FORMAT_UNKNOWN,
3543 DXGI_FORMAT_UNKNOWN,
3544 GL_RGBA32F,
3545 nullptr);
3546 return info;
3547 }
3548 else
3549 {
3550 static constexpr Format info(GL_STENCIL_INDEX8,
3551 angle::FormatID::D24_UNORM_S8_UINT,
3552 DXGI_FORMAT_D24_UNORM_S8_UINT,
3553 DXGI_FORMAT_UNKNOWN,
3554 DXGI_FORMAT_UNKNOWN,
3555 DXGI_FORMAT_UNKNOWN,
3556 DXGI_FORMAT_D24_UNORM_S8_UINT,
3557 DXGI_FORMAT_UNKNOWN,
3558 DXGI_FORMAT_UNKNOWN,
3559 DXGI_FORMAT_UNKNOWN,
3560 DXGI_FORMAT_UNKNOWN,
3561 GL_RGBA32F,
3562 nullptr);
3563 return info;
3564 }
3565 }
3566
3567 default:
3568 break;
3569 }
3570 // clang-format on
3571
3572 UNREACHABLE();
3573 static constexpr Format defaultInfo;
3574 return defaultInfo;
3575 }
3576
3577 } // namespace d3d11
3578
3579 } // namespace rx
3580