• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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