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_LUMINANCE8_ALPHA8_EXT:
2050 {
2051 static constexpr Format info(GL_LUMINANCE8_ALPHA8_EXT,
2052 angle::FormatID::R8G8B8A8_UNORM,
2053 DXGI_FORMAT_R8G8B8A8_UNORM,
2054 DXGI_FORMAT_R8G8B8A8_UNORM,
2055 DXGI_FORMAT_R8G8B8A8_UNORM,
2056 DXGI_FORMAT_R8G8B8A8_UNORM,
2057 DXGI_FORMAT_UNKNOWN,
2058 DXGI_FORMAT_R8G8B8A8_UNORM,
2059 DXGI_FORMAT_UNKNOWN,
2060 DXGI_FORMAT_UNKNOWN,
2061 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2062 GL_RGBA8,
2063 nullptr);
2064 return info;
2065 }
2066 case GL_LUMINANCE8_EXT:
2067 {
2068 static constexpr Format info(GL_LUMINANCE8_EXT,
2069 angle::FormatID::R8G8B8A8_UNORM,
2070 DXGI_FORMAT_R8G8B8A8_UNORM,
2071 DXGI_FORMAT_R8G8B8A8_UNORM,
2072 DXGI_FORMAT_R8G8B8A8_UNORM,
2073 DXGI_FORMAT_R8G8B8A8_UNORM,
2074 DXGI_FORMAT_UNKNOWN,
2075 DXGI_FORMAT_R8G8B8A8_UNORM,
2076 DXGI_FORMAT_UNKNOWN,
2077 DXGI_FORMAT_UNKNOWN,
2078 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2079 GL_RGBA8,
2080 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2081 return info;
2082 }
2083 case GL_LUMINANCE_ALPHA16F_EXT:
2084 {
2085 static constexpr Format info(GL_LUMINANCE_ALPHA16F_EXT,
2086 angle::FormatID::R16G16B16A16_FLOAT,
2087 DXGI_FORMAT_R16G16B16A16_FLOAT,
2088 DXGI_FORMAT_R16G16B16A16_FLOAT,
2089 DXGI_FORMAT_R16G16B16A16_FLOAT,
2090 DXGI_FORMAT_R16G16B16A16_FLOAT,
2091 DXGI_FORMAT_UNKNOWN,
2092 DXGI_FORMAT_R16G16B16A16_FLOAT,
2093 DXGI_FORMAT_UNKNOWN,
2094 DXGI_FORMAT_UNKNOWN,
2095 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2096 GL_RGBA16F,
2097 nullptr);
2098 return info;
2099 }
2100 case GL_LUMINANCE_ALPHA32F_EXT:
2101 {
2102 static constexpr Format info(GL_LUMINANCE_ALPHA32F_EXT,
2103 angle::FormatID::R32G32B32A32_FLOAT,
2104 DXGI_FORMAT_R32G32B32A32_FLOAT,
2105 DXGI_FORMAT_R32G32B32A32_FLOAT,
2106 DXGI_FORMAT_R32G32B32A32_FLOAT,
2107 DXGI_FORMAT_R32G32B32A32_FLOAT,
2108 DXGI_FORMAT_UNKNOWN,
2109 DXGI_FORMAT_R32G32B32A32_FLOAT,
2110 DXGI_FORMAT_UNKNOWN,
2111 DXGI_FORMAT_UNKNOWN,
2112 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2113 GL_RGBA32F,
2114 nullptr);
2115 return info;
2116 }
2117 case GL_NONE:
2118 {
2119 static constexpr Format info(GL_NONE,
2120 angle::FormatID::NONE,
2121 DXGI_FORMAT_UNKNOWN,
2122 DXGI_FORMAT_UNKNOWN,
2123 DXGI_FORMAT_UNKNOWN,
2124 DXGI_FORMAT_UNKNOWN,
2125 DXGI_FORMAT_UNKNOWN,
2126 DXGI_FORMAT_UNKNOWN,
2127 DXGI_FORMAT_UNKNOWN,
2128 DXGI_FORMAT_UNKNOWN,
2129 DXGI_FORMAT_UNKNOWN,
2130 GL_NONE,
2131 nullptr);
2132 return info;
2133 }
2134 case GL_PALETTE4_R5_G6_B5_OES:
2135 {
2136 static constexpr Format info(GL_PALETTE4_R5_G6_B5_OES,
2137 angle::FormatID::NONE,
2138 DXGI_FORMAT_UNKNOWN,
2139 DXGI_FORMAT_UNKNOWN,
2140 DXGI_FORMAT_UNKNOWN,
2141 DXGI_FORMAT_UNKNOWN,
2142 DXGI_FORMAT_UNKNOWN,
2143 DXGI_FORMAT_UNKNOWN,
2144 DXGI_FORMAT_UNKNOWN,
2145 DXGI_FORMAT_UNKNOWN,
2146 DXGI_FORMAT_UNKNOWN,
2147 GL_NONE,
2148 nullptr);
2149 return info;
2150 }
2151 case GL_PALETTE4_RGB5_A1_OES:
2152 {
2153 static constexpr Format info(GL_PALETTE4_RGB5_A1_OES,
2154 angle::FormatID::NONE,
2155 DXGI_FORMAT_UNKNOWN,
2156 DXGI_FORMAT_UNKNOWN,
2157 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2165 nullptr);
2166 return info;
2167 }
2168 case GL_PALETTE4_RGB8_OES:
2169 {
2170 static constexpr Format info(GL_PALETTE4_RGB8_OES,
2171 angle::FormatID::NONE,
2172 DXGI_FORMAT_UNKNOWN,
2173 DXGI_FORMAT_UNKNOWN,
2174 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2182 nullptr);
2183 return info;
2184 }
2185 case GL_PALETTE4_RGBA4_OES:
2186 {
2187 static constexpr Format info(GL_PALETTE4_RGBA4_OES,
2188 angle::FormatID::NONE,
2189 DXGI_FORMAT_UNKNOWN,
2190 DXGI_FORMAT_UNKNOWN,
2191 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2199 nullptr);
2200 return info;
2201 }
2202 case GL_PALETTE4_RGBA8_OES:
2203 {
2204 static constexpr Format info(GL_PALETTE4_RGBA8_OES,
2205 angle::FormatID::NONE,
2206 DXGI_FORMAT_UNKNOWN,
2207 DXGI_FORMAT_UNKNOWN,
2208 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2216 nullptr);
2217 return info;
2218 }
2219 case GL_PALETTE8_R5_G6_B5_OES:
2220 {
2221 static constexpr Format info(GL_PALETTE8_R5_G6_B5_OES,
2222 angle::FormatID::NONE,
2223 DXGI_FORMAT_UNKNOWN,
2224 DXGI_FORMAT_UNKNOWN,
2225 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2233 nullptr);
2234 return info;
2235 }
2236 case GL_PALETTE8_RGB5_A1_OES:
2237 {
2238 static constexpr Format info(GL_PALETTE8_RGB5_A1_OES,
2239 angle::FormatID::NONE,
2240 DXGI_FORMAT_UNKNOWN,
2241 DXGI_FORMAT_UNKNOWN,
2242 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2250 nullptr);
2251 return info;
2252 }
2253 case GL_PALETTE8_RGB8_OES:
2254 {
2255 static constexpr Format info(GL_PALETTE8_RGB8_OES,
2256 angle::FormatID::NONE,
2257 DXGI_FORMAT_UNKNOWN,
2258 DXGI_FORMAT_UNKNOWN,
2259 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2267 nullptr);
2268 return info;
2269 }
2270 case GL_PALETTE8_RGBA4_OES:
2271 {
2272 static constexpr Format info(GL_PALETTE8_RGBA4_OES,
2273 angle::FormatID::NONE,
2274 DXGI_FORMAT_UNKNOWN,
2275 DXGI_FORMAT_UNKNOWN,
2276 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2284 nullptr);
2285 return info;
2286 }
2287 case GL_PALETTE8_RGBA8_OES:
2288 {
2289 static constexpr Format info(GL_PALETTE8_RGBA8_OES,
2290 angle::FormatID::NONE,
2291 DXGI_FORMAT_UNKNOWN,
2292 DXGI_FORMAT_UNKNOWN,
2293 DXGI_FORMAT_UNKNOWN,
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 GL_NONE,
2301 nullptr);
2302 return info;
2303 }
2304 case GL_R11F_G11F_B10F:
2305 {
2306 static constexpr Format info(GL_R11F_G11F_B10F,
2307 angle::FormatID::R11G11B10_FLOAT,
2308 DXGI_FORMAT_R11G11B10_FLOAT,
2309 DXGI_FORMAT_R11G11B10_FLOAT,
2310 DXGI_FORMAT_UNKNOWN,
2311 DXGI_FORMAT_R11G11B10_FLOAT,
2312 DXGI_FORMAT_UNKNOWN,
2313 DXGI_FORMAT_R11G11B10_FLOAT,
2314 DXGI_FORMAT_UNKNOWN,
2315 DXGI_FORMAT_UNKNOWN,
2316 DXGI_FORMAT_UNKNOWN,
2317 GL_RGBA16F_EXT,
2318 nullptr);
2319 return info;
2320 }
2321 case GL_R16F:
2322 {
2323 static constexpr Format info(GL_R16F,
2324 angle::FormatID::R16_FLOAT,
2325 DXGI_FORMAT_R16_FLOAT,
2326 DXGI_FORMAT_R16_FLOAT,
2327 DXGI_FORMAT_UNKNOWN,
2328 DXGI_FORMAT_R16_FLOAT,
2329 DXGI_FORMAT_UNKNOWN,
2330 DXGI_FORMAT_R16_FLOAT,
2331 DXGI_FORMAT_UNKNOWN,
2332 DXGI_FORMAT_UNKNOWN,
2333 DXGI_FORMAT_R16_TYPELESS,
2334 GL_RGBA16F_EXT,
2335 nullptr);
2336 return info;
2337 }
2338 case GL_R16I:
2339 {
2340 static constexpr Format info(GL_R16I,
2341 angle::FormatID::R16_SINT,
2342 DXGI_FORMAT_R16_SINT,
2343 DXGI_FORMAT_R16_SINT,
2344 DXGI_FORMAT_UNKNOWN,
2345 DXGI_FORMAT_R16_SINT,
2346 DXGI_FORMAT_UNKNOWN,
2347 DXGI_FORMAT_R16_SINT,
2348 DXGI_FORMAT_UNKNOWN,
2349 DXGI_FORMAT_UNKNOWN,
2350 DXGI_FORMAT_R16_TYPELESS,
2351 GL_RGBA16I,
2352 nullptr);
2353 return info;
2354 }
2355 case GL_R16UI:
2356 {
2357 static constexpr Format info(GL_R16UI,
2358 angle::FormatID::R16_UINT,
2359 DXGI_FORMAT_R16_UINT,
2360 DXGI_FORMAT_R16_UINT,
2361 DXGI_FORMAT_UNKNOWN,
2362 DXGI_FORMAT_R16_UINT,
2363 DXGI_FORMAT_UNKNOWN,
2364 DXGI_FORMAT_R16_UINT,
2365 DXGI_FORMAT_UNKNOWN,
2366 DXGI_FORMAT_UNKNOWN,
2367 DXGI_FORMAT_R16_TYPELESS,
2368 GL_RGBA16I,
2369 nullptr);
2370 return info;
2371 }
2372 case GL_R16_EXT:
2373 {
2374 static constexpr Format info(GL_R16_EXT,
2375 angle::FormatID::R16_UNORM,
2376 DXGI_FORMAT_R16_UNORM,
2377 DXGI_FORMAT_R16_UNORM,
2378 DXGI_FORMAT_UNKNOWN,
2379 DXGI_FORMAT_R16_UNORM,
2380 DXGI_FORMAT_UNKNOWN,
2381 DXGI_FORMAT_R16_UNORM,
2382 DXGI_FORMAT_UNKNOWN,
2383 DXGI_FORMAT_UNKNOWN,
2384 DXGI_FORMAT_R16_TYPELESS,
2385 GL_RGBA16_EXT,
2386 nullptr);
2387 return info;
2388 }
2389 case GL_R16_SNORM_EXT:
2390 {
2391 static constexpr Format info(GL_R16_SNORM_EXT,
2392 angle::FormatID::R16_SNORM,
2393 DXGI_FORMAT_R16_SNORM,
2394 DXGI_FORMAT_R16_SNORM,
2395 DXGI_FORMAT_UNKNOWN,
2396 DXGI_FORMAT_R16_SNORM,
2397 DXGI_FORMAT_UNKNOWN,
2398 DXGI_FORMAT_R16_SNORM,
2399 DXGI_FORMAT_UNKNOWN,
2400 DXGI_FORMAT_UNKNOWN,
2401 DXGI_FORMAT_R16_TYPELESS,
2402 GL_RGBA16_SNORM_EXT,
2403 nullptr);
2404 return info;
2405 }
2406 case GL_R32F:
2407 {
2408 static constexpr Format info(GL_R32F,
2409 angle::FormatID::R32_FLOAT,
2410 DXGI_FORMAT_R32_FLOAT,
2411 DXGI_FORMAT_R32_FLOAT,
2412 DXGI_FORMAT_R32_FLOAT,
2413 DXGI_FORMAT_R32_FLOAT,
2414 DXGI_FORMAT_UNKNOWN,
2415 DXGI_FORMAT_R32_FLOAT,
2416 DXGI_FORMAT_UNKNOWN,
2417 DXGI_FORMAT_UNKNOWN,
2418 DXGI_FORMAT_R32_TYPELESS,
2419 GL_RGBA32F,
2420 nullptr);
2421 return info;
2422 }
2423 case GL_R32I:
2424 {
2425 static constexpr Format info(GL_R32I,
2426 angle::FormatID::R32_SINT,
2427 DXGI_FORMAT_R32_SINT,
2428 DXGI_FORMAT_R32_SINT,
2429 DXGI_FORMAT_R32_SINT,
2430 DXGI_FORMAT_R32_SINT,
2431 DXGI_FORMAT_UNKNOWN,
2432 DXGI_FORMAT_R32_SINT,
2433 DXGI_FORMAT_UNKNOWN,
2434 DXGI_FORMAT_UNKNOWN,
2435 DXGI_FORMAT_R32_TYPELESS,
2436 GL_RGBA32I,
2437 nullptr);
2438 return info;
2439 }
2440 case GL_R32UI:
2441 {
2442 static constexpr Format info(GL_R32UI,
2443 angle::FormatID::R32_UINT,
2444 DXGI_FORMAT_R32_UINT,
2445 DXGI_FORMAT_R32_UINT,
2446 DXGI_FORMAT_R32_UINT,
2447 DXGI_FORMAT_R32_UINT,
2448 DXGI_FORMAT_UNKNOWN,
2449 DXGI_FORMAT_R32_UINT,
2450 DXGI_FORMAT_UNKNOWN,
2451 DXGI_FORMAT_UNKNOWN,
2452 DXGI_FORMAT_R32_TYPELESS,
2453 GL_RGBA32I,
2454 nullptr);
2455 return info;
2456 }
2457 case GL_R8:
2458 {
2459 static constexpr Format info(GL_R8,
2460 angle::FormatID::R8_UNORM,
2461 DXGI_FORMAT_R8_UNORM,
2462 DXGI_FORMAT_R8_UNORM,
2463 DXGI_FORMAT_UNKNOWN,
2464 DXGI_FORMAT_R8_UNORM,
2465 DXGI_FORMAT_UNKNOWN,
2466 DXGI_FORMAT_R8_UNORM,
2467 DXGI_FORMAT_UNKNOWN,
2468 DXGI_FORMAT_UNKNOWN,
2469 DXGI_FORMAT_R8_TYPELESS,
2470 GL_RGBA8,
2471 nullptr);
2472 return info;
2473 }
2474 case GL_R8I:
2475 {
2476 static constexpr Format info(GL_R8I,
2477 angle::FormatID::R8_SINT,
2478 DXGI_FORMAT_R8_SINT,
2479 DXGI_FORMAT_R8_SINT,
2480 DXGI_FORMAT_UNKNOWN,
2481 DXGI_FORMAT_R8_SINT,
2482 DXGI_FORMAT_UNKNOWN,
2483 DXGI_FORMAT_R8_SINT,
2484 DXGI_FORMAT_UNKNOWN,
2485 DXGI_FORMAT_UNKNOWN,
2486 DXGI_FORMAT_R8_TYPELESS,
2487 GL_RGBA8I,
2488 nullptr);
2489 return info;
2490 }
2491 case GL_R8UI:
2492 {
2493 static constexpr Format info(GL_R8UI,
2494 angle::FormatID::R8_UINT,
2495 DXGI_FORMAT_R8_UINT,
2496 DXGI_FORMAT_R8_UINT,
2497 DXGI_FORMAT_UNKNOWN,
2498 DXGI_FORMAT_R8_UINT,
2499 DXGI_FORMAT_UNKNOWN,
2500 DXGI_FORMAT_R8_UINT,
2501 DXGI_FORMAT_UNKNOWN,
2502 DXGI_FORMAT_UNKNOWN,
2503 DXGI_FORMAT_R8_TYPELESS,
2504 GL_RGBA8I,
2505 nullptr);
2506 return info;
2507 }
2508 case GL_R8_SNORM:
2509 {
2510 static constexpr Format info(GL_R8_SNORM,
2511 angle::FormatID::R8_SNORM,
2512 DXGI_FORMAT_R8_SNORM,
2513 DXGI_FORMAT_R8_SNORM,
2514 DXGI_FORMAT_UNKNOWN,
2515 DXGI_FORMAT_R8_SNORM,
2516 DXGI_FORMAT_UNKNOWN,
2517 DXGI_FORMAT_R8_SNORM,
2518 DXGI_FORMAT_UNKNOWN,
2519 DXGI_FORMAT_UNKNOWN,
2520 DXGI_FORMAT_R8_TYPELESS,
2521 GL_RGBA8_SNORM,
2522 nullptr);
2523 return info;
2524 }
2525 case GL_RG16F:
2526 {
2527 static constexpr Format info(GL_RG16F,
2528 angle::FormatID::R16G16_FLOAT,
2529 DXGI_FORMAT_R16G16_FLOAT,
2530 DXGI_FORMAT_R16G16_FLOAT,
2531 DXGI_FORMAT_UNKNOWN,
2532 DXGI_FORMAT_R16G16_FLOAT,
2533 DXGI_FORMAT_UNKNOWN,
2534 DXGI_FORMAT_R16G16_FLOAT,
2535 DXGI_FORMAT_UNKNOWN,
2536 DXGI_FORMAT_UNKNOWN,
2537 DXGI_FORMAT_R16G16_TYPELESS,
2538 GL_RGBA16F_EXT,
2539 nullptr);
2540 return info;
2541 }
2542 case GL_RG16I:
2543 {
2544 static constexpr Format info(GL_RG16I,
2545 angle::FormatID::R16G16_SINT,
2546 DXGI_FORMAT_R16G16_SINT,
2547 DXGI_FORMAT_R16G16_SINT,
2548 DXGI_FORMAT_UNKNOWN,
2549 DXGI_FORMAT_R16G16_SINT,
2550 DXGI_FORMAT_UNKNOWN,
2551 DXGI_FORMAT_R16G16_SINT,
2552 DXGI_FORMAT_UNKNOWN,
2553 DXGI_FORMAT_UNKNOWN,
2554 DXGI_FORMAT_R16G16_TYPELESS,
2555 GL_RGBA16I,
2556 nullptr);
2557 return info;
2558 }
2559 case GL_RG16UI:
2560 {
2561 static constexpr Format info(GL_RG16UI,
2562 angle::FormatID::R16G16_UINT,
2563 DXGI_FORMAT_R16G16_UINT,
2564 DXGI_FORMAT_R16G16_UINT,
2565 DXGI_FORMAT_UNKNOWN,
2566 DXGI_FORMAT_R16G16_UINT,
2567 DXGI_FORMAT_UNKNOWN,
2568 DXGI_FORMAT_R16G16_UINT,
2569 DXGI_FORMAT_UNKNOWN,
2570 DXGI_FORMAT_UNKNOWN,
2571 DXGI_FORMAT_R16G16_TYPELESS,
2572 GL_RGBA16I,
2573 nullptr);
2574 return info;
2575 }
2576 case GL_RG16_EXT:
2577 {
2578 static constexpr Format info(GL_RG16_EXT,
2579 angle::FormatID::R16G16_UNORM,
2580 DXGI_FORMAT_R16G16_UNORM,
2581 DXGI_FORMAT_R16G16_UNORM,
2582 DXGI_FORMAT_UNKNOWN,
2583 DXGI_FORMAT_R16G16_UNORM,
2584 DXGI_FORMAT_UNKNOWN,
2585 DXGI_FORMAT_R16G16_UNORM,
2586 DXGI_FORMAT_UNKNOWN,
2587 DXGI_FORMAT_UNKNOWN,
2588 DXGI_FORMAT_R16G16_TYPELESS,
2589 GL_RGBA16_EXT,
2590 nullptr);
2591 return info;
2592 }
2593 case GL_RG16_SNORM_EXT:
2594 {
2595 static constexpr Format info(GL_RG16_SNORM_EXT,
2596 angle::FormatID::R16G16_SNORM,
2597 DXGI_FORMAT_R16G16_SNORM,
2598 DXGI_FORMAT_R16G16_SNORM,
2599 DXGI_FORMAT_UNKNOWN,
2600 DXGI_FORMAT_R16G16_SNORM,
2601 DXGI_FORMAT_UNKNOWN,
2602 DXGI_FORMAT_R16G16_SNORM,
2603 DXGI_FORMAT_UNKNOWN,
2604 DXGI_FORMAT_UNKNOWN,
2605 DXGI_FORMAT_R16G16_TYPELESS,
2606 GL_RGBA16_SNORM_EXT,
2607 nullptr);
2608 return info;
2609 }
2610 case GL_RG32F:
2611 {
2612 static constexpr Format info(GL_RG32F,
2613 angle::FormatID::R32G32_FLOAT,
2614 DXGI_FORMAT_R32G32_FLOAT,
2615 DXGI_FORMAT_R32G32_FLOAT,
2616 DXGI_FORMAT_UNKNOWN,
2617 DXGI_FORMAT_R32G32_FLOAT,
2618 DXGI_FORMAT_UNKNOWN,
2619 DXGI_FORMAT_R32G32_FLOAT,
2620 DXGI_FORMAT_UNKNOWN,
2621 DXGI_FORMAT_UNKNOWN,
2622 DXGI_FORMAT_R32G32_TYPELESS,
2623 GL_RGBA32F,
2624 nullptr);
2625 return info;
2626 }
2627 case GL_RG32I:
2628 {
2629 static constexpr Format info(GL_RG32I,
2630 angle::FormatID::R32G32_SINT,
2631 DXGI_FORMAT_R32G32_SINT,
2632 DXGI_FORMAT_R32G32_SINT,
2633 DXGI_FORMAT_UNKNOWN,
2634 DXGI_FORMAT_R32G32_SINT,
2635 DXGI_FORMAT_UNKNOWN,
2636 DXGI_FORMAT_R32G32_SINT,
2637 DXGI_FORMAT_UNKNOWN,
2638 DXGI_FORMAT_UNKNOWN,
2639 DXGI_FORMAT_R32G32_TYPELESS,
2640 GL_RGBA32I,
2641 nullptr);
2642 return info;
2643 }
2644 case GL_RG32UI:
2645 {
2646 static constexpr Format info(GL_RG32UI,
2647 angle::FormatID::R32G32_UINT,
2648 DXGI_FORMAT_R32G32_UINT,
2649 DXGI_FORMAT_R32G32_UINT,
2650 DXGI_FORMAT_UNKNOWN,
2651 DXGI_FORMAT_R32G32_UINT,
2652 DXGI_FORMAT_UNKNOWN,
2653 DXGI_FORMAT_R32G32_UINT,
2654 DXGI_FORMAT_UNKNOWN,
2655 DXGI_FORMAT_UNKNOWN,
2656 DXGI_FORMAT_R32G32_TYPELESS,
2657 GL_RGBA32I,
2658 nullptr);
2659 return info;
2660 }
2661 case GL_RG8:
2662 {
2663 static constexpr Format info(GL_RG8,
2664 angle::FormatID::R8G8_UNORM,
2665 DXGI_FORMAT_R8G8_UNORM,
2666 DXGI_FORMAT_R8G8_UNORM,
2667 DXGI_FORMAT_UNKNOWN,
2668 DXGI_FORMAT_R8G8_UNORM,
2669 DXGI_FORMAT_UNKNOWN,
2670 DXGI_FORMAT_R8G8_UNORM,
2671 DXGI_FORMAT_UNKNOWN,
2672 DXGI_FORMAT_UNKNOWN,
2673 DXGI_FORMAT_R8G8_TYPELESS,
2674 GL_RGBA8,
2675 nullptr);
2676 return info;
2677 }
2678 case GL_RG8I:
2679 {
2680 static constexpr Format info(GL_RG8I,
2681 angle::FormatID::R8G8_SINT,
2682 DXGI_FORMAT_R8G8_SINT,
2683 DXGI_FORMAT_R8G8_SINT,
2684 DXGI_FORMAT_UNKNOWN,
2685 DXGI_FORMAT_R8G8_SINT,
2686 DXGI_FORMAT_UNKNOWN,
2687 DXGI_FORMAT_R8G8_SINT,
2688 DXGI_FORMAT_UNKNOWN,
2689 DXGI_FORMAT_UNKNOWN,
2690 DXGI_FORMAT_R8G8_TYPELESS,
2691 GL_RGBA8I,
2692 nullptr);
2693 return info;
2694 }
2695 case GL_RG8UI:
2696 {
2697 static constexpr Format info(GL_RG8UI,
2698 angle::FormatID::R8G8_UINT,
2699 DXGI_FORMAT_R8G8_UINT,
2700 DXGI_FORMAT_R8G8_UINT,
2701 DXGI_FORMAT_UNKNOWN,
2702 DXGI_FORMAT_R8G8_UINT,
2703 DXGI_FORMAT_UNKNOWN,
2704 DXGI_FORMAT_R8G8_UINT,
2705 DXGI_FORMAT_UNKNOWN,
2706 DXGI_FORMAT_UNKNOWN,
2707 DXGI_FORMAT_R8G8_TYPELESS,
2708 GL_RGBA8I,
2709 nullptr);
2710 return info;
2711 }
2712 case GL_RG8_SNORM:
2713 {
2714 static constexpr Format info(GL_RG8_SNORM,
2715 angle::FormatID::R8G8_SNORM,
2716 DXGI_FORMAT_R8G8_SNORM,
2717 DXGI_FORMAT_R8G8_SNORM,
2718 DXGI_FORMAT_UNKNOWN,
2719 DXGI_FORMAT_R8G8_SNORM,
2720 DXGI_FORMAT_UNKNOWN,
2721 DXGI_FORMAT_R8G8_SNORM,
2722 DXGI_FORMAT_UNKNOWN,
2723 DXGI_FORMAT_UNKNOWN,
2724 DXGI_FORMAT_R8G8_TYPELESS,
2725 GL_RGBA8_SNORM,
2726 nullptr);
2727 return info;
2728 }
2729 case GL_RGB:
2730 {
2731 static constexpr Format info(GL_RGB,
2732 angle::FormatID::R8G8B8A8_UNORM,
2733 DXGI_FORMAT_R8G8B8A8_UNORM,
2734 DXGI_FORMAT_R8G8B8A8_UNORM,
2735 DXGI_FORMAT_R8G8B8A8_UNORM,
2736 DXGI_FORMAT_R8G8B8A8_UNORM,
2737 DXGI_FORMAT_UNKNOWN,
2738 DXGI_FORMAT_R8G8B8A8_UNORM,
2739 DXGI_FORMAT_UNKNOWN,
2740 DXGI_FORMAT_UNKNOWN,
2741 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2742 GL_RGBA8,
2743 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2744 return info;
2745 }
2746 case GL_RGB10_A2:
2747 {
2748 static constexpr Format info(GL_RGB10_A2,
2749 angle::FormatID::R10G10B10A2_UNORM,
2750 DXGI_FORMAT_R10G10B10A2_UNORM,
2751 DXGI_FORMAT_R10G10B10A2_UNORM,
2752 DXGI_FORMAT_UNKNOWN,
2753 DXGI_FORMAT_R10G10B10A2_UNORM,
2754 DXGI_FORMAT_UNKNOWN,
2755 DXGI_FORMAT_R10G10B10A2_UNORM,
2756 DXGI_FORMAT_UNKNOWN,
2757 DXGI_FORMAT_UNKNOWN,
2758 DXGI_FORMAT_R10G10B10A2_TYPELESS,
2759 GL_RGBA16_EXT,
2760 nullptr);
2761 return info;
2762 }
2763 case GL_RGB10_A2UI:
2764 {
2765 static constexpr Format info(GL_RGB10_A2UI,
2766 angle::FormatID::R10G10B10A2_UINT,
2767 DXGI_FORMAT_R10G10B10A2_UINT,
2768 DXGI_FORMAT_R10G10B10A2_UINT,
2769 DXGI_FORMAT_UNKNOWN,
2770 DXGI_FORMAT_R10G10B10A2_UINT,
2771 DXGI_FORMAT_UNKNOWN,
2772 DXGI_FORMAT_R10G10B10A2_UINT,
2773 DXGI_FORMAT_UNKNOWN,
2774 DXGI_FORMAT_UNKNOWN,
2775 DXGI_FORMAT_R10G10B10A2_TYPELESS,
2776 GL_RGBA16I,
2777 nullptr);
2778 return info;
2779 }
2780 case GL_RGB10_UNORM_ANGLEX:
2781 {
2782 static constexpr Format info(GL_RGB10_UNORM_ANGLEX,
2783 angle::FormatID::R10G10B10X2_UNORM,
2784 DXGI_FORMAT_R10G10B10A2_UNORM,
2785 DXGI_FORMAT_R10G10B10A2_UNORM,
2786 DXGI_FORMAT_UNKNOWN,
2787 DXGI_FORMAT_R10G10B10A2_UNORM,
2788 DXGI_FORMAT_UNKNOWN,
2789 DXGI_FORMAT_R10G10B10A2_UNORM,
2790 DXGI_FORMAT_UNKNOWN,
2791 DXGI_FORMAT_UNKNOWN,
2792 DXGI_FORMAT_R10G10B10A2_TYPELESS,
2793 GL_RGBA16_EXT,
2794 nullptr);
2795 return info;
2796 }
2797 case GL_RGB16F:
2798 {
2799 static constexpr Format info(GL_RGB16F,
2800 angle::FormatID::R16G16B16A16_FLOAT,
2801 DXGI_FORMAT_R16G16B16A16_FLOAT,
2802 DXGI_FORMAT_R16G16B16A16_FLOAT,
2803 DXGI_FORMAT_R16G16B16A16_FLOAT,
2804 DXGI_FORMAT_R16G16B16A16_FLOAT,
2805 DXGI_FORMAT_UNKNOWN,
2806 DXGI_FORMAT_R16G16B16A16_FLOAT,
2807 DXGI_FORMAT_UNKNOWN,
2808 DXGI_FORMAT_UNKNOWN,
2809 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2810 GL_RGBA16F,
2811 Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
2812 return info;
2813 }
2814 case GL_RGB16I:
2815 {
2816 static constexpr Format info(GL_RGB16I,
2817 angle::FormatID::R16G16B16A16_SINT,
2818 DXGI_FORMAT_R16G16B16A16_SINT,
2819 DXGI_FORMAT_R16G16B16A16_SINT,
2820 DXGI_FORMAT_R16G16B16A16_SINT,
2821 DXGI_FORMAT_R16G16B16A16_SINT,
2822 DXGI_FORMAT_UNKNOWN,
2823 DXGI_FORMAT_R16G16B16A16_SINT,
2824 DXGI_FORMAT_UNKNOWN,
2825 DXGI_FORMAT_UNKNOWN,
2826 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2827 GL_RGBA16I,
2828 Initialize4ComponentData<GLshort, 0x0000, 0x0000, 0x0000, 0x0001>);
2829 return info;
2830 }
2831 case GL_RGB16UI:
2832 {
2833 static constexpr Format info(GL_RGB16UI,
2834 angle::FormatID::R16G16B16A16_UINT,
2835 DXGI_FORMAT_R16G16B16A16_UINT,
2836 DXGI_FORMAT_R16G16B16A16_UINT,
2837 DXGI_FORMAT_R16G16B16A16_UINT,
2838 DXGI_FORMAT_R16G16B16A16_UINT,
2839 DXGI_FORMAT_UNKNOWN,
2840 DXGI_FORMAT_R16G16B16A16_UINT,
2841 DXGI_FORMAT_UNKNOWN,
2842 DXGI_FORMAT_UNKNOWN,
2843 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2844 GL_RGBA16UI,
2845 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x0001>);
2846 return info;
2847 }
2848 case GL_RGB16_EXT:
2849 {
2850 static constexpr Format info(GL_RGB16_EXT,
2851 angle::FormatID::R16G16B16A16_UNORM,
2852 DXGI_FORMAT_R16G16B16A16_UNORM,
2853 DXGI_FORMAT_R16G16B16A16_UNORM,
2854 DXGI_FORMAT_UNKNOWN,
2855 DXGI_FORMAT_R16G16B16A16_UNORM,
2856 DXGI_FORMAT_UNKNOWN,
2857 DXGI_FORMAT_R16G16B16A16_UNORM,
2858 DXGI_FORMAT_UNKNOWN,
2859 DXGI_FORMAT_UNKNOWN,
2860 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2861 GL_RGBA16_EXT,
2862 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0xFFFF>);
2863 return info;
2864 }
2865 case GL_RGB16_SNORM_EXT:
2866 {
2867 static constexpr Format info(GL_RGB16_SNORM_EXT,
2868 angle::FormatID::R16G16B16A16_SNORM,
2869 DXGI_FORMAT_R16G16B16A16_SNORM,
2870 DXGI_FORMAT_R16G16B16A16_SNORM,
2871 DXGI_FORMAT_UNKNOWN,
2872 DXGI_FORMAT_R16G16B16A16_SNORM,
2873 DXGI_FORMAT_UNKNOWN,
2874 DXGI_FORMAT_R16G16B16A16_SNORM,
2875 DXGI_FORMAT_UNKNOWN,
2876 DXGI_FORMAT_UNKNOWN,
2877 DXGI_FORMAT_R16G16B16A16_TYPELESS,
2878 GL_RGBA16_SNORM_EXT,
2879 Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x7FFF>);
2880 return info;
2881 }
2882 case GL_RGB32F:
2883 {
2884 static constexpr Format info(GL_RGB32F,
2885 angle::FormatID::R32G32B32A32_FLOAT,
2886 DXGI_FORMAT_R32G32B32A32_FLOAT,
2887 DXGI_FORMAT_R32G32B32A32_FLOAT,
2888 DXGI_FORMAT_R32G32B32A32_FLOAT,
2889 DXGI_FORMAT_R32G32B32A32_FLOAT,
2890 DXGI_FORMAT_UNKNOWN,
2891 DXGI_FORMAT_R32G32B32A32_FLOAT,
2892 DXGI_FORMAT_UNKNOWN,
2893 DXGI_FORMAT_UNKNOWN,
2894 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2895 GL_RGBA32F,
2896 Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
2897 return info;
2898 }
2899 case GL_RGB32I:
2900 {
2901 static constexpr Format info(GL_RGB32I,
2902 angle::FormatID::R32G32B32A32_SINT,
2903 DXGI_FORMAT_R32G32B32A32_SINT,
2904 DXGI_FORMAT_R32G32B32A32_SINT,
2905 DXGI_FORMAT_R32G32B32A32_SINT,
2906 DXGI_FORMAT_R32G32B32A32_SINT,
2907 DXGI_FORMAT_UNKNOWN,
2908 DXGI_FORMAT_R32G32B32A32_SINT,
2909 DXGI_FORMAT_UNKNOWN,
2910 DXGI_FORMAT_UNKNOWN,
2911 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2912 GL_RGBA32I,
2913 Initialize4ComponentData<GLint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
2914 return info;
2915 }
2916 case GL_RGB32UI:
2917 {
2918 static constexpr Format info(GL_RGB32UI,
2919 angle::FormatID::R32G32B32A32_UINT,
2920 DXGI_FORMAT_R32G32B32A32_UINT,
2921 DXGI_FORMAT_R32G32B32A32_UINT,
2922 DXGI_FORMAT_R32G32B32A32_UINT,
2923 DXGI_FORMAT_R32G32B32A32_UINT,
2924 DXGI_FORMAT_UNKNOWN,
2925 DXGI_FORMAT_R32G32B32A32_UINT,
2926 DXGI_FORMAT_UNKNOWN,
2927 DXGI_FORMAT_UNKNOWN,
2928 DXGI_FORMAT_R32G32B32A32_TYPELESS,
2929 GL_RGBA32UI,
2930 Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
2931 return info;
2932 }
2933 case GL_RGB565:
2934 {
2935 if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
2936 {
2937 static constexpr Format info(GL_RGB565,
2938 angle::FormatID::B5G6R5_UNORM,
2939 DXGI_FORMAT_B5G6R5_UNORM,
2940 DXGI_FORMAT_B5G6R5_UNORM,
2941 DXGI_FORMAT_UNKNOWN,
2942 DXGI_FORMAT_B5G6R5_UNORM,
2943 DXGI_FORMAT_UNKNOWN,
2944 DXGI_FORMAT_B5G6R5_UNORM,
2945 DXGI_FORMAT_UNKNOWN,
2946 DXGI_FORMAT_UNKNOWN,
2947 DXGI_FORMAT_UNKNOWN,
2948 GL_RGBA8,
2949 nullptr);
2950 return info;
2951 }
2952 else
2953 {
2954 static constexpr Format info(GL_RGB565,
2955 angle::FormatID::R8G8B8A8_UNORM,
2956 DXGI_FORMAT_R8G8B8A8_UNORM,
2957 DXGI_FORMAT_R8G8B8A8_UNORM,
2958 DXGI_FORMAT_R8G8B8A8_UNORM,
2959 DXGI_FORMAT_R8G8B8A8_UNORM,
2960 DXGI_FORMAT_UNKNOWN,
2961 DXGI_FORMAT_R8G8B8A8_UNORM,
2962 DXGI_FORMAT_UNKNOWN,
2963 DXGI_FORMAT_UNKNOWN,
2964 DXGI_FORMAT_R8G8B8A8_TYPELESS,
2965 GL_RGBA8,
2966 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
2967 return info;
2968 }
2969 }
2970 case GL_RGB5_A1:
2971 {
2972 if (SupportsFormat(DXGI_FORMAT_B5G5R5A1_UNORM, deviceCaps))
2973 {
2974 static constexpr Format info(GL_RGB5_A1,
2975 angle::FormatID::B5G5R5A1_UNORM,
2976 DXGI_FORMAT_B5G5R5A1_UNORM,
2977 DXGI_FORMAT_B5G5R5A1_UNORM,
2978 DXGI_FORMAT_UNKNOWN,
2979 DXGI_FORMAT_B5G5R5A1_UNORM,
2980 DXGI_FORMAT_UNKNOWN,
2981 DXGI_FORMAT_B5G5R5A1_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_RGB5_A1,
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 nullptr);
3004 return info;
3005 }
3006 }
3007 case GL_RGB8:
3008 {
3009 static constexpr Format info(GL_RGB8,
3010 angle::FormatID::R8G8B8A8_UNORM,
3011 DXGI_FORMAT_R8G8B8A8_UNORM,
3012 DXGI_FORMAT_R8G8B8A8_UNORM,
3013 DXGI_FORMAT_R8G8B8A8_UNORM,
3014 DXGI_FORMAT_R8G8B8A8_UNORM,
3015 DXGI_FORMAT_UNKNOWN,
3016 DXGI_FORMAT_R8G8B8A8_UNORM,
3017 DXGI_FORMAT_UNKNOWN,
3018 DXGI_FORMAT_UNKNOWN,
3019 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3020 GL_RGBA8,
3021 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
3022 return info;
3023 }
3024 case GL_RGB8I:
3025 {
3026 static constexpr Format info(GL_RGB8I,
3027 angle::FormatID::R8G8B8A8_SINT,
3028 DXGI_FORMAT_R8G8B8A8_SINT,
3029 DXGI_FORMAT_R8G8B8A8_SINT,
3030 DXGI_FORMAT_R8G8B8A8_SINT,
3031 DXGI_FORMAT_R8G8B8A8_SINT,
3032 DXGI_FORMAT_UNKNOWN,
3033 DXGI_FORMAT_R8G8B8A8_SINT,
3034 DXGI_FORMAT_UNKNOWN,
3035 DXGI_FORMAT_UNKNOWN,
3036 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3037 GL_RGBA8I,
3038 Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x01>);
3039 return info;
3040 }
3041 case GL_RGB8UI:
3042 {
3043 static constexpr Format info(GL_RGB8UI,
3044 angle::FormatID::R8G8B8A8_UINT,
3045 DXGI_FORMAT_R8G8B8A8_UINT,
3046 DXGI_FORMAT_R8G8B8A8_UINT,
3047 DXGI_FORMAT_R8G8B8A8_UINT,
3048 DXGI_FORMAT_R8G8B8A8_UINT,
3049 DXGI_FORMAT_UNKNOWN,
3050 DXGI_FORMAT_R8G8B8A8_UINT,
3051 DXGI_FORMAT_UNKNOWN,
3052 DXGI_FORMAT_UNKNOWN,
3053 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3054 GL_RGBA8UI,
3055 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0x01>);
3056 return info;
3057 }
3058 case GL_RGB8_SNORM:
3059 {
3060 static constexpr Format info(GL_RGB8_SNORM,
3061 angle::FormatID::R8G8B8A8_SNORM,
3062 DXGI_FORMAT_R8G8B8A8_SNORM,
3063 DXGI_FORMAT_R8G8B8A8_SNORM,
3064 DXGI_FORMAT_R8G8B8A8_SNORM,
3065 DXGI_FORMAT_R8G8B8A8_SNORM,
3066 DXGI_FORMAT_UNKNOWN,
3067 DXGI_FORMAT_R8G8B8A8_SNORM,
3068 DXGI_FORMAT_UNKNOWN,
3069 DXGI_FORMAT_UNKNOWN,
3070 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3071 GL_RGBA8_SNORM,
3072 Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x7F>);
3073 return info;
3074 }
3075 case GL_RGB9_E5:
3076 {
3077 static constexpr Format info(GL_RGB9_E5,
3078 angle::FormatID::R9G9B9E5_SHAREDEXP,
3079 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
3080 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
3081 DXGI_FORMAT_UNKNOWN,
3082 DXGI_FORMAT_UNKNOWN,
3083 DXGI_FORMAT_UNKNOWN,
3084 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
3085 DXGI_FORMAT_UNKNOWN,
3086 DXGI_FORMAT_UNKNOWN,
3087 DXGI_FORMAT_UNKNOWN,
3088 GL_RGBA16F_EXT,
3089 nullptr);
3090 return info;
3091 }
3092 case GL_RGBA:
3093 {
3094 static constexpr Format info(GL_RGBA,
3095 angle::FormatID::R8G8B8A8_UNORM,
3096 DXGI_FORMAT_R8G8B8A8_UNORM,
3097 DXGI_FORMAT_R8G8B8A8_UNORM,
3098 DXGI_FORMAT_R8G8B8A8_UNORM,
3099 DXGI_FORMAT_R8G8B8A8_UNORM,
3100 DXGI_FORMAT_UNKNOWN,
3101 DXGI_FORMAT_R8G8B8A8_UNORM,
3102 DXGI_FORMAT_UNKNOWN,
3103 DXGI_FORMAT_UNKNOWN,
3104 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3105 GL_RGBA8,
3106 nullptr);
3107 return info;
3108 }
3109 case GL_RGBA16F:
3110 {
3111 static constexpr Format info(GL_RGBA16F,
3112 angle::FormatID::R16G16B16A16_FLOAT,
3113 DXGI_FORMAT_R16G16B16A16_FLOAT,
3114 DXGI_FORMAT_R16G16B16A16_FLOAT,
3115 DXGI_FORMAT_R16G16B16A16_FLOAT,
3116 DXGI_FORMAT_R16G16B16A16_FLOAT,
3117 DXGI_FORMAT_UNKNOWN,
3118 DXGI_FORMAT_R16G16B16A16_FLOAT,
3119 DXGI_FORMAT_UNKNOWN,
3120 DXGI_FORMAT_UNKNOWN,
3121 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3122 GL_RGBA16F,
3123 nullptr);
3124 return info;
3125 }
3126 case GL_RGBA16I:
3127 {
3128 static constexpr Format info(GL_RGBA16I,
3129 angle::FormatID::R16G16B16A16_SINT,
3130 DXGI_FORMAT_R16G16B16A16_SINT,
3131 DXGI_FORMAT_R16G16B16A16_SINT,
3132 DXGI_FORMAT_R16G16B16A16_SINT,
3133 DXGI_FORMAT_R16G16B16A16_SINT,
3134 DXGI_FORMAT_UNKNOWN,
3135 DXGI_FORMAT_R16G16B16A16_SINT,
3136 DXGI_FORMAT_UNKNOWN,
3137 DXGI_FORMAT_UNKNOWN,
3138 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3139 GL_RGBA16I,
3140 nullptr);
3141 return info;
3142 }
3143 case GL_RGBA16UI:
3144 {
3145 static constexpr Format info(GL_RGBA16UI,
3146 angle::FormatID::R16G16B16A16_UINT,
3147 DXGI_FORMAT_R16G16B16A16_UINT,
3148 DXGI_FORMAT_R16G16B16A16_UINT,
3149 DXGI_FORMAT_R16G16B16A16_UINT,
3150 DXGI_FORMAT_R16G16B16A16_UINT,
3151 DXGI_FORMAT_UNKNOWN,
3152 DXGI_FORMAT_R16G16B16A16_UINT,
3153 DXGI_FORMAT_UNKNOWN,
3154 DXGI_FORMAT_UNKNOWN,
3155 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3156 GL_RGBA16UI,
3157 nullptr);
3158 return info;
3159 }
3160 case GL_RGBA16_EXT:
3161 {
3162 static constexpr Format info(GL_RGBA16_EXT,
3163 angle::FormatID::R16G16B16A16_UNORM,
3164 DXGI_FORMAT_R16G16B16A16_UNORM,
3165 DXGI_FORMAT_R16G16B16A16_UNORM,
3166 DXGI_FORMAT_UNKNOWN,
3167 DXGI_FORMAT_R16G16B16A16_UNORM,
3168 DXGI_FORMAT_UNKNOWN,
3169 DXGI_FORMAT_R16G16B16A16_UNORM,
3170 DXGI_FORMAT_UNKNOWN,
3171 DXGI_FORMAT_UNKNOWN,
3172 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3173 GL_RGBA16_EXT,
3174 nullptr);
3175 return info;
3176 }
3177 case GL_RGBA16_SNORM_EXT:
3178 {
3179 static constexpr Format info(GL_RGBA16_SNORM_EXT,
3180 angle::FormatID::R16G16B16A16_SNORM,
3181 DXGI_FORMAT_R16G16B16A16_SNORM,
3182 DXGI_FORMAT_R16G16B16A16_SNORM,
3183 DXGI_FORMAT_UNKNOWN,
3184 DXGI_FORMAT_R16G16B16A16_SNORM,
3185 DXGI_FORMAT_UNKNOWN,
3186 DXGI_FORMAT_R16G16B16A16_SNORM,
3187 DXGI_FORMAT_UNKNOWN,
3188 DXGI_FORMAT_UNKNOWN,
3189 DXGI_FORMAT_R16G16B16A16_TYPELESS,
3190 GL_RGBA16_SNORM_EXT,
3191 nullptr);
3192 return info;
3193 }
3194 case GL_RGBA32F:
3195 {
3196 static constexpr Format info(GL_RGBA32F,
3197 angle::FormatID::R32G32B32A32_FLOAT,
3198 DXGI_FORMAT_R32G32B32A32_FLOAT,
3199 DXGI_FORMAT_R32G32B32A32_FLOAT,
3200 DXGI_FORMAT_R32G32B32A32_FLOAT,
3201 DXGI_FORMAT_R32G32B32A32_FLOAT,
3202 DXGI_FORMAT_UNKNOWN,
3203 DXGI_FORMAT_R32G32B32A32_FLOAT,
3204 DXGI_FORMAT_UNKNOWN,
3205 DXGI_FORMAT_UNKNOWN,
3206 DXGI_FORMAT_R32G32B32A32_TYPELESS,
3207 GL_RGBA32F,
3208 nullptr);
3209 return info;
3210 }
3211 case GL_RGBA32I:
3212 {
3213 static constexpr Format info(GL_RGBA32I,
3214 angle::FormatID::R32G32B32A32_SINT,
3215 DXGI_FORMAT_R32G32B32A32_SINT,
3216 DXGI_FORMAT_R32G32B32A32_SINT,
3217 DXGI_FORMAT_R32G32B32A32_SINT,
3218 DXGI_FORMAT_R32G32B32A32_SINT,
3219 DXGI_FORMAT_UNKNOWN,
3220 DXGI_FORMAT_R32G32B32A32_SINT,
3221 DXGI_FORMAT_UNKNOWN,
3222 DXGI_FORMAT_UNKNOWN,
3223 DXGI_FORMAT_R32G32B32A32_TYPELESS,
3224 GL_RGBA32I,
3225 nullptr);
3226 return info;
3227 }
3228 case GL_RGBA32UI:
3229 {
3230 static constexpr Format info(GL_RGBA32UI,
3231 angle::FormatID::R32G32B32A32_UINT,
3232 DXGI_FORMAT_R32G32B32A32_UINT,
3233 DXGI_FORMAT_R32G32B32A32_UINT,
3234 DXGI_FORMAT_R32G32B32A32_UINT,
3235 DXGI_FORMAT_R32G32B32A32_UINT,
3236 DXGI_FORMAT_UNKNOWN,
3237 DXGI_FORMAT_R32G32B32A32_UINT,
3238 DXGI_FORMAT_UNKNOWN,
3239 DXGI_FORMAT_UNKNOWN,
3240 DXGI_FORMAT_R32G32B32A32_TYPELESS,
3241 GL_RGBA32UI,
3242 nullptr);
3243 return info;
3244 }
3245 case GL_RGBA4:
3246 {
3247 if (SupportsFormat(DXGI_FORMAT_B4G4R4A4_UNORM, deviceCaps))
3248 {
3249 static constexpr Format info(GL_RGBA4,
3250 angle::FormatID::B4G4R4A4_UNORM,
3251 DXGI_FORMAT_B4G4R4A4_UNORM,
3252 DXGI_FORMAT_B4G4R4A4_UNORM,
3253 DXGI_FORMAT_UNKNOWN,
3254 DXGI_FORMAT_B4G4R4A4_UNORM,
3255 DXGI_FORMAT_UNKNOWN,
3256 DXGI_FORMAT_B4G4R4A4_UNORM,
3257 DXGI_FORMAT_UNKNOWN,
3258 DXGI_FORMAT_UNKNOWN,
3259 DXGI_FORMAT_UNKNOWN,
3260 GL_RGBA4,
3261 nullptr);
3262 return info;
3263 }
3264 else
3265 {
3266 static constexpr Format info(GL_RGBA4,
3267 angle::FormatID::R8G8B8A8_UNORM,
3268 DXGI_FORMAT_R8G8B8A8_UNORM,
3269 DXGI_FORMAT_R8G8B8A8_UNORM,
3270 DXGI_FORMAT_R8G8B8A8_UNORM,
3271 DXGI_FORMAT_R8G8B8A8_UNORM,
3272 DXGI_FORMAT_UNKNOWN,
3273 DXGI_FORMAT_R8G8B8A8_UNORM,
3274 DXGI_FORMAT_UNKNOWN,
3275 DXGI_FORMAT_UNKNOWN,
3276 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3277 GL_RGBA8,
3278 nullptr);
3279 return info;
3280 }
3281 }
3282 case GL_RGBA8:
3283 {
3284 static constexpr Format info(GL_RGBA8,
3285 angle::FormatID::R8G8B8A8_UNORM,
3286 DXGI_FORMAT_R8G8B8A8_UNORM,
3287 DXGI_FORMAT_R8G8B8A8_UNORM,
3288 DXGI_FORMAT_R8G8B8A8_UNORM,
3289 DXGI_FORMAT_R8G8B8A8_UNORM,
3290 DXGI_FORMAT_UNKNOWN,
3291 DXGI_FORMAT_R8G8B8A8_UNORM,
3292 DXGI_FORMAT_UNKNOWN,
3293 DXGI_FORMAT_UNKNOWN,
3294 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3295 GL_RGBA8,
3296 nullptr);
3297 return info;
3298 }
3299 case GL_RGBA8I:
3300 {
3301 static constexpr Format info(GL_RGBA8I,
3302 angle::FormatID::R8G8B8A8_SINT,
3303 DXGI_FORMAT_R8G8B8A8_SINT,
3304 DXGI_FORMAT_R8G8B8A8_SINT,
3305 DXGI_FORMAT_R8G8B8A8_SINT,
3306 DXGI_FORMAT_R8G8B8A8_SINT,
3307 DXGI_FORMAT_UNKNOWN,
3308 DXGI_FORMAT_R8G8B8A8_SINT,
3309 DXGI_FORMAT_UNKNOWN,
3310 DXGI_FORMAT_UNKNOWN,
3311 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3312 GL_RGBA8I,
3313 nullptr);
3314 return info;
3315 }
3316 case GL_RGBA8UI:
3317 {
3318 static constexpr Format info(GL_RGBA8UI,
3319 angle::FormatID::R8G8B8A8_UINT,
3320 DXGI_FORMAT_R8G8B8A8_UINT,
3321 DXGI_FORMAT_R8G8B8A8_UINT,
3322 DXGI_FORMAT_R8G8B8A8_UINT,
3323 DXGI_FORMAT_R8G8B8A8_UINT,
3324 DXGI_FORMAT_UNKNOWN,
3325 DXGI_FORMAT_R8G8B8A8_UINT,
3326 DXGI_FORMAT_UNKNOWN,
3327 DXGI_FORMAT_UNKNOWN,
3328 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3329 GL_RGBA8UI,
3330 nullptr);
3331 return info;
3332 }
3333 case GL_RGBA8_SNORM:
3334 {
3335 static constexpr Format info(GL_RGBA8_SNORM,
3336 angle::FormatID::R8G8B8A8_SNORM,
3337 DXGI_FORMAT_R8G8B8A8_SNORM,
3338 DXGI_FORMAT_R8G8B8A8_SNORM,
3339 DXGI_FORMAT_R8G8B8A8_SNORM,
3340 DXGI_FORMAT_R8G8B8A8_SNORM,
3341 DXGI_FORMAT_UNKNOWN,
3342 DXGI_FORMAT_R8G8B8A8_SNORM,
3343 DXGI_FORMAT_UNKNOWN,
3344 DXGI_FORMAT_UNKNOWN,
3345 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3346 GL_RGBA8_SNORM,
3347 nullptr);
3348 return info;
3349 }
3350 case GL_RGBX8_ANGLE:
3351 {
3352 if (OnlyFL11_1Plus(deviceCaps))
3353 {
3354 static constexpr Format info(GL_RGBX8_ANGLE,
3355 angle::FormatID::R8G8B8X8_UNORM,
3356 DXGI_FORMAT_B8G8R8X8_UNORM,
3357 DXGI_FORMAT_B8G8R8X8_UNORM,
3358 DXGI_FORMAT_UNKNOWN,
3359 DXGI_FORMAT_B8G8R8X8_UNORM,
3360 DXGI_FORMAT_UNKNOWN,
3361 DXGI_FORMAT_B8G8R8X8_UNORM,
3362 DXGI_FORMAT_UNKNOWN,
3363 DXGI_FORMAT_UNKNOWN,
3364 DXGI_FORMAT_UNKNOWN,
3365 GL_RGBX8_ANGLE,
3366 nullptr);
3367 return info;
3368 }
3369 else
3370 {
3371 static constexpr Format info(GL_RGBX8_ANGLE,
3372 angle::FormatID::R8G8B8A8_UNORM,
3373 DXGI_FORMAT_R8G8B8A8_UNORM,
3374 DXGI_FORMAT_R8G8B8A8_UNORM,
3375 DXGI_FORMAT_R8G8B8A8_UNORM,
3376 DXGI_FORMAT_R8G8B8A8_UNORM,
3377 DXGI_FORMAT_UNKNOWN,
3378 DXGI_FORMAT_R8G8B8A8_UNORM,
3379 DXGI_FORMAT_UNKNOWN,
3380 DXGI_FORMAT_UNKNOWN,
3381 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3382 GL_RGBA8,
3383 nullptr);
3384 return info;
3385 }
3386 }
3387 case GL_RGBX8_SRGB_ANGLEX:
3388 {
3389 if (OnlyFL11_1Plus(deviceCaps))
3390 {
3391 static constexpr Format info(GL_RGBX8_SRGB_ANGLEX,
3392 angle::FormatID::R8G8B8X8_UNORM_SRGB,
3393 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3394 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3395 DXGI_FORMAT_UNKNOWN,
3396 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3397 DXGI_FORMAT_UNKNOWN,
3398 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,
3399 DXGI_FORMAT_UNKNOWN,
3400 DXGI_FORMAT_B8G8R8X8_UNORM,
3401 DXGI_FORMAT_B8G8R8X8_TYPELESS,
3402 GL_RGBX8_SRGB_ANGLEX,
3403 nullptr);
3404 return info;
3405 }
3406 else
3407 {
3408 static constexpr Format info(GL_RGBX8_SRGB_ANGLEX,
3409 angle::FormatID::R8G8B8A8_UNORM_SRGB,
3410 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3411 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3412 DXGI_FORMAT_UNKNOWN,
3413 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3414 DXGI_FORMAT_UNKNOWN,
3415 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3416 DXGI_FORMAT_UNKNOWN,
3417 DXGI_FORMAT_R8G8B8A8_UNORM,
3418 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3419 GL_SRGB8_ALPHA8,
3420 nullptr);
3421 return info;
3422 }
3423 }
3424 case GL_SR8_EXT:
3425 {
3426 static constexpr Format info(GL_SR8_EXT,
3427 angle::FormatID::NONE,
3428 DXGI_FORMAT_UNKNOWN,
3429 DXGI_FORMAT_UNKNOWN,
3430 DXGI_FORMAT_UNKNOWN,
3431 DXGI_FORMAT_UNKNOWN,
3432 DXGI_FORMAT_UNKNOWN,
3433 DXGI_FORMAT_UNKNOWN,
3434 DXGI_FORMAT_UNKNOWN,
3435 DXGI_FORMAT_UNKNOWN,
3436 DXGI_FORMAT_UNKNOWN,
3437 GL_NONE,
3438 nullptr);
3439 return info;
3440 }
3441 case GL_SRG8_EXT:
3442 {
3443 static constexpr Format info(GL_SRG8_EXT,
3444 angle::FormatID::NONE,
3445 DXGI_FORMAT_UNKNOWN,
3446 DXGI_FORMAT_UNKNOWN,
3447 DXGI_FORMAT_UNKNOWN,
3448 DXGI_FORMAT_UNKNOWN,
3449 DXGI_FORMAT_UNKNOWN,
3450 DXGI_FORMAT_UNKNOWN,
3451 DXGI_FORMAT_UNKNOWN,
3452 DXGI_FORMAT_UNKNOWN,
3453 DXGI_FORMAT_UNKNOWN,
3454 GL_NONE,
3455 nullptr);
3456 return info;
3457 }
3458 case GL_SRGB8:
3459 {
3460 static constexpr Format info(GL_SRGB8,
3461 angle::FormatID::R8G8B8A8_UNORM_SRGB,
3462 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3463 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3464 DXGI_FORMAT_UNKNOWN,
3465 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3466 DXGI_FORMAT_UNKNOWN,
3467 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3468 DXGI_FORMAT_UNKNOWN,
3469 DXGI_FORMAT_R8G8B8A8_UNORM,
3470 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3471 GL_SRGB8_ALPHA8,
3472 Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
3473 return info;
3474 }
3475 case GL_SRGB8_ALPHA8:
3476 {
3477 static constexpr Format info(GL_SRGB8_ALPHA8,
3478 angle::FormatID::R8G8B8A8_UNORM_SRGB,
3479 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3480 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3481 DXGI_FORMAT_UNKNOWN,
3482 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3483 DXGI_FORMAT_UNKNOWN,
3484 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
3485 DXGI_FORMAT_UNKNOWN,
3486 DXGI_FORMAT_R8G8B8A8_UNORM,
3487 DXGI_FORMAT_R8G8B8A8_TYPELESS,
3488 GL_SRGB8_ALPHA8,
3489 nullptr);
3490 return info;
3491 }
3492 case GL_STENCIL_INDEX8:
3493 {
3494 if (OnlyFL10Plus(deviceCaps))
3495 {
3496 static constexpr Format info(GL_STENCIL_INDEX8,
3497 angle::FormatID::D24_UNORM_S8_UINT,
3498 DXGI_FORMAT_R24G8_TYPELESS,
3499 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
3500 DXGI_FORMAT_UNKNOWN,
3501 DXGI_FORMAT_UNKNOWN,
3502 DXGI_FORMAT_D24_UNORM_S8_UINT,
3503 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
3504 DXGI_FORMAT_X24_TYPELESS_G8_UINT,
3505 DXGI_FORMAT_UNKNOWN,
3506 DXGI_FORMAT_UNKNOWN,
3507 GL_RGBA32F,
3508 nullptr);
3509 return info;
3510 }
3511 else
3512 {
3513 static constexpr Format info(GL_STENCIL_INDEX8,
3514 angle::FormatID::D24_UNORM_S8_UINT,
3515 DXGI_FORMAT_D24_UNORM_S8_UINT,
3516 DXGI_FORMAT_UNKNOWN,
3517 DXGI_FORMAT_UNKNOWN,
3518 DXGI_FORMAT_UNKNOWN,
3519 DXGI_FORMAT_D24_UNORM_S8_UINT,
3520 DXGI_FORMAT_UNKNOWN,
3521 DXGI_FORMAT_UNKNOWN,
3522 DXGI_FORMAT_UNKNOWN,
3523 DXGI_FORMAT_UNKNOWN,
3524 GL_RGBA32F,
3525 nullptr);
3526 return info;
3527 }
3528 }
3529
3530 default:
3531 break;
3532 }
3533 // clang-format on
3534
3535 UNREACHABLE();
3536 static constexpr Format defaultInfo;
3537 return defaultInfo;
3538 }
3539
3540 } // namespace d3d11
3541
3542 } // namespace rx
3543