• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* This file is autogenerated by gen_format_layout.py. DO NOT EDIT! */
2 
3 /*
4  * Copyright 2015 Intel Corporation
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a
7  * copy of this software and associated documentation files (the "Software"),
8  * to deal in the Software without restriction, including without limitation
9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10  * and/or sell copies of the Software, and to permit persons to whom the
11  * Software is furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice (including the next
14  * paragraph) shall be included in all copies or substantial portions of the
15  * Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23  * IN THE SOFTWARE.
24  */
25 
26 #include "isl/isl.h"
27 
28 const struct isl_format_layout
29 isl_format_layouts[] = {
30   [ISL_FORMAT_R32G32B32A32_FLOAT] = {
31     .format = ISL_FORMAT_R32G32B32A32_FLOAT,
32     .name = "ISL_FORMAT_R32G32B32A32_FLOAT",
33     .bpb = 128,
34     .bw = 1,
35     .bh = 1,
36     .bd = 1,
37     .channels = {
38               .r = { ISL_SFLOAT, 0, 32 },
39               .g = { ISL_SFLOAT, 32, 32 },
40               .b = { ISL_SFLOAT, 64, 32 },
41               .a = { ISL_SFLOAT, 96, 32 },
42               .l = {},
43               .i = {},
44               .p = {},
45     },
46     .colorspace = ISL_COLORSPACE_LINEAR,
47     .txc = ISL_TXC_NONE,
48   },
49 
50   [ISL_FORMAT_R32G32B32A32_SINT] = {
51     .format = ISL_FORMAT_R32G32B32A32_SINT,
52     .name = "ISL_FORMAT_R32G32B32A32_SINT",
53     .bpb = 128,
54     .bw = 1,
55     .bh = 1,
56     .bd = 1,
57     .channels = {
58               .r = { ISL_SINT, 0, 32 },
59               .g = { ISL_SINT, 32, 32 },
60               .b = { ISL_SINT, 64, 32 },
61               .a = { ISL_SINT, 96, 32 },
62               .l = {},
63               .i = {},
64               .p = {},
65     },
66     .colorspace = ISL_COLORSPACE_LINEAR,
67     .txc = ISL_TXC_NONE,
68   },
69 
70   [ISL_FORMAT_R32G32B32A32_UINT] = {
71     .format = ISL_FORMAT_R32G32B32A32_UINT,
72     .name = "ISL_FORMAT_R32G32B32A32_UINT",
73     .bpb = 128,
74     .bw = 1,
75     .bh = 1,
76     .bd = 1,
77     .channels = {
78               .r = { ISL_UINT, 0, 32 },
79               .g = { ISL_UINT, 32, 32 },
80               .b = { ISL_UINT, 64, 32 },
81               .a = { ISL_UINT, 96, 32 },
82               .l = {},
83               .i = {},
84               .p = {},
85     },
86     .colorspace = ISL_COLORSPACE_LINEAR,
87     .txc = ISL_TXC_NONE,
88   },
89 
90   [ISL_FORMAT_R32G32B32A32_UNORM] = {
91     .format = ISL_FORMAT_R32G32B32A32_UNORM,
92     .name = "ISL_FORMAT_R32G32B32A32_UNORM",
93     .bpb = 128,
94     .bw = 1,
95     .bh = 1,
96     .bd = 1,
97     .channels = {
98               .r = { ISL_UNORM, 0, 32 },
99               .g = { ISL_UNORM, 32, 32 },
100               .b = { ISL_UNORM, 64, 32 },
101               .a = { ISL_UNORM, 96, 32 },
102               .l = {},
103               .i = {},
104               .p = {},
105     },
106     .colorspace = ISL_COLORSPACE_LINEAR,
107     .txc = ISL_TXC_NONE,
108   },
109 
110   [ISL_FORMAT_R32G32B32A32_SNORM] = {
111     .format = ISL_FORMAT_R32G32B32A32_SNORM,
112     .name = "ISL_FORMAT_R32G32B32A32_SNORM",
113     .bpb = 128,
114     .bw = 1,
115     .bh = 1,
116     .bd = 1,
117     .channels = {
118               .r = { ISL_SNORM, 0, 32 },
119               .g = { ISL_SNORM, 32, 32 },
120               .b = { ISL_SNORM, 64, 32 },
121               .a = { ISL_SNORM, 96, 32 },
122               .l = {},
123               .i = {},
124               .p = {},
125     },
126     .colorspace = ISL_COLORSPACE_LINEAR,
127     .txc = ISL_TXC_NONE,
128   },
129 
130   [ISL_FORMAT_R64G64_FLOAT] = {
131     .format = ISL_FORMAT_R64G64_FLOAT,
132     .name = "ISL_FORMAT_R64G64_FLOAT",
133     .bpb = 128,
134     .bw = 1,
135     .bh = 1,
136     .bd = 1,
137     .channels = {
138               .r = { ISL_SFLOAT, 0, 64 },
139               .g = { ISL_SFLOAT, 64, 64 },
140               .b = {},
141               .a = {},
142               .l = {},
143               .i = {},
144               .p = {},
145     },
146     .colorspace = ISL_COLORSPACE_LINEAR,
147     .txc = ISL_TXC_NONE,
148   },
149 
150   [ISL_FORMAT_R32G32B32X32_FLOAT] = {
151     .format = ISL_FORMAT_R32G32B32X32_FLOAT,
152     .name = "ISL_FORMAT_R32G32B32X32_FLOAT",
153     .bpb = 128,
154     .bw = 1,
155     .bh = 1,
156     .bd = 1,
157     .channels = {
158               .r = { ISL_SFLOAT, 0, 32 },
159               .g = { ISL_SFLOAT, 32, 32 },
160               .b = { ISL_SFLOAT, 64, 32 },
161               .a = { ISL_VOID, 96, 32 },
162               .l = {},
163               .i = {},
164               .p = {},
165     },
166     .colorspace = ISL_COLORSPACE_LINEAR,
167     .txc = ISL_TXC_NONE,
168   },
169 
170   [ISL_FORMAT_R32G32B32A32_SSCALED] = {
171     .format = ISL_FORMAT_R32G32B32A32_SSCALED,
172     .name = "ISL_FORMAT_R32G32B32A32_SSCALED",
173     .bpb = 128,
174     .bw = 1,
175     .bh = 1,
176     .bd = 1,
177     .channels = {
178               .r = { ISL_SSCALED, 0, 32 },
179               .g = { ISL_SSCALED, 32, 32 },
180               .b = { ISL_SSCALED, 64, 32 },
181               .a = { ISL_SSCALED, 96, 32 },
182               .l = {},
183               .i = {},
184               .p = {},
185     },
186     .colorspace = ISL_COLORSPACE_LINEAR,
187     .txc = ISL_TXC_NONE,
188   },
189 
190   [ISL_FORMAT_R32G32B32A32_USCALED] = {
191     .format = ISL_FORMAT_R32G32B32A32_USCALED,
192     .name = "ISL_FORMAT_R32G32B32A32_USCALED",
193     .bpb = 128,
194     .bw = 1,
195     .bh = 1,
196     .bd = 1,
197     .channels = {
198               .r = { ISL_USCALED, 0, 32 },
199               .g = { ISL_USCALED, 32, 32 },
200               .b = { ISL_USCALED, 64, 32 },
201               .a = { ISL_USCALED, 96, 32 },
202               .l = {},
203               .i = {},
204               .p = {},
205     },
206     .colorspace = ISL_COLORSPACE_LINEAR,
207     .txc = ISL_TXC_NONE,
208   },
209 
210   [ISL_FORMAT_R32G32B32A32_SFIXED] = {
211     .format = ISL_FORMAT_R32G32B32A32_SFIXED,
212     .name = "ISL_FORMAT_R32G32B32A32_SFIXED",
213     .bpb = 128,
214     .bw = 1,
215     .bh = 1,
216     .bd = 1,
217     .channels = {
218               .r = { ISL_SFIXED, 0, 32 },
219               .g = { ISL_SFIXED, 32, 32 },
220               .b = { ISL_SFIXED, 64, 32 },
221               .a = { ISL_SFIXED, 96, 32 },
222               .l = {},
223               .i = {},
224               .p = {},
225     },
226     .colorspace = ISL_COLORSPACE_LINEAR,
227     .txc = ISL_TXC_NONE,
228   },
229 
230   [ISL_FORMAT_R64G64_PASSTHRU] = {
231     .format = ISL_FORMAT_R64G64_PASSTHRU,
232     .name = "ISL_FORMAT_R64G64_PASSTHRU",
233     .bpb = 128,
234     .bw = 1,
235     .bh = 1,
236     .bd = 1,
237     .channels = {
238               .r = { ISL_RAW, 0, 64 },
239               .g = { ISL_RAW, 64, 64 },
240               .b = {},
241               .a = {},
242               .l = {},
243               .i = {},
244               .p = {},
245     },
246     .colorspace = ISL_COLORSPACE_NONE,
247     .txc = ISL_TXC_NONE,
248   },
249 
250   [ISL_FORMAT_R32G32B32_FLOAT] = {
251     .format = ISL_FORMAT_R32G32B32_FLOAT,
252     .name = "ISL_FORMAT_R32G32B32_FLOAT",
253     .bpb = 96,
254     .bw = 1,
255     .bh = 1,
256     .bd = 1,
257     .channels = {
258               .r = { ISL_SFLOAT, 0, 32 },
259               .g = { ISL_SFLOAT, 32, 32 },
260               .b = { ISL_SFLOAT, 64, 32 },
261               .a = {},
262               .l = {},
263               .i = {},
264               .p = {},
265     },
266     .colorspace = ISL_COLORSPACE_LINEAR,
267     .txc = ISL_TXC_NONE,
268   },
269 
270   [ISL_FORMAT_R32G32B32_SINT] = {
271     .format = ISL_FORMAT_R32G32B32_SINT,
272     .name = "ISL_FORMAT_R32G32B32_SINT",
273     .bpb = 96,
274     .bw = 1,
275     .bh = 1,
276     .bd = 1,
277     .channels = {
278               .r = { ISL_SINT, 0, 32 },
279               .g = { ISL_SINT, 32, 32 },
280               .b = { ISL_SINT, 64, 32 },
281               .a = {},
282               .l = {},
283               .i = {},
284               .p = {},
285     },
286     .colorspace = ISL_COLORSPACE_LINEAR,
287     .txc = ISL_TXC_NONE,
288   },
289 
290   [ISL_FORMAT_R32G32B32_UINT] = {
291     .format = ISL_FORMAT_R32G32B32_UINT,
292     .name = "ISL_FORMAT_R32G32B32_UINT",
293     .bpb = 96,
294     .bw = 1,
295     .bh = 1,
296     .bd = 1,
297     .channels = {
298               .r = { ISL_UINT, 0, 32 },
299               .g = { ISL_UINT, 32, 32 },
300               .b = { ISL_UINT, 64, 32 },
301               .a = {},
302               .l = {},
303               .i = {},
304               .p = {},
305     },
306     .colorspace = ISL_COLORSPACE_LINEAR,
307     .txc = ISL_TXC_NONE,
308   },
309 
310   [ISL_FORMAT_R32G32B32_UNORM] = {
311     .format = ISL_FORMAT_R32G32B32_UNORM,
312     .name = "ISL_FORMAT_R32G32B32_UNORM",
313     .bpb = 96,
314     .bw = 1,
315     .bh = 1,
316     .bd = 1,
317     .channels = {
318               .r = { ISL_UNORM, 0, 32 },
319               .g = { ISL_UNORM, 32, 32 },
320               .b = { ISL_UNORM, 64, 32 },
321               .a = {},
322               .l = {},
323               .i = {},
324               .p = {},
325     },
326     .colorspace = ISL_COLORSPACE_LINEAR,
327     .txc = ISL_TXC_NONE,
328   },
329 
330   [ISL_FORMAT_R32G32B32_SNORM] = {
331     .format = ISL_FORMAT_R32G32B32_SNORM,
332     .name = "ISL_FORMAT_R32G32B32_SNORM",
333     .bpb = 96,
334     .bw = 1,
335     .bh = 1,
336     .bd = 1,
337     .channels = {
338               .r = { ISL_SNORM, 0, 32 },
339               .g = { ISL_SNORM, 32, 32 },
340               .b = { ISL_SNORM, 64, 32 },
341               .a = {},
342               .l = {},
343               .i = {},
344               .p = {},
345     },
346     .colorspace = ISL_COLORSPACE_LINEAR,
347     .txc = ISL_TXC_NONE,
348   },
349 
350   [ISL_FORMAT_R32G32B32_SSCALED] = {
351     .format = ISL_FORMAT_R32G32B32_SSCALED,
352     .name = "ISL_FORMAT_R32G32B32_SSCALED",
353     .bpb = 96,
354     .bw = 1,
355     .bh = 1,
356     .bd = 1,
357     .channels = {
358               .r = { ISL_SSCALED, 0, 32 },
359               .g = { ISL_SSCALED, 32, 32 },
360               .b = { ISL_SSCALED, 64, 32 },
361               .a = {},
362               .l = {},
363               .i = {},
364               .p = {},
365     },
366     .colorspace = ISL_COLORSPACE_LINEAR,
367     .txc = ISL_TXC_NONE,
368   },
369 
370   [ISL_FORMAT_R32G32B32_USCALED] = {
371     .format = ISL_FORMAT_R32G32B32_USCALED,
372     .name = "ISL_FORMAT_R32G32B32_USCALED",
373     .bpb = 96,
374     .bw = 1,
375     .bh = 1,
376     .bd = 1,
377     .channels = {
378               .r = { ISL_USCALED, 0, 32 },
379               .g = { ISL_USCALED, 32, 32 },
380               .b = { ISL_USCALED, 64, 32 },
381               .a = {},
382               .l = {},
383               .i = {},
384               .p = {},
385     },
386     .colorspace = ISL_COLORSPACE_LINEAR,
387     .txc = ISL_TXC_NONE,
388   },
389 
390   [ISL_FORMAT_R32G32B32_SFIXED] = {
391     .format = ISL_FORMAT_R32G32B32_SFIXED,
392     .name = "ISL_FORMAT_R32G32B32_SFIXED",
393     .bpb = 96,
394     .bw = 1,
395     .bh = 1,
396     .bd = 1,
397     .channels = {
398               .r = { ISL_SFIXED, 0, 32 },
399               .g = { ISL_SFIXED, 32, 32 },
400               .b = { ISL_SFIXED, 64, 32 },
401               .a = {},
402               .l = {},
403               .i = {},
404               .p = {},
405     },
406     .colorspace = ISL_COLORSPACE_LINEAR,
407     .txc = ISL_TXC_NONE,
408   },
409 
410   [ISL_FORMAT_R16G16B16A16_UNORM] = {
411     .format = ISL_FORMAT_R16G16B16A16_UNORM,
412     .name = "ISL_FORMAT_R16G16B16A16_UNORM",
413     .bpb = 64,
414     .bw = 1,
415     .bh = 1,
416     .bd = 1,
417     .channels = {
418               .r = { ISL_UNORM, 0, 16 },
419               .g = { ISL_UNORM, 16, 16 },
420               .b = { ISL_UNORM, 32, 16 },
421               .a = { ISL_UNORM, 48, 16 },
422               .l = {},
423               .i = {},
424               .p = {},
425     },
426     .colorspace = ISL_COLORSPACE_LINEAR,
427     .txc = ISL_TXC_NONE,
428   },
429 
430   [ISL_FORMAT_R16G16B16A16_SNORM] = {
431     .format = ISL_FORMAT_R16G16B16A16_SNORM,
432     .name = "ISL_FORMAT_R16G16B16A16_SNORM",
433     .bpb = 64,
434     .bw = 1,
435     .bh = 1,
436     .bd = 1,
437     .channels = {
438               .r = { ISL_SNORM, 0, 16 },
439               .g = { ISL_SNORM, 16, 16 },
440               .b = { ISL_SNORM, 32, 16 },
441               .a = { ISL_SNORM, 48, 16 },
442               .l = {},
443               .i = {},
444               .p = {},
445     },
446     .colorspace = ISL_COLORSPACE_LINEAR,
447     .txc = ISL_TXC_NONE,
448   },
449 
450   [ISL_FORMAT_R16G16B16A16_SINT] = {
451     .format = ISL_FORMAT_R16G16B16A16_SINT,
452     .name = "ISL_FORMAT_R16G16B16A16_SINT",
453     .bpb = 64,
454     .bw = 1,
455     .bh = 1,
456     .bd = 1,
457     .channels = {
458               .r = { ISL_SINT, 0, 16 },
459               .g = { ISL_SINT, 16, 16 },
460               .b = { ISL_SINT, 32, 16 },
461               .a = { ISL_SINT, 48, 16 },
462               .l = {},
463               .i = {},
464               .p = {},
465     },
466     .colorspace = ISL_COLORSPACE_LINEAR,
467     .txc = ISL_TXC_NONE,
468   },
469 
470   [ISL_FORMAT_R16G16B16A16_UINT] = {
471     .format = ISL_FORMAT_R16G16B16A16_UINT,
472     .name = "ISL_FORMAT_R16G16B16A16_UINT",
473     .bpb = 64,
474     .bw = 1,
475     .bh = 1,
476     .bd = 1,
477     .channels = {
478               .r = { ISL_UINT, 0, 16 },
479               .g = { ISL_UINT, 16, 16 },
480               .b = { ISL_UINT, 32, 16 },
481               .a = { ISL_UINT, 48, 16 },
482               .l = {},
483               .i = {},
484               .p = {},
485     },
486     .colorspace = ISL_COLORSPACE_LINEAR,
487     .txc = ISL_TXC_NONE,
488   },
489 
490   [ISL_FORMAT_R16G16B16A16_FLOAT] = {
491     .format = ISL_FORMAT_R16G16B16A16_FLOAT,
492     .name = "ISL_FORMAT_R16G16B16A16_FLOAT",
493     .bpb = 64,
494     .bw = 1,
495     .bh = 1,
496     .bd = 1,
497     .channels = {
498               .r = { ISL_SFLOAT, 0, 16 },
499               .g = { ISL_SFLOAT, 16, 16 },
500               .b = { ISL_SFLOAT, 32, 16 },
501               .a = { ISL_SFLOAT, 48, 16 },
502               .l = {},
503               .i = {},
504               .p = {},
505     },
506     .colorspace = ISL_COLORSPACE_LINEAR,
507     .txc = ISL_TXC_NONE,
508   },
509 
510   [ISL_FORMAT_R32G32_FLOAT] = {
511     .format = ISL_FORMAT_R32G32_FLOAT,
512     .name = "ISL_FORMAT_R32G32_FLOAT",
513     .bpb = 64,
514     .bw = 1,
515     .bh = 1,
516     .bd = 1,
517     .channels = {
518               .r = { ISL_SFLOAT, 0, 32 },
519               .g = { ISL_SFLOAT, 32, 32 },
520               .b = {},
521               .a = {},
522               .l = {},
523               .i = {},
524               .p = {},
525     },
526     .colorspace = ISL_COLORSPACE_LINEAR,
527     .txc = ISL_TXC_NONE,
528   },
529 
530   [ISL_FORMAT_R32G32_SINT] = {
531     .format = ISL_FORMAT_R32G32_SINT,
532     .name = "ISL_FORMAT_R32G32_SINT",
533     .bpb = 64,
534     .bw = 1,
535     .bh = 1,
536     .bd = 1,
537     .channels = {
538               .r = { ISL_SINT, 0, 32 },
539               .g = { ISL_SINT, 32, 32 },
540               .b = {},
541               .a = {},
542               .l = {},
543               .i = {},
544               .p = {},
545     },
546     .colorspace = ISL_COLORSPACE_LINEAR,
547     .txc = ISL_TXC_NONE,
548   },
549 
550   [ISL_FORMAT_R32G32_UINT] = {
551     .format = ISL_FORMAT_R32G32_UINT,
552     .name = "ISL_FORMAT_R32G32_UINT",
553     .bpb = 64,
554     .bw = 1,
555     .bh = 1,
556     .bd = 1,
557     .channels = {
558               .r = { ISL_UINT, 0, 32 },
559               .g = { ISL_UINT, 32, 32 },
560               .b = {},
561               .a = {},
562               .l = {},
563               .i = {},
564               .p = {},
565     },
566     .colorspace = ISL_COLORSPACE_LINEAR,
567     .txc = ISL_TXC_NONE,
568   },
569 
570   [ISL_FORMAT_R32_FLOAT_X8X24_TYPELESS] = {
571     .format = ISL_FORMAT_R32_FLOAT_X8X24_TYPELESS,
572     .name = "ISL_FORMAT_R32_FLOAT_X8X24_TYPELESS",
573     .bpb = 64,
574     .bw = 1,
575     .bh = 1,
576     .bd = 1,
577     .channels = {
578               .r = { ISL_SFLOAT, 0, 32 },
579               .g = { ISL_VOID, 32, 8 },
580               .b = { ISL_VOID, 40, 24 },
581               .a = {},
582               .l = {},
583               .i = {},
584               .p = {},
585     },
586     .colorspace = ISL_COLORSPACE_LINEAR,
587     .txc = ISL_TXC_NONE,
588   },
589 
590   [ISL_FORMAT_X32_TYPELESS_G8X24_UINT] = {
591     .format = ISL_FORMAT_X32_TYPELESS_G8X24_UINT,
592     .name = "ISL_FORMAT_X32_TYPELESS_G8X24_UINT",
593     .bpb = 64,
594     .bw = 1,
595     .bh = 1,
596     .bd = 1,
597     .channels = {
598               .r = { ISL_VOID, 0, 32 },
599               .g = { ISL_UINT, 32, 8 },
600               .b = { ISL_VOID, 40, 24 },
601               .a = {},
602               .l = {},
603               .i = {},
604               .p = {},
605     },
606     .colorspace = ISL_COLORSPACE_LINEAR,
607     .txc = ISL_TXC_NONE,
608   },
609 
610   [ISL_FORMAT_L32A32_FLOAT] = {
611     .format = ISL_FORMAT_L32A32_FLOAT,
612     .name = "ISL_FORMAT_L32A32_FLOAT",
613     .bpb = 64,
614     .bw = 1,
615     .bh = 1,
616     .bd = 1,
617     .channels = {
618               .r = {},
619               .g = {},
620               .b = {},
621               .a = { ISL_SFLOAT, 32, 32 },
622               .l = { ISL_SFLOAT, 0, 32 },
623               .i = {},
624               .p = {},
625     },
626     .colorspace = ISL_COLORSPACE_LINEAR,
627     .txc = ISL_TXC_NONE,
628   },
629 
630   [ISL_FORMAT_R32G32_UNORM] = {
631     .format = ISL_FORMAT_R32G32_UNORM,
632     .name = "ISL_FORMAT_R32G32_UNORM",
633     .bpb = 64,
634     .bw = 1,
635     .bh = 1,
636     .bd = 1,
637     .channels = {
638               .r = { ISL_UNORM, 0, 32 },
639               .g = { ISL_UNORM, 32, 32 },
640               .b = {},
641               .a = {},
642               .l = {},
643               .i = {},
644               .p = {},
645     },
646     .colorspace = ISL_COLORSPACE_LINEAR,
647     .txc = ISL_TXC_NONE,
648   },
649 
650   [ISL_FORMAT_R32G32_SNORM] = {
651     .format = ISL_FORMAT_R32G32_SNORM,
652     .name = "ISL_FORMAT_R32G32_SNORM",
653     .bpb = 64,
654     .bw = 1,
655     .bh = 1,
656     .bd = 1,
657     .channels = {
658               .r = { ISL_SNORM, 0, 32 },
659               .g = { ISL_SNORM, 32, 32 },
660               .b = {},
661               .a = {},
662               .l = {},
663               .i = {},
664               .p = {},
665     },
666     .colorspace = ISL_COLORSPACE_LINEAR,
667     .txc = ISL_TXC_NONE,
668   },
669 
670   [ISL_FORMAT_R64_FLOAT] = {
671     .format = ISL_FORMAT_R64_FLOAT,
672     .name = "ISL_FORMAT_R64_FLOAT",
673     .bpb = 64,
674     .bw = 1,
675     .bh = 1,
676     .bd = 1,
677     .channels = {
678               .r = { ISL_SFLOAT, 0, 64 },
679               .g = {},
680               .b = {},
681               .a = {},
682               .l = {},
683               .i = {},
684               .p = {},
685     },
686     .colorspace = ISL_COLORSPACE_LINEAR,
687     .txc = ISL_TXC_NONE,
688   },
689 
690   [ISL_FORMAT_R16G16B16X16_UNORM] = {
691     .format = ISL_FORMAT_R16G16B16X16_UNORM,
692     .name = "ISL_FORMAT_R16G16B16X16_UNORM",
693     .bpb = 64,
694     .bw = 1,
695     .bh = 1,
696     .bd = 1,
697     .channels = {
698               .r = { ISL_UNORM, 0, 16 },
699               .g = { ISL_UNORM, 16, 16 },
700               .b = { ISL_UNORM, 32, 16 },
701               .a = { ISL_VOID, 48, 16 },
702               .l = {},
703               .i = {},
704               .p = {},
705     },
706     .colorspace = ISL_COLORSPACE_LINEAR,
707     .txc = ISL_TXC_NONE,
708   },
709 
710   [ISL_FORMAT_R16G16B16X16_FLOAT] = {
711     .format = ISL_FORMAT_R16G16B16X16_FLOAT,
712     .name = "ISL_FORMAT_R16G16B16X16_FLOAT",
713     .bpb = 64,
714     .bw = 1,
715     .bh = 1,
716     .bd = 1,
717     .channels = {
718               .r = { ISL_SFLOAT, 0, 16 },
719               .g = { ISL_SFLOAT, 16, 16 },
720               .b = { ISL_SFLOAT, 32, 16 },
721               .a = { ISL_VOID, 48, 16 },
722               .l = {},
723               .i = {},
724               .p = {},
725     },
726     .colorspace = ISL_COLORSPACE_LINEAR,
727     .txc = ISL_TXC_NONE,
728   },
729 
730   [ISL_FORMAT_A32X32_FLOAT] = {
731     .format = ISL_FORMAT_A32X32_FLOAT,
732     .name = "ISL_FORMAT_A32X32_FLOAT",
733     .bpb = 64,
734     .bw = 1,
735     .bh = 1,
736     .bd = 1,
737     .channels = {
738               .r = {},
739               .g = {},
740               .b = {},
741               .a = { ISL_SFLOAT, 0, 32 },
742               .l = { ISL_VOID, 32, 32 },
743               .i = {},
744               .p = {},
745     },
746     .colorspace = ISL_COLORSPACE_LINEAR,
747     .txc = ISL_TXC_NONE,
748   },
749 
750   [ISL_FORMAT_L32X32_FLOAT] = {
751     .format = ISL_FORMAT_L32X32_FLOAT,
752     .name = "ISL_FORMAT_L32X32_FLOAT",
753     .bpb = 64,
754     .bw = 1,
755     .bh = 1,
756     .bd = 1,
757     .channels = {
758               .r = {},
759               .g = {},
760               .b = {},
761               .a = { ISL_VOID, 32, 32 },
762               .l = { ISL_SFLOAT, 0, 32 },
763               .i = {},
764               .p = {},
765     },
766     .colorspace = ISL_COLORSPACE_LINEAR,
767     .txc = ISL_TXC_NONE,
768   },
769 
770   [ISL_FORMAT_I32X32_FLOAT] = {
771     .format = ISL_FORMAT_I32X32_FLOAT,
772     .name = "ISL_FORMAT_I32X32_FLOAT",
773     .bpb = 64,
774     .bw = 1,
775     .bh = 1,
776     .bd = 1,
777     .channels = {
778               .r = {},
779               .g = {},
780               .b = {},
781               .a = { ISL_VOID, 32, 32 },
782               .l = {},
783               .i = { ISL_SFLOAT, 0, 32 },
784               .p = {},
785     },
786     .colorspace = ISL_COLORSPACE_LINEAR,
787     .txc = ISL_TXC_NONE,
788   },
789 
790   [ISL_FORMAT_R16G16B16A16_SSCALED] = {
791     .format = ISL_FORMAT_R16G16B16A16_SSCALED,
792     .name = "ISL_FORMAT_R16G16B16A16_SSCALED",
793     .bpb = 64,
794     .bw = 1,
795     .bh = 1,
796     .bd = 1,
797     .channels = {
798               .r = { ISL_SSCALED, 0, 16 },
799               .g = { ISL_SSCALED, 16, 16 },
800               .b = { ISL_SSCALED, 32, 16 },
801               .a = { ISL_SSCALED, 48, 16 },
802               .l = {},
803               .i = {},
804               .p = {},
805     },
806     .colorspace = ISL_COLORSPACE_LINEAR,
807     .txc = ISL_TXC_NONE,
808   },
809 
810   [ISL_FORMAT_R16G16B16A16_USCALED] = {
811     .format = ISL_FORMAT_R16G16B16A16_USCALED,
812     .name = "ISL_FORMAT_R16G16B16A16_USCALED",
813     .bpb = 64,
814     .bw = 1,
815     .bh = 1,
816     .bd = 1,
817     .channels = {
818               .r = { ISL_USCALED, 0, 16 },
819               .g = { ISL_USCALED, 16, 16 },
820               .b = { ISL_USCALED, 32, 16 },
821               .a = { ISL_USCALED, 48, 16 },
822               .l = {},
823               .i = {},
824               .p = {},
825     },
826     .colorspace = ISL_COLORSPACE_LINEAR,
827     .txc = ISL_TXC_NONE,
828   },
829 
830   [ISL_FORMAT_R32G32_SSCALED] = {
831     .format = ISL_FORMAT_R32G32_SSCALED,
832     .name = "ISL_FORMAT_R32G32_SSCALED",
833     .bpb = 64,
834     .bw = 1,
835     .bh = 1,
836     .bd = 1,
837     .channels = {
838               .r = { ISL_SSCALED, 0, 32 },
839               .g = { ISL_SSCALED, 32, 32 },
840               .b = {},
841               .a = {},
842               .l = {},
843               .i = {},
844               .p = {},
845     },
846     .colorspace = ISL_COLORSPACE_LINEAR,
847     .txc = ISL_TXC_NONE,
848   },
849 
850   [ISL_FORMAT_R32G32_USCALED] = {
851     .format = ISL_FORMAT_R32G32_USCALED,
852     .name = "ISL_FORMAT_R32G32_USCALED",
853     .bpb = 64,
854     .bw = 1,
855     .bh = 1,
856     .bd = 1,
857     .channels = {
858               .r = { ISL_USCALED, 0, 32 },
859               .g = { ISL_USCALED, 32, 32 },
860               .b = {},
861               .a = {},
862               .l = {},
863               .i = {},
864               .p = {},
865     },
866     .colorspace = ISL_COLORSPACE_LINEAR,
867     .txc = ISL_TXC_NONE,
868   },
869 
870   [ISL_FORMAT_R32G32_FLOAT_LD] = {
871     .format = ISL_FORMAT_R32G32_FLOAT_LD,
872     .name = "ISL_FORMAT_R32G32_FLOAT_LD",
873     .bpb = 64,
874     .bw = 1,
875     .bh = 1,
876     .bd = 1,
877     .channels = {
878               .r = { ISL_SFLOAT, 0, 32 },
879               .g = { ISL_SFLOAT, 32, 32 },
880               .b = {},
881               .a = {},
882               .l = {},
883               .i = {},
884               .p = {},
885     },
886     .colorspace = ISL_COLORSPACE_LINEAR,
887     .txc = ISL_TXC_NONE,
888   },
889 
890   [ISL_FORMAT_R32G32_SFIXED] = {
891     .format = ISL_FORMAT_R32G32_SFIXED,
892     .name = "ISL_FORMAT_R32G32_SFIXED",
893     .bpb = 64,
894     .bw = 1,
895     .bh = 1,
896     .bd = 1,
897     .channels = {
898               .r = { ISL_SFIXED, 0, 32 },
899               .g = { ISL_SFIXED, 32, 32 },
900               .b = {},
901               .a = {},
902               .l = {},
903               .i = {},
904               .p = {},
905     },
906     .colorspace = ISL_COLORSPACE_LINEAR,
907     .txc = ISL_TXC_NONE,
908   },
909 
910   [ISL_FORMAT_R64_PASSTHRU] = {
911     .format = ISL_FORMAT_R64_PASSTHRU,
912     .name = "ISL_FORMAT_R64_PASSTHRU",
913     .bpb = 64,
914     .bw = 1,
915     .bh = 1,
916     .bd = 1,
917     .channels = {
918               .r = { ISL_RAW, 0, 64 },
919               .g = {},
920               .b = {},
921               .a = {},
922               .l = {},
923               .i = {},
924               .p = {},
925     },
926     .colorspace = ISL_COLORSPACE_NONE,
927     .txc = ISL_TXC_NONE,
928   },
929 
930   [ISL_FORMAT_B8G8R8A8_UNORM] = {
931     .format = ISL_FORMAT_B8G8R8A8_UNORM,
932     .name = "ISL_FORMAT_B8G8R8A8_UNORM",
933     .bpb = 32,
934     .bw = 1,
935     .bh = 1,
936     .bd = 1,
937     .channels = {
938               .r = { ISL_UNORM, 16, 8 },
939               .g = { ISL_UNORM, 8, 8 },
940               .b = { ISL_UNORM, 0, 8 },
941               .a = { ISL_UNORM, 24, 8 },
942               .l = {},
943               .i = {},
944               .p = {},
945     },
946     .colorspace = ISL_COLORSPACE_LINEAR,
947     .txc = ISL_TXC_NONE,
948   },
949 
950   [ISL_FORMAT_B8G8R8A8_UNORM_SRGB] = {
951     .format = ISL_FORMAT_B8G8R8A8_UNORM_SRGB,
952     .name = "ISL_FORMAT_B8G8R8A8_UNORM_SRGB",
953     .bpb = 32,
954     .bw = 1,
955     .bh = 1,
956     .bd = 1,
957     .channels = {
958               .r = { ISL_UNORM, 16, 8 },
959               .g = { ISL_UNORM, 8, 8 },
960               .b = { ISL_UNORM, 0, 8 },
961               .a = { ISL_UNORM, 24, 8 },
962               .l = {},
963               .i = {},
964               .p = {},
965     },
966     .colorspace = ISL_COLORSPACE_SRGB,
967     .txc = ISL_TXC_NONE,
968   },
969 
970   [ISL_FORMAT_R10G10B10A2_UNORM] = {
971     .format = ISL_FORMAT_R10G10B10A2_UNORM,
972     .name = "ISL_FORMAT_R10G10B10A2_UNORM",
973     .bpb = 32,
974     .bw = 1,
975     .bh = 1,
976     .bd = 1,
977     .channels = {
978               .r = { ISL_UNORM, 0, 10 },
979               .g = { ISL_UNORM, 10, 10 },
980               .b = { ISL_UNORM, 20, 10 },
981               .a = { ISL_UNORM, 30, 2 },
982               .l = {},
983               .i = {},
984               .p = {},
985     },
986     .colorspace = ISL_COLORSPACE_LINEAR,
987     .txc = ISL_TXC_NONE,
988   },
989 
990   [ISL_FORMAT_R10G10B10A2_UNORM_SRGB] = {
991     .format = ISL_FORMAT_R10G10B10A2_UNORM_SRGB,
992     .name = "ISL_FORMAT_R10G10B10A2_UNORM_SRGB",
993     .bpb = 32,
994     .bw = 1,
995     .bh = 1,
996     .bd = 1,
997     .channels = {
998               .r = { ISL_UNORM, 0, 10 },
999               .g = { ISL_UNORM, 10, 10 },
1000               .b = { ISL_UNORM, 20, 10 },
1001               .a = { ISL_UNORM, 30, 2 },
1002               .l = {},
1003               .i = {},
1004               .p = {},
1005     },
1006     .colorspace = ISL_COLORSPACE_SRGB,
1007     .txc = ISL_TXC_NONE,
1008   },
1009 
1010   [ISL_FORMAT_R10G10B10A2_UINT] = {
1011     .format = ISL_FORMAT_R10G10B10A2_UINT,
1012     .name = "ISL_FORMAT_R10G10B10A2_UINT",
1013     .bpb = 32,
1014     .bw = 1,
1015     .bh = 1,
1016     .bd = 1,
1017     .channels = {
1018               .r = { ISL_UINT, 0, 10 },
1019               .g = { ISL_UINT, 10, 10 },
1020               .b = { ISL_UINT, 20, 10 },
1021               .a = { ISL_UINT, 30, 2 },
1022               .l = {},
1023               .i = {},
1024               .p = {},
1025     },
1026     .colorspace = ISL_COLORSPACE_LINEAR,
1027     .txc = ISL_TXC_NONE,
1028   },
1029 
1030   [ISL_FORMAT_R10G10B10_SNORM_A2_UNORM] = {
1031     .format = ISL_FORMAT_R10G10B10_SNORM_A2_UNORM,
1032     .name = "ISL_FORMAT_R10G10B10_SNORM_A2_UNORM",
1033     .bpb = 32,
1034     .bw = 1,
1035     .bh = 1,
1036     .bd = 1,
1037     .channels = {
1038               .r = { ISL_SNORM, 0, 10 },
1039               .g = { ISL_SNORM, 10, 10 },
1040               .b = { ISL_SNORM, 20, 10 },
1041               .a = { ISL_UNORM, 30, 2 },
1042               .l = {},
1043               .i = {},
1044               .p = {},
1045     },
1046     .colorspace = ISL_COLORSPACE_LINEAR,
1047     .txc = ISL_TXC_NONE,
1048   },
1049 
1050   [ISL_FORMAT_R8G8B8A8_UNORM] = {
1051     .format = ISL_FORMAT_R8G8B8A8_UNORM,
1052     .name = "ISL_FORMAT_R8G8B8A8_UNORM",
1053     .bpb = 32,
1054     .bw = 1,
1055     .bh = 1,
1056     .bd = 1,
1057     .channels = {
1058               .r = { ISL_UNORM, 0, 8 },
1059               .g = { ISL_UNORM, 8, 8 },
1060               .b = { ISL_UNORM, 16, 8 },
1061               .a = { ISL_UNORM, 24, 8 },
1062               .l = {},
1063               .i = {},
1064               .p = {},
1065     },
1066     .colorspace = ISL_COLORSPACE_LINEAR,
1067     .txc = ISL_TXC_NONE,
1068   },
1069 
1070   [ISL_FORMAT_R8G8B8A8_UNORM_SRGB] = {
1071     .format = ISL_FORMAT_R8G8B8A8_UNORM_SRGB,
1072     .name = "ISL_FORMAT_R8G8B8A8_UNORM_SRGB",
1073     .bpb = 32,
1074     .bw = 1,
1075     .bh = 1,
1076     .bd = 1,
1077     .channels = {
1078               .r = { ISL_UNORM, 0, 8 },
1079               .g = { ISL_UNORM, 8, 8 },
1080               .b = { ISL_UNORM, 16, 8 },
1081               .a = { ISL_UNORM, 24, 8 },
1082               .l = {},
1083               .i = {},
1084               .p = {},
1085     },
1086     .colorspace = ISL_COLORSPACE_SRGB,
1087     .txc = ISL_TXC_NONE,
1088   },
1089 
1090   [ISL_FORMAT_R8G8B8A8_SNORM] = {
1091     .format = ISL_FORMAT_R8G8B8A8_SNORM,
1092     .name = "ISL_FORMAT_R8G8B8A8_SNORM",
1093     .bpb = 32,
1094     .bw = 1,
1095     .bh = 1,
1096     .bd = 1,
1097     .channels = {
1098               .r = { ISL_SNORM, 0, 8 },
1099               .g = { ISL_SNORM, 8, 8 },
1100               .b = { ISL_SNORM, 16, 8 },
1101               .a = { ISL_SNORM, 24, 8 },
1102               .l = {},
1103               .i = {},
1104               .p = {},
1105     },
1106     .colorspace = ISL_COLORSPACE_LINEAR,
1107     .txc = ISL_TXC_NONE,
1108   },
1109 
1110   [ISL_FORMAT_R8G8B8A8_SINT] = {
1111     .format = ISL_FORMAT_R8G8B8A8_SINT,
1112     .name = "ISL_FORMAT_R8G8B8A8_SINT",
1113     .bpb = 32,
1114     .bw = 1,
1115     .bh = 1,
1116     .bd = 1,
1117     .channels = {
1118               .r = { ISL_SINT, 0, 8 },
1119               .g = { ISL_SINT, 8, 8 },
1120               .b = { ISL_SINT, 16, 8 },
1121               .a = { ISL_SINT, 24, 8 },
1122               .l = {},
1123               .i = {},
1124               .p = {},
1125     },
1126     .colorspace = ISL_COLORSPACE_LINEAR,
1127     .txc = ISL_TXC_NONE,
1128   },
1129 
1130   [ISL_FORMAT_R8G8B8A8_UINT] = {
1131     .format = ISL_FORMAT_R8G8B8A8_UINT,
1132     .name = "ISL_FORMAT_R8G8B8A8_UINT",
1133     .bpb = 32,
1134     .bw = 1,
1135     .bh = 1,
1136     .bd = 1,
1137     .channels = {
1138               .r = { ISL_UINT, 0, 8 },
1139               .g = { ISL_UINT, 8, 8 },
1140               .b = { ISL_UINT, 16, 8 },
1141               .a = { ISL_UINT, 24, 8 },
1142               .l = {},
1143               .i = {},
1144               .p = {},
1145     },
1146     .colorspace = ISL_COLORSPACE_LINEAR,
1147     .txc = ISL_TXC_NONE,
1148   },
1149 
1150   [ISL_FORMAT_R16G16_UNORM] = {
1151     .format = ISL_FORMAT_R16G16_UNORM,
1152     .name = "ISL_FORMAT_R16G16_UNORM",
1153     .bpb = 32,
1154     .bw = 1,
1155     .bh = 1,
1156     .bd = 1,
1157     .channels = {
1158               .r = { ISL_UNORM, 0, 16 },
1159               .g = { ISL_UNORM, 16, 16 },
1160               .b = {},
1161               .a = {},
1162               .l = {},
1163               .i = {},
1164               .p = {},
1165     },
1166     .colorspace = ISL_COLORSPACE_LINEAR,
1167     .txc = ISL_TXC_NONE,
1168   },
1169 
1170   [ISL_FORMAT_R16G16_SNORM] = {
1171     .format = ISL_FORMAT_R16G16_SNORM,
1172     .name = "ISL_FORMAT_R16G16_SNORM",
1173     .bpb = 32,
1174     .bw = 1,
1175     .bh = 1,
1176     .bd = 1,
1177     .channels = {
1178               .r = { ISL_SNORM, 0, 16 },
1179               .g = { ISL_SNORM, 16, 16 },
1180               .b = {},
1181               .a = {},
1182               .l = {},
1183               .i = {},
1184               .p = {},
1185     },
1186     .colorspace = ISL_COLORSPACE_LINEAR,
1187     .txc = ISL_TXC_NONE,
1188   },
1189 
1190   [ISL_FORMAT_R16G16_SINT] = {
1191     .format = ISL_FORMAT_R16G16_SINT,
1192     .name = "ISL_FORMAT_R16G16_SINT",
1193     .bpb = 32,
1194     .bw = 1,
1195     .bh = 1,
1196     .bd = 1,
1197     .channels = {
1198               .r = { ISL_SINT, 0, 16 },
1199               .g = { ISL_SINT, 16, 16 },
1200               .b = {},
1201               .a = {},
1202               .l = {},
1203               .i = {},
1204               .p = {},
1205     },
1206     .colorspace = ISL_COLORSPACE_LINEAR,
1207     .txc = ISL_TXC_NONE,
1208   },
1209 
1210   [ISL_FORMAT_R16G16_UINT] = {
1211     .format = ISL_FORMAT_R16G16_UINT,
1212     .name = "ISL_FORMAT_R16G16_UINT",
1213     .bpb = 32,
1214     .bw = 1,
1215     .bh = 1,
1216     .bd = 1,
1217     .channels = {
1218               .r = { ISL_UINT, 0, 16 },
1219               .g = { ISL_UINT, 16, 16 },
1220               .b = {},
1221               .a = {},
1222               .l = {},
1223               .i = {},
1224               .p = {},
1225     },
1226     .colorspace = ISL_COLORSPACE_LINEAR,
1227     .txc = ISL_TXC_NONE,
1228   },
1229 
1230   [ISL_FORMAT_R16G16_FLOAT] = {
1231     .format = ISL_FORMAT_R16G16_FLOAT,
1232     .name = "ISL_FORMAT_R16G16_FLOAT",
1233     .bpb = 32,
1234     .bw = 1,
1235     .bh = 1,
1236     .bd = 1,
1237     .channels = {
1238               .r = { ISL_SFLOAT, 0, 16 },
1239               .g = { ISL_SFLOAT, 16, 16 },
1240               .b = {},
1241               .a = {},
1242               .l = {},
1243               .i = {},
1244               .p = {},
1245     },
1246     .colorspace = ISL_COLORSPACE_LINEAR,
1247     .txc = ISL_TXC_NONE,
1248   },
1249 
1250   [ISL_FORMAT_B10G10R10A2_UNORM] = {
1251     .format = ISL_FORMAT_B10G10R10A2_UNORM,
1252     .name = "ISL_FORMAT_B10G10R10A2_UNORM",
1253     .bpb = 32,
1254     .bw = 1,
1255     .bh = 1,
1256     .bd = 1,
1257     .channels = {
1258               .r = { ISL_UNORM, 20, 10 },
1259               .g = { ISL_UNORM, 10, 10 },
1260               .b = { ISL_UNORM, 0, 10 },
1261               .a = { ISL_UNORM, 30, 2 },
1262               .l = {},
1263               .i = {},
1264               .p = {},
1265     },
1266     .colorspace = ISL_COLORSPACE_LINEAR,
1267     .txc = ISL_TXC_NONE,
1268   },
1269 
1270   [ISL_FORMAT_B10G10R10A2_UNORM_SRGB] = {
1271     .format = ISL_FORMAT_B10G10R10A2_UNORM_SRGB,
1272     .name = "ISL_FORMAT_B10G10R10A2_UNORM_SRGB",
1273     .bpb = 32,
1274     .bw = 1,
1275     .bh = 1,
1276     .bd = 1,
1277     .channels = {
1278               .r = { ISL_UNORM, 20, 10 },
1279               .g = { ISL_UNORM, 10, 10 },
1280               .b = { ISL_UNORM, 0, 10 },
1281               .a = { ISL_UNORM, 30, 2 },
1282               .l = {},
1283               .i = {},
1284               .p = {},
1285     },
1286     .colorspace = ISL_COLORSPACE_SRGB,
1287     .txc = ISL_TXC_NONE,
1288   },
1289 
1290   [ISL_FORMAT_R11G11B10_FLOAT] = {
1291     .format = ISL_FORMAT_R11G11B10_FLOAT,
1292     .name = "ISL_FORMAT_R11G11B10_FLOAT",
1293     .bpb = 32,
1294     .bw = 1,
1295     .bh = 1,
1296     .bd = 1,
1297     .channels = {
1298               .r = { ISL_UFLOAT, 0, 11 },
1299               .g = { ISL_UFLOAT, 11, 11 },
1300               .b = { ISL_UFLOAT, 22, 10 },
1301               .a = {},
1302               .l = {},
1303               .i = {},
1304               .p = {},
1305     },
1306     .colorspace = ISL_COLORSPACE_LINEAR,
1307     .txc = ISL_TXC_NONE,
1308   },
1309 
1310   [ISL_FORMAT_R10G10B10_FLOAT_A2_UNORM] = {
1311     .format = ISL_FORMAT_R10G10B10_FLOAT_A2_UNORM,
1312     .name = "ISL_FORMAT_R10G10B10_FLOAT_A2_UNORM",
1313     .bpb = 32,
1314     .bw = 1,
1315     .bh = 1,
1316     .bd = 1,
1317     .channels = {
1318               .r = { ISL_UFLOAT, 0, 10 },
1319               .g = { ISL_UFLOAT, 10, 10 },
1320               .b = { ISL_UFLOAT, 20, 10 },
1321               .a = { ISL_UNORM, 30, 2 },
1322               .l = {},
1323               .i = {},
1324               .p = {},
1325     },
1326     .colorspace = ISL_COLORSPACE_LINEAR,
1327     .txc = ISL_TXC_NONE,
1328   },
1329 
1330   [ISL_FORMAT_R32_SINT] = {
1331     .format = ISL_FORMAT_R32_SINT,
1332     .name = "ISL_FORMAT_R32_SINT",
1333     .bpb = 32,
1334     .bw = 1,
1335     .bh = 1,
1336     .bd = 1,
1337     .channels = {
1338               .r = { ISL_SINT, 0, 32 },
1339               .g = {},
1340               .b = {},
1341               .a = {},
1342               .l = {},
1343               .i = {},
1344               .p = {},
1345     },
1346     .colorspace = ISL_COLORSPACE_LINEAR,
1347     .txc = ISL_TXC_NONE,
1348   },
1349 
1350   [ISL_FORMAT_R32_UINT] = {
1351     .format = ISL_FORMAT_R32_UINT,
1352     .name = "ISL_FORMAT_R32_UINT",
1353     .bpb = 32,
1354     .bw = 1,
1355     .bh = 1,
1356     .bd = 1,
1357     .channels = {
1358               .r = { ISL_UINT, 0, 32 },
1359               .g = {},
1360               .b = {},
1361               .a = {},
1362               .l = {},
1363               .i = {},
1364               .p = {},
1365     },
1366     .colorspace = ISL_COLORSPACE_LINEAR,
1367     .txc = ISL_TXC_NONE,
1368   },
1369 
1370   [ISL_FORMAT_R32_FLOAT] = {
1371     .format = ISL_FORMAT_R32_FLOAT,
1372     .name = "ISL_FORMAT_R32_FLOAT",
1373     .bpb = 32,
1374     .bw = 1,
1375     .bh = 1,
1376     .bd = 1,
1377     .channels = {
1378               .r = { ISL_SFLOAT, 0, 32 },
1379               .g = {},
1380               .b = {},
1381               .a = {},
1382               .l = {},
1383               .i = {},
1384               .p = {},
1385     },
1386     .colorspace = ISL_COLORSPACE_LINEAR,
1387     .txc = ISL_TXC_NONE,
1388   },
1389 
1390   [ISL_FORMAT_R24_UNORM_X8_TYPELESS] = {
1391     .format = ISL_FORMAT_R24_UNORM_X8_TYPELESS,
1392     .name = "ISL_FORMAT_R24_UNORM_X8_TYPELESS",
1393     .bpb = 32,
1394     .bw = 1,
1395     .bh = 1,
1396     .bd = 1,
1397     .channels = {
1398               .r = { ISL_UNORM, 0, 24 },
1399               .g = { ISL_VOID, 24, 8 },
1400               .b = {},
1401               .a = {},
1402               .l = {},
1403               .i = {},
1404               .p = {},
1405     },
1406     .colorspace = ISL_COLORSPACE_LINEAR,
1407     .txc = ISL_TXC_NONE,
1408   },
1409 
1410   [ISL_FORMAT_X24_TYPELESS_G8_UINT] = {
1411     .format = ISL_FORMAT_X24_TYPELESS_G8_UINT,
1412     .name = "ISL_FORMAT_X24_TYPELESS_G8_UINT",
1413     .bpb = 32,
1414     .bw = 1,
1415     .bh = 1,
1416     .bd = 1,
1417     .channels = {
1418               .r = { ISL_VOID, 0, 24 },
1419               .g = { ISL_UINT, 24, 8 },
1420               .b = {},
1421               .a = {},
1422               .l = {},
1423               .i = {},
1424               .p = {},
1425     },
1426     .colorspace = ISL_COLORSPACE_LINEAR,
1427     .txc = ISL_TXC_NONE,
1428   },
1429 
1430   [ISL_FORMAT_L32_UNORM] = {
1431     .format = ISL_FORMAT_L32_UNORM,
1432     .name = "ISL_FORMAT_L32_UNORM",
1433     .bpb = 32,
1434     .bw = 1,
1435     .bh = 1,
1436     .bd = 1,
1437     .channels = {
1438               .r = {},
1439               .g = {},
1440               .b = {},
1441               .a = {},
1442               .l = { ISL_UNORM, 0, 32 },
1443               .i = {},
1444               .p = {},
1445     },
1446     .colorspace = ISL_COLORSPACE_LINEAR,
1447     .txc = ISL_TXC_NONE,
1448   },
1449 
1450   [ISL_FORMAT_A32_UNORM] = {
1451     .format = ISL_FORMAT_A32_UNORM,
1452     .name = "ISL_FORMAT_A32_UNORM",
1453     .bpb = 32,
1454     .bw = 1,
1455     .bh = 1,
1456     .bd = 1,
1457     .channels = {
1458               .r = {},
1459               .g = {},
1460               .b = {},
1461               .a = { ISL_UNORM, 0, 32 },
1462               .l = {},
1463               .i = {},
1464               .p = {},
1465     },
1466     .colorspace = ISL_COLORSPACE_LINEAR,
1467     .txc = ISL_TXC_NONE,
1468   },
1469 
1470   [ISL_FORMAT_L16A16_UNORM] = {
1471     .format = ISL_FORMAT_L16A16_UNORM,
1472     .name = "ISL_FORMAT_L16A16_UNORM",
1473     .bpb = 32,
1474     .bw = 1,
1475     .bh = 1,
1476     .bd = 1,
1477     .channels = {
1478               .r = {},
1479               .g = {},
1480               .b = {},
1481               .a = { ISL_UNORM, 16, 16 },
1482               .l = { ISL_UNORM, 0, 16 },
1483               .i = {},
1484               .p = {},
1485     },
1486     .colorspace = ISL_COLORSPACE_LINEAR,
1487     .txc = ISL_TXC_NONE,
1488   },
1489 
1490   [ISL_FORMAT_I24X8_UNORM] = {
1491     .format = ISL_FORMAT_I24X8_UNORM,
1492     .name = "ISL_FORMAT_I24X8_UNORM",
1493     .bpb = 32,
1494     .bw = 1,
1495     .bh = 1,
1496     .bd = 1,
1497     .channels = {
1498               .r = {},
1499               .g = {},
1500               .b = {},
1501               .a = { ISL_VOID, 24, 8 },
1502               .l = {},
1503               .i = { ISL_UNORM, 0, 24 },
1504               .p = {},
1505     },
1506     .colorspace = ISL_COLORSPACE_LINEAR,
1507     .txc = ISL_TXC_NONE,
1508   },
1509 
1510   [ISL_FORMAT_L24X8_UNORM] = {
1511     .format = ISL_FORMAT_L24X8_UNORM,
1512     .name = "ISL_FORMAT_L24X8_UNORM",
1513     .bpb = 32,
1514     .bw = 1,
1515     .bh = 1,
1516     .bd = 1,
1517     .channels = {
1518               .r = {},
1519               .g = {},
1520               .b = {},
1521               .a = { ISL_VOID, 24, 8 },
1522               .l = { ISL_UNORM, 0, 24 },
1523               .i = {},
1524               .p = {},
1525     },
1526     .colorspace = ISL_COLORSPACE_LINEAR,
1527     .txc = ISL_TXC_NONE,
1528   },
1529 
1530   [ISL_FORMAT_A24X8_UNORM] = {
1531     .format = ISL_FORMAT_A24X8_UNORM,
1532     .name = "ISL_FORMAT_A24X8_UNORM",
1533     .bpb = 32,
1534     .bw = 1,
1535     .bh = 1,
1536     .bd = 1,
1537     .channels = {
1538               .r = {},
1539               .g = {},
1540               .b = {},
1541               .a = { ISL_UNORM, 0, 24 },
1542               .l = { ISL_VOID, 24, 8 },
1543               .i = {},
1544               .p = {},
1545     },
1546     .colorspace = ISL_COLORSPACE_LINEAR,
1547     .txc = ISL_TXC_NONE,
1548   },
1549 
1550   [ISL_FORMAT_I32_FLOAT] = {
1551     .format = ISL_FORMAT_I32_FLOAT,
1552     .name = "ISL_FORMAT_I32_FLOAT",
1553     .bpb = 32,
1554     .bw = 1,
1555     .bh = 1,
1556     .bd = 1,
1557     .channels = {
1558               .r = {},
1559               .g = {},
1560               .b = {},
1561               .a = {},
1562               .l = {},
1563               .i = { ISL_SFLOAT, 0, 32 },
1564               .p = {},
1565     },
1566     .colorspace = ISL_COLORSPACE_LINEAR,
1567     .txc = ISL_TXC_NONE,
1568   },
1569 
1570   [ISL_FORMAT_L32_FLOAT] = {
1571     .format = ISL_FORMAT_L32_FLOAT,
1572     .name = "ISL_FORMAT_L32_FLOAT",
1573     .bpb = 32,
1574     .bw = 1,
1575     .bh = 1,
1576     .bd = 1,
1577     .channels = {
1578               .r = {},
1579               .g = {},
1580               .b = {},
1581               .a = {},
1582               .l = { ISL_SFLOAT, 0, 32 },
1583               .i = {},
1584               .p = {},
1585     },
1586     .colorspace = ISL_COLORSPACE_LINEAR,
1587     .txc = ISL_TXC_NONE,
1588   },
1589 
1590   [ISL_FORMAT_A32_FLOAT] = {
1591     .format = ISL_FORMAT_A32_FLOAT,
1592     .name = "ISL_FORMAT_A32_FLOAT",
1593     .bpb = 32,
1594     .bw = 1,
1595     .bh = 1,
1596     .bd = 1,
1597     .channels = {
1598               .r = {},
1599               .g = {},
1600               .b = {},
1601               .a = { ISL_SFLOAT, 0, 32 },
1602               .l = {},
1603               .i = {},
1604               .p = {},
1605     },
1606     .colorspace = ISL_COLORSPACE_LINEAR,
1607     .txc = ISL_TXC_NONE,
1608   },
1609 
1610   [ISL_FORMAT_X8B8_UNORM_G8R8_SNORM] = {
1611     .format = ISL_FORMAT_X8B8_UNORM_G8R8_SNORM,
1612     .name = "ISL_FORMAT_X8B8_UNORM_G8R8_SNORM",
1613     .bpb = 32,
1614     .bw = 1,
1615     .bh = 1,
1616     .bd = 1,
1617     .channels = {
1618               .r = { ISL_SNORM, 24, 8 },
1619               .g = { ISL_SNORM, 16, 8 },
1620               .b = { ISL_UNORM, 8, 8 },
1621               .a = { ISL_VOID, 0, 8 },
1622               .l = {},
1623               .i = {},
1624               .p = {},
1625     },
1626     .colorspace = ISL_COLORSPACE_LINEAR,
1627     .txc = ISL_TXC_NONE,
1628   },
1629 
1630   [ISL_FORMAT_A8X8_UNORM_G8R8_SNORM] = {
1631     .format = ISL_FORMAT_A8X8_UNORM_G8R8_SNORM,
1632     .name = "ISL_FORMAT_A8X8_UNORM_G8R8_SNORM",
1633     .bpb = 32,
1634     .bw = 1,
1635     .bh = 1,
1636     .bd = 1,
1637     .channels = {
1638               .r = { ISL_SNORM, 24, 8 },
1639               .g = { ISL_SNORM, 16, 8 },
1640               .b = { ISL_VOID, 8, 8 },
1641               .a = { ISL_UNORM, 0, 8 },
1642               .l = {},
1643               .i = {},
1644               .p = {},
1645     },
1646     .colorspace = ISL_COLORSPACE_LINEAR,
1647     .txc = ISL_TXC_NONE,
1648   },
1649 
1650   [ISL_FORMAT_B8X8_UNORM_G8R8_SNORM] = {
1651     .format = ISL_FORMAT_B8X8_UNORM_G8R8_SNORM,
1652     .name = "ISL_FORMAT_B8X8_UNORM_G8R8_SNORM",
1653     .bpb = 32,
1654     .bw = 1,
1655     .bh = 1,
1656     .bd = 1,
1657     .channels = {
1658               .r = { ISL_SNORM, 24, 8 },
1659               .g = { ISL_SNORM, 16, 8 },
1660               .b = { ISL_UNORM, 0, 8 },
1661               .a = { ISL_VOID, 8, 8 },
1662               .l = {},
1663               .i = {},
1664               .p = {},
1665     },
1666     .colorspace = ISL_COLORSPACE_LINEAR,
1667     .txc = ISL_TXC_NONE,
1668   },
1669 
1670   [ISL_FORMAT_B8G8R8X8_UNORM] = {
1671     .format = ISL_FORMAT_B8G8R8X8_UNORM,
1672     .name = "ISL_FORMAT_B8G8R8X8_UNORM",
1673     .bpb = 32,
1674     .bw = 1,
1675     .bh = 1,
1676     .bd = 1,
1677     .channels = {
1678               .r = { ISL_UNORM, 16, 8 },
1679               .g = { ISL_UNORM, 8, 8 },
1680               .b = { ISL_UNORM, 0, 8 },
1681               .a = { ISL_VOID, 24, 8 },
1682               .l = {},
1683               .i = {},
1684               .p = {},
1685     },
1686     .colorspace = ISL_COLORSPACE_LINEAR,
1687     .txc = ISL_TXC_NONE,
1688   },
1689 
1690   [ISL_FORMAT_B8G8R8X8_UNORM_SRGB] = {
1691     .format = ISL_FORMAT_B8G8R8X8_UNORM_SRGB,
1692     .name = "ISL_FORMAT_B8G8R8X8_UNORM_SRGB",
1693     .bpb = 32,
1694     .bw = 1,
1695     .bh = 1,
1696     .bd = 1,
1697     .channels = {
1698               .r = { ISL_UNORM, 16, 8 },
1699               .g = { ISL_UNORM, 8, 8 },
1700               .b = { ISL_UNORM, 0, 8 },
1701               .a = { ISL_VOID, 24, 8 },
1702               .l = {},
1703               .i = {},
1704               .p = {},
1705     },
1706     .colorspace = ISL_COLORSPACE_SRGB,
1707     .txc = ISL_TXC_NONE,
1708   },
1709 
1710   [ISL_FORMAT_R8G8B8X8_UNORM] = {
1711     .format = ISL_FORMAT_R8G8B8X8_UNORM,
1712     .name = "ISL_FORMAT_R8G8B8X8_UNORM",
1713     .bpb = 32,
1714     .bw = 1,
1715     .bh = 1,
1716     .bd = 1,
1717     .channels = {
1718               .r = { ISL_UNORM, 0, 8 },
1719               .g = { ISL_UNORM, 8, 8 },
1720               .b = { ISL_UNORM, 16, 8 },
1721               .a = { ISL_VOID, 24, 8 },
1722               .l = {},
1723               .i = {},
1724               .p = {},
1725     },
1726     .colorspace = ISL_COLORSPACE_LINEAR,
1727     .txc = ISL_TXC_NONE,
1728   },
1729 
1730   [ISL_FORMAT_R8G8B8X8_UNORM_SRGB] = {
1731     .format = ISL_FORMAT_R8G8B8X8_UNORM_SRGB,
1732     .name = "ISL_FORMAT_R8G8B8X8_UNORM_SRGB",
1733     .bpb = 32,
1734     .bw = 1,
1735     .bh = 1,
1736     .bd = 1,
1737     .channels = {
1738               .r = { ISL_UNORM, 0, 8 },
1739               .g = { ISL_UNORM, 8, 8 },
1740               .b = { ISL_UNORM, 16, 8 },
1741               .a = { ISL_VOID, 24, 8 },
1742               .l = {},
1743               .i = {},
1744               .p = {},
1745     },
1746     .colorspace = ISL_COLORSPACE_SRGB,
1747     .txc = ISL_TXC_NONE,
1748   },
1749 
1750   [ISL_FORMAT_R9G9B9E5_SHAREDEXP] = {
1751     .format = ISL_FORMAT_R9G9B9E5_SHAREDEXP,
1752     .name = "ISL_FORMAT_R9G9B9E5_SHAREDEXP",
1753     .bpb = 32,
1754     .bw = 1,
1755     .bh = 1,
1756     .bd = 1,
1757     .channels = {
1758               .r = { ISL_UFLOAT, 0, 9 },
1759               .g = { ISL_UFLOAT, 9, 9 },
1760               .b = { ISL_UFLOAT, 18, 9 },
1761               .a = {},
1762               .l = {},
1763               .i = {},
1764               .p = {},
1765     },
1766     .colorspace = ISL_COLORSPACE_LINEAR,
1767     .txc = ISL_TXC_NONE,
1768   },
1769 
1770   [ISL_FORMAT_B10G10R10X2_UNORM] = {
1771     .format = ISL_FORMAT_B10G10R10X2_UNORM,
1772     .name = "ISL_FORMAT_B10G10R10X2_UNORM",
1773     .bpb = 32,
1774     .bw = 1,
1775     .bh = 1,
1776     .bd = 1,
1777     .channels = {
1778               .r = { ISL_UNORM, 20, 10 },
1779               .g = { ISL_UNORM, 10, 10 },
1780               .b = { ISL_UNORM, 0, 10 },
1781               .a = { ISL_VOID, 30, 2 },
1782               .l = {},
1783               .i = {},
1784               .p = {},
1785     },
1786     .colorspace = ISL_COLORSPACE_LINEAR,
1787     .txc = ISL_TXC_NONE,
1788   },
1789 
1790   [ISL_FORMAT_L16A16_FLOAT] = {
1791     .format = ISL_FORMAT_L16A16_FLOAT,
1792     .name = "ISL_FORMAT_L16A16_FLOAT",
1793     .bpb = 32,
1794     .bw = 1,
1795     .bh = 1,
1796     .bd = 1,
1797     .channels = {
1798               .r = {},
1799               .g = {},
1800               .b = {},
1801               .a = { ISL_SFLOAT, 16, 16 },
1802               .l = { ISL_SFLOAT, 0, 16 },
1803               .i = {},
1804               .p = {},
1805     },
1806     .colorspace = ISL_COLORSPACE_LINEAR,
1807     .txc = ISL_TXC_NONE,
1808   },
1809 
1810   [ISL_FORMAT_R32_UNORM] = {
1811     .format = ISL_FORMAT_R32_UNORM,
1812     .name = "ISL_FORMAT_R32_UNORM",
1813     .bpb = 32,
1814     .bw = 1,
1815     .bh = 1,
1816     .bd = 1,
1817     .channels = {
1818               .r = { ISL_UNORM, 0, 32 },
1819               .g = {},
1820               .b = {},
1821               .a = {},
1822               .l = {},
1823               .i = {},
1824               .p = {},
1825     },
1826     .colorspace = ISL_COLORSPACE_LINEAR,
1827     .txc = ISL_TXC_NONE,
1828   },
1829 
1830   [ISL_FORMAT_R32_SNORM] = {
1831     .format = ISL_FORMAT_R32_SNORM,
1832     .name = "ISL_FORMAT_R32_SNORM",
1833     .bpb = 32,
1834     .bw = 1,
1835     .bh = 1,
1836     .bd = 1,
1837     .channels = {
1838               .r = { ISL_SNORM, 0, 32 },
1839               .g = {},
1840               .b = {},
1841               .a = {},
1842               .l = {},
1843               .i = {},
1844               .p = {},
1845     },
1846     .colorspace = ISL_COLORSPACE_LINEAR,
1847     .txc = ISL_TXC_NONE,
1848   },
1849 
1850   [ISL_FORMAT_R10G10B10X2_USCALED] = {
1851     .format = ISL_FORMAT_R10G10B10X2_USCALED,
1852     .name = "ISL_FORMAT_R10G10B10X2_USCALED",
1853     .bpb = 32,
1854     .bw = 1,
1855     .bh = 1,
1856     .bd = 1,
1857     .channels = {
1858               .r = { ISL_USCALED, 0, 10 },
1859               .g = { ISL_USCALED, 10, 10 },
1860               .b = { ISL_USCALED, 20, 10 },
1861               .a = { ISL_VOID, 30, 2 },
1862               .l = {},
1863               .i = {},
1864               .p = {},
1865     },
1866     .colorspace = ISL_COLORSPACE_LINEAR,
1867     .txc = ISL_TXC_NONE,
1868   },
1869 
1870   [ISL_FORMAT_R8G8B8A8_SSCALED] = {
1871     .format = ISL_FORMAT_R8G8B8A8_SSCALED,
1872     .name = "ISL_FORMAT_R8G8B8A8_SSCALED",
1873     .bpb = 32,
1874     .bw = 1,
1875     .bh = 1,
1876     .bd = 1,
1877     .channels = {
1878               .r = { ISL_SSCALED, 0, 8 },
1879               .g = { ISL_SSCALED, 8, 8 },
1880               .b = { ISL_SSCALED, 16, 8 },
1881               .a = { ISL_SSCALED, 24, 8 },
1882               .l = {},
1883               .i = {},
1884               .p = {},
1885     },
1886     .colorspace = ISL_COLORSPACE_LINEAR,
1887     .txc = ISL_TXC_NONE,
1888   },
1889 
1890   [ISL_FORMAT_R8G8B8A8_USCALED] = {
1891     .format = ISL_FORMAT_R8G8B8A8_USCALED,
1892     .name = "ISL_FORMAT_R8G8B8A8_USCALED",
1893     .bpb = 32,
1894     .bw = 1,
1895     .bh = 1,
1896     .bd = 1,
1897     .channels = {
1898               .r = { ISL_USCALED, 0, 8 },
1899               .g = { ISL_USCALED, 8, 8 },
1900               .b = { ISL_USCALED, 16, 8 },
1901               .a = { ISL_USCALED, 24, 8 },
1902               .l = {},
1903               .i = {},
1904               .p = {},
1905     },
1906     .colorspace = ISL_COLORSPACE_LINEAR,
1907     .txc = ISL_TXC_NONE,
1908   },
1909 
1910   [ISL_FORMAT_R16G16_SSCALED] = {
1911     .format = ISL_FORMAT_R16G16_SSCALED,
1912     .name = "ISL_FORMAT_R16G16_SSCALED",
1913     .bpb = 32,
1914     .bw = 1,
1915     .bh = 1,
1916     .bd = 1,
1917     .channels = {
1918               .r = { ISL_SSCALED, 0, 16 },
1919               .g = { ISL_SSCALED, 16, 6 },
1920               .b = {},
1921               .a = {},
1922               .l = {},
1923               .i = {},
1924               .p = {},
1925     },
1926     .colorspace = ISL_COLORSPACE_LINEAR,
1927     .txc = ISL_TXC_NONE,
1928   },
1929 
1930   [ISL_FORMAT_R16G16_USCALED] = {
1931     .format = ISL_FORMAT_R16G16_USCALED,
1932     .name = "ISL_FORMAT_R16G16_USCALED",
1933     .bpb = 32,
1934     .bw = 1,
1935     .bh = 1,
1936     .bd = 1,
1937     .channels = {
1938               .r = { ISL_USCALED, 0, 16 },
1939               .g = { ISL_USCALED, 16, 16 },
1940               .b = {},
1941               .a = {},
1942               .l = {},
1943               .i = {},
1944               .p = {},
1945     },
1946     .colorspace = ISL_COLORSPACE_LINEAR,
1947     .txc = ISL_TXC_NONE,
1948   },
1949 
1950   [ISL_FORMAT_R32_SSCALED] = {
1951     .format = ISL_FORMAT_R32_SSCALED,
1952     .name = "ISL_FORMAT_R32_SSCALED",
1953     .bpb = 32,
1954     .bw = 1,
1955     .bh = 1,
1956     .bd = 1,
1957     .channels = {
1958               .r = { ISL_SSCALED, 0, 32 },
1959               .g = {},
1960               .b = {},
1961               .a = {},
1962               .l = {},
1963               .i = {},
1964               .p = {},
1965     },
1966     .colorspace = ISL_COLORSPACE_LINEAR,
1967     .txc = ISL_TXC_NONE,
1968   },
1969 
1970   [ISL_FORMAT_R32_USCALED] = {
1971     .format = ISL_FORMAT_R32_USCALED,
1972     .name = "ISL_FORMAT_R32_USCALED",
1973     .bpb = 32,
1974     .bw = 1,
1975     .bh = 1,
1976     .bd = 1,
1977     .channels = {
1978               .r = { ISL_USCALED, 0, 32 },
1979               .g = {},
1980               .b = {},
1981               .a = {},
1982               .l = {},
1983               .i = {},
1984               .p = {},
1985     },
1986     .colorspace = ISL_COLORSPACE_LINEAR,
1987     .txc = ISL_TXC_NONE,
1988   },
1989 
1990   [ISL_FORMAT_B5G6R5_UNORM] = {
1991     .format = ISL_FORMAT_B5G6R5_UNORM,
1992     .name = "ISL_FORMAT_B5G6R5_UNORM",
1993     .bpb = 16,
1994     .bw = 1,
1995     .bh = 1,
1996     .bd = 1,
1997     .channels = {
1998               .r = { ISL_UNORM, 11, 5 },
1999               .g = { ISL_UNORM, 5, 6 },
2000               .b = { ISL_UNORM, 0, 5 },
2001               .a = {},
2002               .l = {},
2003               .i = {},
2004               .p = {},
2005     },
2006     .colorspace = ISL_COLORSPACE_LINEAR,
2007     .txc = ISL_TXC_NONE,
2008   },
2009 
2010   [ISL_FORMAT_B5G6R5_UNORM_SRGB] = {
2011     .format = ISL_FORMAT_B5G6R5_UNORM_SRGB,
2012     .name = "ISL_FORMAT_B5G6R5_UNORM_SRGB",
2013     .bpb = 16,
2014     .bw = 1,
2015     .bh = 1,
2016     .bd = 1,
2017     .channels = {
2018               .r = { ISL_UNORM, 11, 5 },
2019               .g = { ISL_UNORM, 5, 6 },
2020               .b = { ISL_UNORM, 0, 5 },
2021               .a = {},
2022               .l = {},
2023               .i = {},
2024               .p = {},
2025     },
2026     .colorspace = ISL_COLORSPACE_SRGB,
2027     .txc = ISL_TXC_NONE,
2028   },
2029 
2030   [ISL_FORMAT_B5G5R5A1_UNORM] = {
2031     .format = ISL_FORMAT_B5G5R5A1_UNORM,
2032     .name = "ISL_FORMAT_B5G5R5A1_UNORM",
2033     .bpb = 16,
2034     .bw = 1,
2035     .bh = 1,
2036     .bd = 1,
2037     .channels = {
2038               .r = { ISL_UNORM, 10, 5 },
2039               .g = { ISL_UNORM, 5, 5 },
2040               .b = { ISL_UNORM, 0, 5 },
2041               .a = { ISL_UNORM, 15, 1 },
2042               .l = {},
2043               .i = {},
2044               .p = {},
2045     },
2046     .colorspace = ISL_COLORSPACE_LINEAR,
2047     .txc = ISL_TXC_NONE,
2048   },
2049 
2050   [ISL_FORMAT_B5G5R5A1_UNORM_SRGB] = {
2051     .format = ISL_FORMAT_B5G5R5A1_UNORM_SRGB,
2052     .name = "ISL_FORMAT_B5G5R5A1_UNORM_SRGB",
2053     .bpb = 16,
2054     .bw = 1,
2055     .bh = 1,
2056     .bd = 1,
2057     .channels = {
2058               .r = { ISL_UNORM, 10, 5 },
2059               .g = { ISL_UNORM, 5, 5 },
2060               .b = { ISL_UNORM, 0, 5 },
2061               .a = { ISL_UNORM, 15, 1 },
2062               .l = {},
2063               .i = {},
2064               .p = {},
2065     },
2066     .colorspace = ISL_COLORSPACE_SRGB,
2067     .txc = ISL_TXC_NONE,
2068   },
2069 
2070   [ISL_FORMAT_B4G4R4A4_UNORM] = {
2071     .format = ISL_FORMAT_B4G4R4A4_UNORM,
2072     .name = "ISL_FORMAT_B4G4R4A4_UNORM",
2073     .bpb = 16,
2074     .bw = 1,
2075     .bh = 1,
2076     .bd = 1,
2077     .channels = {
2078               .r = { ISL_UNORM, 8, 4 },
2079               .g = { ISL_UNORM, 4, 4 },
2080               .b = { ISL_UNORM, 0, 4 },
2081               .a = { ISL_UNORM, 12, 4 },
2082               .l = {},
2083               .i = {},
2084               .p = {},
2085     },
2086     .colorspace = ISL_COLORSPACE_LINEAR,
2087     .txc = ISL_TXC_NONE,
2088   },
2089 
2090   [ISL_FORMAT_B4G4R4A4_UNORM_SRGB] = {
2091     .format = ISL_FORMAT_B4G4R4A4_UNORM_SRGB,
2092     .name = "ISL_FORMAT_B4G4R4A4_UNORM_SRGB",
2093     .bpb = 16,
2094     .bw = 1,
2095     .bh = 1,
2096     .bd = 1,
2097     .channels = {
2098               .r = { ISL_UNORM, 8, 4 },
2099               .g = { ISL_UNORM, 4, 4 },
2100               .b = { ISL_UNORM, 0, 4 },
2101               .a = { ISL_UNORM, 12, 4 },
2102               .l = {},
2103               .i = {},
2104               .p = {},
2105     },
2106     .colorspace = ISL_COLORSPACE_SRGB,
2107     .txc = ISL_TXC_NONE,
2108   },
2109 
2110   [ISL_FORMAT_R8G8_UNORM] = {
2111     .format = ISL_FORMAT_R8G8_UNORM,
2112     .name = "ISL_FORMAT_R8G8_UNORM",
2113     .bpb = 16,
2114     .bw = 1,
2115     .bh = 1,
2116     .bd = 1,
2117     .channels = {
2118               .r = { ISL_UNORM, 0, 8 },
2119               .g = { ISL_UNORM, 8, 8 },
2120               .b = {},
2121               .a = {},
2122               .l = {},
2123               .i = {},
2124               .p = {},
2125     },
2126     .colorspace = ISL_COLORSPACE_LINEAR,
2127     .txc = ISL_TXC_NONE,
2128   },
2129 
2130   [ISL_FORMAT_R8G8_SNORM] = {
2131     .format = ISL_FORMAT_R8G8_SNORM,
2132     .name = "ISL_FORMAT_R8G8_SNORM",
2133     .bpb = 16,
2134     .bw = 1,
2135     .bh = 1,
2136     .bd = 1,
2137     .channels = {
2138               .r = { ISL_SNORM, 0, 8 },
2139               .g = { ISL_SNORM, 8, 8 },
2140               .b = {},
2141               .a = {},
2142               .l = {},
2143               .i = {},
2144               .p = {},
2145     },
2146     .colorspace = ISL_COLORSPACE_LINEAR,
2147     .txc = ISL_TXC_NONE,
2148   },
2149 
2150   [ISL_FORMAT_R8G8_SINT] = {
2151     .format = ISL_FORMAT_R8G8_SINT,
2152     .name = "ISL_FORMAT_R8G8_SINT",
2153     .bpb = 16,
2154     .bw = 1,
2155     .bh = 1,
2156     .bd = 1,
2157     .channels = {
2158               .r = { ISL_SINT, 0, 8 },
2159               .g = { ISL_SINT, 8, 8 },
2160               .b = {},
2161               .a = {},
2162               .l = {},
2163               .i = {},
2164               .p = {},
2165     },
2166     .colorspace = ISL_COLORSPACE_LINEAR,
2167     .txc = ISL_TXC_NONE,
2168   },
2169 
2170   [ISL_FORMAT_R8G8_UINT] = {
2171     .format = ISL_FORMAT_R8G8_UINT,
2172     .name = "ISL_FORMAT_R8G8_UINT",
2173     .bpb = 16,
2174     .bw = 1,
2175     .bh = 1,
2176     .bd = 1,
2177     .channels = {
2178               .r = { ISL_UINT, 0, 8 },
2179               .g = { ISL_UINT, 8, 8 },
2180               .b = {},
2181               .a = {},
2182               .l = {},
2183               .i = {},
2184               .p = {},
2185     },
2186     .colorspace = ISL_COLORSPACE_LINEAR,
2187     .txc = ISL_TXC_NONE,
2188   },
2189 
2190   [ISL_FORMAT_R16_UNORM] = {
2191     .format = ISL_FORMAT_R16_UNORM,
2192     .name = "ISL_FORMAT_R16_UNORM",
2193     .bpb = 16,
2194     .bw = 1,
2195     .bh = 1,
2196     .bd = 1,
2197     .channels = {
2198               .r = { ISL_UNORM, 0, 16 },
2199               .g = {},
2200               .b = {},
2201               .a = {},
2202               .l = {},
2203               .i = {},
2204               .p = {},
2205     },
2206     .colorspace = ISL_COLORSPACE_LINEAR,
2207     .txc = ISL_TXC_NONE,
2208   },
2209 
2210   [ISL_FORMAT_R16_SNORM] = {
2211     .format = ISL_FORMAT_R16_SNORM,
2212     .name = "ISL_FORMAT_R16_SNORM",
2213     .bpb = 16,
2214     .bw = 1,
2215     .bh = 1,
2216     .bd = 1,
2217     .channels = {
2218               .r = { ISL_SNORM, 0, 16 },
2219               .g = {},
2220               .b = {},
2221               .a = {},
2222               .l = {},
2223               .i = {},
2224               .p = {},
2225     },
2226     .colorspace = ISL_COLORSPACE_LINEAR,
2227     .txc = ISL_TXC_NONE,
2228   },
2229 
2230   [ISL_FORMAT_R16_SINT] = {
2231     .format = ISL_FORMAT_R16_SINT,
2232     .name = "ISL_FORMAT_R16_SINT",
2233     .bpb = 16,
2234     .bw = 1,
2235     .bh = 1,
2236     .bd = 1,
2237     .channels = {
2238               .r = { ISL_SINT, 0, 16 },
2239               .g = {},
2240               .b = {},
2241               .a = {},
2242               .l = {},
2243               .i = {},
2244               .p = {},
2245     },
2246     .colorspace = ISL_COLORSPACE_LINEAR,
2247     .txc = ISL_TXC_NONE,
2248   },
2249 
2250   [ISL_FORMAT_R16_UINT] = {
2251     .format = ISL_FORMAT_R16_UINT,
2252     .name = "ISL_FORMAT_R16_UINT",
2253     .bpb = 16,
2254     .bw = 1,
2255     .bh = 1,
2256     .bd = 1,
2257     .channels = {
2258               .r = { ISL_UINT, 0, 16 },
2259               .g = {},
2260               .b = {},
2261               .a = {},
2262               .l = {},
2263               .i = {},
2264               .p = {},
2265     },
2266     .colorspace = ISL_COLORSPACE_LINEAR,
2267     .txc = ISL_TXC_NONE,
2268   },
2269 
2270   [ISL_FORMAT_R16_FLOAT] = {
2271     .format = ISL_FORMAT_R16_FLOAT,
2272     .name = "ISL_FORMAT_R16_FLOAT",
2273     .bpb = 16,
2274     .bw = 1,
2275     .bh = 1,
2276     .bd = 1,
2277     .channels = {
2278               .r = { ISL_SFLOAT, 0, 16 },
2279               .g = {},
2280               .b = {},
2281               .a = {},
2282               .l = {},
2283               .i = {},
2284               .p = {},
2285     },
2286     .colorspace = ISL_COLORSPACE_LINEAR,
2287     .txc = ISL_TXC_NONE,
2288   },
2289 
2290   [ISL_FORMAT_A8P8_UNORM_PALETTE0] = {
2291     .format = ISL_FORMAT_A8P8_UNORM_PALETTE0,
2292     .name = "ISL_FORMAT_A8P8_UNORM_PALETTE0",
2293     .bpb = 16,
2294     .bw = 1,
2295     .bh = 1,
2296     .bd = 1,
2297     .channels = {
2298               .r = {},
2299               .g = {},
2300               .b = {},
2301               .a = { ISL_UNORM, 0, 8 },
2302               .l = {},
2303               .i = {},
2304               .p = { ISL_UNORM, 8, 8 },
2305     },
2306     .colorspace = ISL_COLORSPACE_LINEAR,
2307     .txc = ISL_TXC_NONE,
2308   },
2309 
2310   [ISL_FORMAT_A8P8_UNORM_PALETTE1] = {
2311     .format = ISL_FORMAT_A8P8_UNORM_PALETTE1,
2312     .name = "ISL_FORMAT_A8P8_UNORM_PALETTE1",
2313     .bpb = 16,
2314     .bw = 1,
2315     .bh = 1,
2316     .bd = 1,
2317     .channels = {
2318               .r = {},
2319               .g = {},
2320               .b = {},
2321               .a = { ISL_UNORM, 0, 8 },
2322               .l = {},
2323               .i = {},
2324               .p = { ISL_UNORM, 8, 8 },
2325     },
2326     .colorspace = ISL_COLORSPACE_LINEAR,
2327     .txc = ISL_TXC_NONE,
2328   },
2329 
2330   [ISL_FORMAT_I16_UNORM] = {
2331     .format = ISL_FORMAT_I16_UNORM,
2332     .name = "ISL_FORMAT_I16_UNORM",
2333     .bpb = 16,
2334     .bw = 1,
2335     .bh = 1,
2336     .bd = 1,
2337     .channels = {
2338               .r = {},
2339               .g = {},
2340               .b = {},
2341               .a = {},
2342               .l = {},
2343               .i = { ISL_UNORM, 0, 16 },
2344               .p = {},
2345     },
2346     .colorspace = ISL_COLORSPACE_LINEAR,
2347     .txc = ISL_TXC_NONE,
2348   },
2349 
2350   [ISL_FORMAT_L16_UNORM] = {
2351     .format = ISL_FORMAT_L16_UNORM,
2352     .name = "ISL_FORMAT_L16_UNORM",
2353     .bpb = 16,
2354     .bw = 1,
2355     .bh = 1,
2356     .bd = 1,
2357     .channels = {
2358               .r = {},
2359               .g = {},
2360               .b = {},
2361               .a = {},
2362               .l = { ISL_UNORM, 0, 16 },
2363               .i = {},
2364               .p = {},
2365     },
2366     .colorspace = ISL_COLORSPACE_LINEAR,
2367     .txc = ISL_TXC_NONE,
2368   },
2369 
2370   [ISL_FORMAT_A16_UNORM] = {
2371     .format = ISL_FORMAT_A16_UNORM,
2372     .name = "ISL_FORMAT_A16_UNORM",
2373     .bpb = 16,
2374     .bw = 1,
2375     .bh = 1,
2376     .bd = 1,
2377     .channels = {
2378               .r = {},
2379               .g = {},
2380               .b = {},
2381               .a = { ISL_UNORM, 0, 16 },
2382               .l = {},
2383               .i = {},
2384               .p = {},
2385     },
2386     .colorspace = ISL_COLORSPACE_LINEAR,
2387     .txc = ISL_TXC_NONE,
2388   },
2389 
2390   [ISL_FORMAT_L8A8_UNORM] = {
2391     .format = ISL_FORMAT_L8A8_UNORM,
2392     .name = "ISL_FORMAT_L8A8_UNORM",
2393     .bpb = 16,
2394     .bw = 1,
2395     .bh = 1,
2396     .bd = 1,
2397     .channels = {
2398               .r = {},
2399               .g = {},
2400               .b = {},
2401               .a = { ISL_UNORM, 8, 8 },
2402               .l = { ISL_UNORM, 0, 8 },
2403               .i = {},
2404               .p = {},
2405     },
2406     .colorspace = ISL_COLORSPACE_LINEAR,
2407     .txc = ISL_TXC_NONE,
2408   },
2409 
2410   [ISL_FORMAT_I16_FLOAT] = {
2411     .format = ISL_FORMAT_I16_FLOAT,
2412     .name = "ISL_FORMAT_I16_FLOAT",
2413     .bpb = 16,
2414     .bw = 1,
2415     .bh = 1,
2416     .bd = 1,
2417     .channels = {
2418               .r = {},
2419               .g = {},
2420               .b = {},
2421               .a = {},
2422               .l = {},
2423               .i = { ISL_SFLOAT, 0, 16 },
2424               .p = {},
2425     },
2426     .colorspace = ISL_COLORSPACE_LINEAR,
2427     .txc = ISL_TXC_NONE,
2428   },
2429 
2430   [ISL_FORMAT_L16_FLOAT] = {
2431     .format = ISL_FORMAT_L16_FLOAT,
2432     .name = "ISL_FORMAT_L16_FLOAT",
2433     .bpb = 16,
2434     .bw = 1,
2435     .bh = 1,
2436     .bd = 1,
2437     .channels = {
2438               .r = {},
2439               .g = {},
2440               .b = {},
2441               .a = {},
2442               .l = { ISL_SFLOAT, 0, 16 },
2443               .i = {},
2444               .p = {},
2445     },
2446     .colorspace = ISL_COLORSPACE_LINEAR,
2447     .txc = ISL_TXC_NONE,
2448   },
2449 
2450   [ISL_FORMAT_A16_FLOAT] = {
2451     .format = ISL_FORMAT_A16_FLOAT,
2452     .name = "ISL_FORMAT_A16_FLOAT",
2453     .bpb = 16,
2454     .bw = 1,
2455     .bh = 1,
2456     .bd = 1,
2457     .channels = {
2458               .r = {},
2459               .g = {},
2460               .b = {},
2461               .a = { ISL_SFLOAT, 0, 16 },
2462               .l = {},
2463               .i = {},
2464               .p = {},
2465     },
2466     .colorspace = ISL_COLORSPACE_LINEAR,
2467     .txc = ISL_TXC_NONE,
2468   },
2469 
2470   [ISL_FORMAT_L8A8_UNORM_SRGB] = {
2471     .format = ISL_FORMAT_L8A8_UNORM_SRGB,
2472     .name = "ISL_FORMAT_L8A8_UNORM_SRGB",
2473     .bpb = 16,
2474     .bw = 1,
2475     .bh = 1,
2476     .bd = 1,
2477     .channels = {
2478               .r = {},
2479               .g = {},
2480               .b = {},
2481               .a = { ISL_UNORM, 8, 8 },
2482               .l = { ISL_UNORM, 0, 8 },
2483               .i = {},
2484               .p = {},
2485     },
2486     .colorspace = ISL_COLORSPACE_SRGB,
2487     .txc = ISL_TXC_NONE,
2488   },
2489 
2490   [ISL_FORMAT_R5G5_SNORM_B6_UNORM] = {
2491     .format = ISL_FORMAT_R5G5_SNORM_B6_UNORM,
2492     .name = "ISL_FORMAT_R5G5_SNORM_B6_UNORM",
2493     .bpb = 16,
2494     .bw = 1,
2495     .bh = 1,
2496     .bd = 1,
2497     .channels = {
2498               .r = { ISL_SNORM, 0, 5 },
2499               .g = { ISL_SNORM, 5, 5 },
2500               .b = { ISL_UNORM, 10, 6 },
2501               .a = {},
2502               .l = {},
2503               .i = {},
2504               .p = {},
2505     },
2506     .colorspace = ISL_COLORSPACE_LINEAR,
2507     .txc = ISL_TXC_NONE,
2508   },
2509 
2510   [ISL_FORMAT_B5G5R5X1_UNORM] = {
2511     .format = ISL_FORMAT_B5G5R5X1_UNORM,
2512     .name = "ISL_FORMAT_B5G5R5X1_UNORM",
2513     .bpb = 16,
2514     .bw = 1,
2515     .bh = 1,
2516     .bd = 1,
2517     .channels = {
2518               .r = { ISL_UNORM, 10, 5 },
2519               .g = { ISL_UNORM, 5, 5 },
2520               .b = { ISL_UNORM, 0, 5 },
2521               .a = { ISL_VOID, 15, 1 },
2522               .l = {},
2523               .i = {},
2524               .p = {},
2525     },
2526     .colorspace = ISL_COLORSPACE_LINEAR,
2527     .txc = ISL_TXC_NONE,
2528   },
2529 
2530   [ISL_FORMAT_B5G5R5X1_UNORM_SRGB] = {
2531     .format = ISL_FORMAT_B5G5R5X1_UNORM_SRGB,
2532     .name = "ISL_FORMAT_B5G5R5X1_UNORM_SRGB",
2533     .bpb = 16,
2534     .bw = 1,
2535     .bh = 1,
2536     .bd = 1,
2537     .channels = {
2538               .r = { ISL_UNORM, 10, 5 },
2539               .g = { ISL_UNORM, 5, 5 },
2540               .b = { ISL_UNORM, 0, 5 },
2541               .a = { ISL_VOID, 15, 1 },
2542               .l = {},
2543               .i = {},
2544               .p = {},
2545     },
2546     .colorspace = ISL_COLORSPACE_SRGB,
2547     .txc = ISL_TXC_NONE,
2548   },
2549 
2550   [ISL_FORMAT_R8G8_SSCALED] = {
2551     .format = ISL_FORMAT_R8G8_SSCALED,
2552     .name = "ISL_FORMAT_R8G8_SSCALED",
2553     .bpb = 16,
2554     .bw = 1,
2555     .bh = 1,
2556     .bd = 1,
2557     .channels = {
2558               .r = { ISL_SSCALED, 0, 8 },
2559               .g = { ISL_SSCALED, 8, 8 },
2560               .b = {},
2561               .a = {},
2562               .l = {},
2563               .i = {},
2564               .p = {},
2565     },
2566     .colorspace = ISL_COLORSPACE_LINEAR,
2567     .txc = ISL_TXC_NONE,
2568   },
2569 
2570   [ISL_FORMAT_R8G8_USCALED] = {
2571     .format = ISL_FORMAT_R8G8_USCALED,
2572     .name = "ISL_FORMAT_R8G8_USCALED",
2573     .bpb = 16,
2574     .bw = 1,
2575     .bh = 1,
2576     .bd = 1,
2577     .channels = {
2578               .r = { ISL_USCALED, 0, 8 },
2579               .g = { ISL_USCALED, 8, 8 },
2580               .b = {},
2581               .a = {},
2582               .l = {},
2583               .i = {},
2584               .p = {},
2585     },
2586     .colorspace = ISL_COLORSPACE_LINEAR,
2587     .txc = ISL_TXC_NONE,
2588   },
2589 
2590   [ISL_FORMAT_R16_SSCALED] = {
2591     .format = ISL_FORMAT_R16_SSCALED,
2592     .name = "ISL_FORMAT_R16_SSCALED",
2593     .bpb = 16,
2594     .bw = 1,
2595     .bh = 1,
2596     .bd = 1,
2597     .channels = {
2598               .r = { ISL_SSCALED, 0, 16 },
2599               .g = {},
2600               .b = {},
2601               .a = {},
2602               .l = {},
2603               .i = {},
2604               .p = {},
2605     },
2606     .colorspace = ISL_COLORSPACE_LINEAR,
2607     .txc = ISL_TXC_NONE,
2608   },
2609 
2610   [ISL_FORMAT_R16_USCALED] = {
2611     .format = ISL_FORMAT_R16_USCALED,
2612     .name = "ISL_FORMAT_R16_USCALED",
2613     .bpb = 16,
2614     .bw = 1,
2615     .bh = 1,
2616     .bd = 1,
2617     .channels = {
2618               .r = { ISL_USCALED, 0, 16 },
2619               .g = {},
2620               .b = {},
2621               .a = {},
2622               .l = {},
2623               .i = {},
2624               .p = {},
2625     },
2626     .colorspace = ISL_COLORSPACE_LINEAR,
2627     .txc = ISL_TXC_NONE,
2628   },
2629 
2630   [ISL_FORMAT_P8A8_UNORM_PALETTE0] = {
2631     .format = ISL_FORMAT_P8A8_UNORM_PALETTE0,
2632     .name = "ISL_FORMAT_P8A8_UNORM_PALETTE0",
2633     .bpb = 16,
2634     .bw = 1,
2635     .bh = 1,
2636     .bd = 1,
2637     .channels = {
2638               .r = {},
2639               .g = {},
2640               .b = {},
2641               .a = { ISL_UNORM, 8, 8 },
2642               .l = {},
2643               .i = {},
2644               .p = { ISL_UNORM, 0, 8 },
2645     },
2646     .colorspace = ISL_COLORSPACE_LINEAR,
2647     .txc = ISL_TXC_NONE,
2648   },
2649 
2650   [ISL_FORMAT_P8A8_UNORM_PALETTE1] = {
2651     .format = ISL_FORMAT_P8A8_UNORM_PALETTE1,
2652     .name = "ISL_FORMAT_P8A8_UNORM_PALETTE1",
2653     .bpb = 16,
2654     .bw = 1,
2655     .bh = 1,
2656     .bd = 1,
2657     .channels = {
2658               .r = {},
2659               .g = {},
2660               .b = {},
2661               .a = { ISL_UNORM, 8, 8 },
2662               .l = {},
2663               .i = {},
2664               .p = { ISL_UNORM, 0, 8 },
2665     },
2666     .colorspace = ISL_COLORSPACE_LINEAR,
2667     .txc = ISL_TXC_NONE,
2668   },
2669 
2670   [ISL_FORMAT_A1B5G5R5_UNORM] = {
2671     .format = ISL_FORMAT_A1B5G5R5_UNORM,
2672     .name = "ISL_FORMAT_A1B5G5R5_UNORM",
2673     .bpb = 16,
2674     .bw = 1,
2675     .bh = 1,
2676     .bd = 1,
2677     .channels = {
2678               .r = { ISL_UNORM, 11, 5 },
2679               .g = { ISL_UNORM, 6, 5 },
2680               .b = { ISL_UNORM, 1, 5 },
2681               .a = { ISL_UNORM, 0, 1 },
2682               .l = {},
2683               .i = {},
2684               .p = {},
2685     },
2686     .colorspace = ISL_COLORSPACE_LINEAR,
2687     .txc = ISL_TXC_NONE,
2688   },
2689 
2690   [ISL_FORMAT_A4B4G4R4_UNORM] = {
2691     .format = ISL_FORMAT_A4B4G4R4_UNORM,
2692     .name = "ISL_FORMAT_A4B4G4R4_UNORM",
2693     .bpb = 16,
2694     .bw = 1,
2695     .bh = 1,
2696     .bd = 1,
2697     .channels = {
2698               .r = { ISL_UNORM, 12, 4 },
2699               .g = { ISL_UNORM, 8, 4 },
2700               .b = { ISL_UNORM, 4, 4 },
2701               .a = { ISL_UNORM, 0, 4 },
2702               .l = {},
2703               .i = {},
2704               .p = {},
2705     },
2706     .colorspace = ISL_COLORSPACE_LINEAR,
2707     .txc = ISL_TXC_NONE,
2708   },
2709 
2710   [ISL_FORMAT_L8A8_UINT] = {
2711     .format = ISL_FORMAT_L8A8_UINT,
2712     .name = "ISL_FORMAT_L8A8_UINT",
2713     .bpb = 16,
2714     .bw = 1,
2715     .bh = 1,
2716     .bd = 1,
2717     .channels = {
2718               .r = {},
2719               .g = {},
2720               .b = {},
2721               .a = { ISL_UINT, 8, 8 },
2722               .l = { ISL_UINT, 0, 8 },
2723               .i = {},
2724               .p = {},
2725     },
2726     .colorspace = ISL_COLORSPACE_LINEAR,
2727     .txc = ISL_TXC_NONE,
2728   },
2729 
2730   [ISL_FORMAT_L8A8_SINT] = {
2731     .format = ISL_FORMAT_L8A8_SINT,
2732     .name = "ISL_FORMAT_L8A8_SINT",
2733     .bpb = 16,
2734     .bw = 1,
2735     .bh = 1,
2736     .bd = 1,
2737     .channels = {
2738               .r = {},
2739               .g = {},
2740               .b = {},
2741               .a = { ISL_SINT, 8, 8 },
2742               .l = { ISL_SINT, 0, 8 },
2743               .i = {},
2744               .p = {},
2745     },
2746     .colorspace = ISL_COLORSPACE_LINEAR,
2747     .txc = ISL_TXC_NONE,
2748   },
2749 
2750   [ISL_FORMAT_R8_UNORM] = {
2751     .format = ISL_FORMAT_R8_UNORM,
2752     .name = "ISL_FORMAT_R8_UNORM",
2753     .bpb = 8,
2754     .bw = 1,
2755     .bh = 1,
2756     .bd = 1,
2757     .channels = {
2758               .r = { ISL_UNORM, 0, 8 },
2759               .g = {},
2760               .b = {},
2761               .a = {},
2762               .l = {},
2763               .i = {},
2764               .p = {},
2765     },
2766     .colorspace = ISL_COLORSPACE_LINEAR,
2767     .txc = ISL_TXC_NONE,
2768   },
2769 
2770   [ISL_FORMAT_R8_SNORM] = {
2771     .format = ISL_FORMAT_R8_SNORM,
2772     .name = "ISL_FORMAT_R8_SNORM",
2773     .bpb = 8,
2774     .bw = 1,
2775     .bh = 1,
2776     .bd = 1,
2777     .channels = {
2778               .r = { ISL_SNORM, 0, 8 },
2779               .g = {},
2780               .b = {},
2781               .a = {},
2782               .l = {},
2783               .i = {},
2784               .p = {},
2785     },
2786     .colorspace = ISL_COLORSPACE_LINEAR,
2787     .txc = ISL_TXC_NONE,
2788   },
2789 
2790   [ISL_FORMAT_R8_SINT] = {
2791     .format = ISL_FORMAT_R8_SINT,
2792     .name = "ISL_FORMAT_R8_SINT",
2793     .bpb = 8,
2794     .bw = 1,
2795     .bh = 1,
2796     .bd = 1,
2797     .channels = {
2798               .r = { ISL_SINT, 0, 8 },
2799               .g = {},
2800               .b = {},
2801               .a = {},
2802               .l = {},
2803               .i = {},
2804               .p = {},
2805     },
2806     .colorspace = ISL_COLORSPACE_LINEAR,
2807     .txc = ISL_TXC_NONE,
2808   },
2809 
2810   [ISL_FORMAT_R8_UINT] = {
2811     .format = ISL_FORMAT_R8_UINT,
2812     .name = "ISL_FORMAT_R8_UINT",
2813     .bpb = 8,
2814     .bw = 1,
2815     .bh = 1,
2816     .bd = 1,
2817     .channels = {
2818               .r = { ISL_UINT, 0, 8 },
2819               .g = {},
2820               .b = {},
2821               .a = {},
2822               .l = {},
2823               .i = {},
2824               .p = {},
2825     },
2826     .colorspace = ISL_COLORSPACE_LINEAR,
2827     .txc = ISL_TXC_NONE,
2828   },
2829 
2830   [ISL_FORMAT_A8_UNORM] = {
2831     .format = ISL_FORMAT_A8_UNORM,
2832     .name = "ISL_FORMAT_A8_UNORM",
2833     .bpb = 8,
2834     .bw = 1,
2835     .bh = 1,
2836     .bd = 1,
2837     .channels = {
2838               .r = {},
2839               .g = {},
2840               .b = {},
2841               .a = { ISL_UNORM, 0, 8 },
2842               .l = {},
2843               .i = {},
2844               .p = {},
2845     },
2846     .colorspace = ISL_COLORSPACE_LINEAR,
2847     .txc = ISL_TXC_NONE,
2848   },
2849 
2850   [ISL_FORMAT_I8_UNORM] = {
2851     .format = ISL_FORMAT_I8_UNORM,
2852     .name = "ISL_FORMAT_I8_UNORM",
2853     .bpb = 8,
2854     .bw = 1,
2855     .bh = 1,
2856     .bd = 1,
2857     .channels = {
2858               .r = {},
2859               .g = {},
2860               .b = {},
2861               .a = {},
2862               .l = {},
2863               .i = { ISL_UNORM, 0, 8 },
2864               .p = {},
2865     },
2866     .colorspace = ISL_COLORSPACE_LINEAR,
2867     .txc = ISL_TXC_NONE,
2868   },
2869 
2870   [ISL_FORMAT_L8_UNORM] = {
2871     .format = ISL_FORMAT_L8_UNORM,
2872     .name = "ISL_FORMAT_L8_UNORM",
2873     .bpb = 8,
2874     .bw = 1,
2875     .bh = 1,
2876     .bd = 1,
2877     .channels = {
2878               .r = {},
2879               .g = {},
2880               .b = {},
2881               .a = {},
2882               .l = { ISL_UNORM, 0, 8 },
2883               .i = {},
2884               .p = {},
2885     },
2886     .colorspace = ISL_COLORSPACE_LINEAR,
2887     .txc = ISL_TXC_NONE,
2888   },
2889 
2890   [ISL_FORMAT_P4A4_UNORM_PALETTE0] = {
2891     .format = ISL_FORMAT_P4A4_UNORM_PALETTE0,
2892     .name = "ISL_FORMAT_P4A4_UNORM_PALETTE0",
2893     .bpb = 8,
2894     .bw = 1,
2895     .bh = 1,
2896     .bd = 1,
2897     .channels = {
2898               .r = {},
2899               .g = {},
2900               .b = {},
2901               .a = { ISL_UNORM, 4, 4 },
2902               .l = {},
2903               .i = {},
2904               .p = { ISL_UNORM, 0, 4 },
2905     },
2906     .colorspace = ISL_COLORSPACE_LINEAR,
2907     .txc = ISL_TXC_NONE,
2908   },
2909 
2910   [ISL_FORMAT_A4P4_UNORM_PALETTE0] = {
2911     .format = ISL_FORMAT_A4P4_UNORM_PALETTE0,
2912     .name = "ISL_FORMAT_A4P4_UNORM_PALETTE0",
2913     .bpb = 8,
2914     .bw = 1,
2915     .bh = 1,
2916     .bd = 1,
2917     .channels = {
2918               .r = {},
2919               .g = {},
2920               .b = {},
2921               .a = { ISL_UNORM, 0, 4 },
2922               .l = {},
2923               .i = {},
2924               .p = { ISL_UNORM, 4, 4 },
2925     },
2926     .colorspace = ISL_COLORSPACE_LINEAR,
2927     .txc = ISL_TXC_NONE,
2928   },
2929 
2930   [ISL_FORMAT_R8_SSCALED] = {
2931     .format = ISL_FORMAT_R8_SSCALED,
2932     .name = "ISL_FORMAT_R8_SSCALED",
2933     .bpb = 8,
2934     .bw = 1,
2935     .bh = 1,
2936     .bd = 1,
2937     .channels = {
2938               .r = { ISL_SSCALED, 0, 8 },
2939               .g = {},
2940               .b = {},
2941               .a = {},
2942               .l = {},
2943               .i = {},
2944               .p = {},
2945     },
2946     .colorspace = ISL_COLORSPACE_LINEAR,
2947     .txc = ISL_TXC_NONE,
2948   },
2949 
2950   [ISL_FORMAT_R8_USCALED] = {
2951     .format = ISL_FORMAT_R8_USCALED,
2952     .name = "ISL_FORMAT_R8_USCALED",
2953     .bpb = 8,
2954     .bw = 1,
2955     .bh = 1,
2956     .bd = 1,
2957     .channels = {
2958               .r = { ISL_USCALED, 0, 8 },
2959               .g = {},
2960               .b = {},
2961               .a = {},
2962               .l = {},
2963               .i = {},
2964               .p = {},
2965     },
2966     .colorspace = ISL_COLORSPACE_LINEAR,
2967     .txc = ISL_TXC_NONE,
2968   },
2969 
2970   [ISL_FORMAT_P8_UNORM_PALETTE0] = {
2971     .format = ISL_FORMAT_P8_UNORM_PALETTE0,
2972     .name = "ISL_FORMAT_P8_UNORM_PALETTE0",
2973     .bpb = 8,
2974     .bw = 1,
2975     .bh = 1,
2976     .bd = 1,
2977     .channels = {
2978               .r = {},
2979               .g = {},
2980               .b = {},
2981               .a = {},
2982               .l = {},
2983               .i = {},
2984               .p = { ISL_UNORM, 0, 8 },
2985     },
2986     .colorspace = ISL_COLORSPACE_LINEAR,
2987     .txc = ISL_TXC_NONE,
2988   },
2989 
2990   [ISL_FORMAT_L8_UNORM_SRGB] = {
2991     .format = ISL_FORMAT_L8_UNORM_SRGB,
2992     .name = "ISL_FORMAT_L8_UNORM_SRGB",
2993     .bpb = 8,
2994     .bw = 1,
2995     .bh = 1,
2996     .bd = 1,
2997     .channels = {
2998               .r = {},
2999               .g = {},
3000               .b = {},
3001               .a = {},
3002               .l = { ISL_UNORM, 0, 8 },
3003               .i = {},
3004               .p = {},
3005     },
3006     .colorspace = ISL_COLORSPACE_SRGB,
3007     .txc = ISL_TXC_NONE,
3008   },
3009 
3010   [ISL_FORMAT_P8_UNORM_PALETTE1] = {
3011     .format = ISL_FORMAT_P8_UNORM_PALETTE1,
3012     .name = "ISL_FORMAT_P8_UNORM_PALETTE1",
3013     .bpb = 8,
3014     .bw = 1,
3015     .bh = 1,
3016     .bd = 1,
3017     .channels = {
3018               .r = {},
3019               .g = {},
3020               .b = {},
3021               .a = {},
3022               .l = {},
3023               .i = {},
3024               .p = { ISL_UNORM, 0, 8 },
3025     },
3026     .colorspace = ISL_COLORSPACE_LINEAR,
3027     .txc = ISL_TXC_NONE,
3028   },
3029 
3030   [ISL_FORMAT_P4A4_UNORM_PALETTE1] = {
3031     .format = ISL_FORMAT_P4A4_UNORM_PALETTE1,
3032     .name = "ISL_FORMAT_P4A4_UNORM_PALETTE1",
3033     .bpb = 8,
3034     .bw = 1,
3035     .bh = 1,
3036     .bd = 1,
3037     .channels = {
3038               .r = {},
3039               .g = {},
3040               .b = {},
3041               .a = { ISL_UNORM, 4, 4 },
3042               .l = {},
3043               .i = {},
3044               .p = { ISL_UNORM, 0, 4 },
3045     },
3046     .colorspace = ISL_COLORSPACE_LINEAR,
3047     .txc = ISL_TXC_NONE,
3048   },
3049 
3050   [ISL_FORMAT_A4P4_UNORM_PALETTE1] = {
3051     .format = ISL_FORMAT_A4P4_UNORM_PALETTE1,
3052     .name = "ISL_FORMAT_A4P4_UNORM_PALETTE1",
3053     .bpb = 8,
3054     .bw = 1,
3055     .bh = 1,
3056     .bd = 1,
3057     .channels = {
3058               .r = {},
3059               .g = {},
3060               .b = {},
3061               .a = { ISL_UNORM, 0, 4 },
3062               .l = {},
3063               .i = {},
3064               .p = { ISL_UNORM, 4, 4 },
3065     },
3066     .colorspace = ISL_COLORSPACE_LINEAR,
3067     .txc = ISL_TXC_NONE,
3068   },
3069 
3070   [ISL_FORMAT_Y8_UNORM] = {
3071     .format = ISL_FORMAT_Y8_UNORM,
3072     .name = "ISL_FORMAT_Y8_UNORM",
3073     .bpb = 8,
3074     .bw = 1,
3075     .bh = 1,
3076     .bd = 1,
3077     .channels = {
3078               .r = {},
3079               .g = { ISL_UNORM, -1, 8 },
3080               .b = {},
3081               .a = {},
3082               .l = {},
3083               .i = {},
3084               .p = {},
3085     },
3086     .colorspace = ISL_COLORSPACE_YUV,
3087     .txc = ISL_TXC_NONE,
3088   },
3089 
3090   [ISL_FORMAT_L8_UINT] = {
3091     .format = ISL_FORMAT_L8_UINT,
3092     .name = "ISL_FORMAT_L8_UINT",
3093     .bpb = 8,
3094     .bw = 1,
3095     .bh = 1,
3096     .bd = 1,
3097     .channels = {
3098               .r = {},
3099               .g = {},
3100               .b = {},
3101               .a = {},
3102               .l = { ISL_UINT, 0, 8 },
3103               .i = {},
3104               .p = {},
3105     },
3106     .colorspace = ISL_COLORSPACE_LINEAR,
3107     .txc = ISL_TXC_NONE,
3108   },
3109 
3110   [ISL_FORMAT_L8_SINT] = {
3111     .format = ISL_FORMAT_L8_SINT,
3112     .name = "ISL_FORMAT_L8_SINT",
3113     .bpb = 8,
3114     .bw = 1,
3115     .bh = 1,
3116     .bd = 1,
3117     .channels = {
3118               .r = {},
3119               .g = {},
3120               .b = {},
3121               .a = {},
3122               .l = { ISL_SINT, 0, 8 },
3123               .i = {},
3124               .p = {},
3125     },
3126     .colorspace = ISL_COLORSPACE_LINEAR,
3127     .txc = ISL_TXC_NONE,
3128   },
3129 
3130   [ISL_FORMAT_I8_UINT] = {
3131     .format = ISL_FORMAT_I8_UINT,
3132     .name = "ISL_FORMAT_I8_UINT",
3133     .bpb = 8,
3134     .bw = 1,
3135     .bh = 1,
3136     .bd = 1,
3137     .channels = {
3138               .r = {},
3139               .g = {},
3140               .b = {},
3141               .a = {},
3142               .l = {},
3143               .i = { ISL_UINT, 0, 8 },
3144               .p = {},
3145     },
3146     .colorspace = ISL_COLORSPACE_LINEAR,
3147     .txc = ISL_TXC_NONE,
3148   },
3149 
3150   [ISL_FORMAT_I8_SINT] = {
3151     .format = ISL_FORMAT_I8_SINT,
3152     .name = "ISL_FORMAT_I8_SINT",
3153     .bpb = 8,
3154     .bw = 1,
3155     .bh = 1,
3156     .bd = 1,
3157     .channels = {
3158               .r = {},
3159               .g = {},
3160               .b = {},
3161               .a = {},
3162               .l = {},
3163               .i = { ISL_SINT, 0, 8 },
3164               .p = {},
3165     },
3166     .colorspace = ISL_COLORSPACE_LINEAR,
3167     .txc = ISL_TXC_NONE,
3168   },
3169 
3170   [ISL_FORMAT_DXT1_RGB_SRGB] = {
3171     .format = ISL_FORMAT_DXT1_RGB_SRGB,
3172     .name = "ISL_FORMAT_DXT1_RGB_SRGB",
3173     .bpb = 64,
3174     .bw = 4,
3175     .bh = 4,
3176     .bd = 1,
3177     .channels = {
3178               .r = { ISL_UNORM, -1, 4 },
3179               .g = { ISL_UNORM, -1, 4 },
3180               .b = { ISL_UNORM, -1, 4 },
3181               .a = {},
3182               .l = {},
3183               .i = {},
3184               .p = {},
3185     },
3186     .colorspace = ISL_COLORSPACE_SRGB,
3187     .txc = ISL_TXC_DXT1,
3188   },
3189 
3190   [ISL_FORMAT_R1_UNORM] = {
3191     .format = ISL_FORMAT_R1_UNORM,
3192     .name = "ISL_FORMAT_R1_UNORM",
3193     .bpb = 1,
3194     .bw = 1,
3195     .bh = 1,
3196     .bd = 1,
3197     .channels = {
3198               .r = { ISL_UNORM, 0, 1 },
3199               .g = {},
3200               .b = {},
3201               .a = {},
3202               .l = {},
3203               .i = {},
3204               .p = {},
3205     },
3206     .colorspace = ISL_COLORSPACE_LINEAR,
3207     .txc = ISL_TXC_NONE,
3208   },
3209 
3210   [ISL_FORMAT_YCRCB_NORMAL] = {
3211     .format = ISL_FORMAT_YCRCB_NORMAL,
3212     .name = "ISL_FORMAT_YCRCB_NORMAL",
3213     .bpb = 16,
3214     .bw = 1,
3215     .bh = 1,
3216     .bd = 1,
3217     .channels = {
3218               .r = { ISL_UNORM, -1, 8 },
3219               .g = { ISL_UNORM, -1, 8 },
3220               .b = { ISL_UNORM, -1, 8 },
3221               .a = {},
3222               .l = {},
3223               .i = {},
3224               .p = {},
3225     },
3226     .colorspace = ISL_COLORSPACE_YUV,
3227     .txc = ISL_TXC_NONE,
3228   },
3229 
3230   [ISL_FORMAT_YCRCB_SWAPUVY] = {
3231     .format = ISL_FORMAT_YCRCB_SWAPUVY,
3232     .name = "ISL_FORMAT_YCRCB_SWAPUVY",
3233     .bpb = 16,
3234     .bw = 1,
3235     .bh = 1,
3236     .bd = 1,
3237     .channels = {
3238               .r = { ISL_UNORM, -1, 8 },
3239               .g = { ISL_UNORM, -1, 8 },
3240               .b = { ISL_UNORM, -1, 8 },
3241               .a = {},
3242               .l = {},
3243               .i = {},
3244               .p = {},
3245     },
3246     .colorspace = ISL_COLORSPACE_YUV,
3247     .txc = ISL_TXC_NONE,
3248   },
3249 
3250   [ISL_FORMAT_P2_UNORM_PALETTE0] = {
3251     .format = ISL_FORMAT_P2_UNORM_PALETTE0,
3252     .name = "ISL_FORMAT_P2_UNORM_PALETTE0",
3253     .bpb = 2,
3254     .bw = 1,
3255     .bh = 1,
3256     .bd = 1,
3257     .channels = {
3258               .r = {},
3259               .g = {},
3260               .b = {},
3261               .a = {},
3262               .l = {},
3263               .i = {},
3264               .p = { ISL_UNORM, 0, 2 },
3265     },
3266     .colorspace = ISL_COLORSPACE_LINEAR,
3267     .txc = ISL_TXC_NONE,
3268   },
3269 
3270   [ISL_FORMAT_P2_UNORM_PALETTE1] = {
3271     .format = ISL_FORMAT_P2_UNORM_PALETTE1,
3272     .name = "ISL_FORMAT_P2_UNORM_PALETTE1",
3273     .bpb = 2,
3274     .bw = 1,
3275     .bh = 1,
3276     .bd = 1,
3277     .channels = {
3278               .r = {},
3279               .g = {},
3280               .b = {},
3281               .a = {},
3282               .l = {},
3283               .i = {},
3284               .p = { ISL_UNORM, 0, 2 },
3285     },
3286     .colorspace = ISL_COLORSPACE_LINEAR,
3287     .txc = ISL_TXC_NONE,
3288   },
3289 
3290   [ISL_FORMAT_BC1_UNORM] = {
3291     .format = ISL_FORMAT_BC1_UNORM,
3292     .name = "ISL_FORMAT_BC1_UNORM",
3293     .bpb = 64,
3294     .bw = 4,
3295     .bh = 4,
3296     .bd = 1,
3297     .channels = {
3298               .r = { ISL_UNORM, -1, 4 },
3299               .g = { ISL_UNORM, -1, 4 },
3300               .b = { ISL_UNORM, -1, 4 },
3301               .a = { ISL_UNORM, -1, 4 },
3302               .l = {},
3303               .i = {},
3304               .p = {},
3305     },
3306     .colorspace = ISL_COLORSPACE_LINEAR,
3307     .txc = ISL_TXC_DXT1,
3308   },
3309 
3310   [ISL_FORMAT_BC2_UNORM] = {
3311     .format = ISL_FORMAT_BC2_UNORM,
3312     .name = "ISL_FORMAT_BC2_UNORM",
3313     .bpb = 128,
3314     .bw = 4,
3315     .bh = 4,
3316     .bd = 1,
3317     .channels = {
3318               .r = { ISL_UNORM, -1, 4 },
3319               .g = { ISL_UNORM, -1, 4 },
3320               .b = { ISL_UNORM, -1, 4 },
3321               .a = { ISL_UNORM, -1, 4 },
3322               .l = {},
3323               .i = {},
3324               .p = {},
3325     },
3326     .colorspace = ISL_COLORSPACE_LINEAR,
3327     .txc = ISL_TXC_DXT3,
3328   },
3329 
3330   [ISL_FORMAT_BC3_UNORM] = {
3331     .format = ISL_FORMAT_BC3_UNORM,
3332     .name = "ISL_FORMAT_BC3_UNORM",
3333     .bpb = 128,
3334     .bw = 4,
3335     .bh = 4,
3336     .bd = 1,
3337     .channels = {
3338               .r = { ISL_UNORM, -1, 4 },
3339               .g = { ISL_UNORM, -1, 4 },
3340               .b = { ISL_UNORM, -1, 4 },
3341               .a = { ISL_UNORM, -1, 4 },
3342               .l = {},
3343               .i = {},
3344               .p = {},
3345     },
3346     .colorspace = ISL_COLORSPACE_LINEAR,
3347     .txc = ISL_TXC_DXT5,
3348   },
3349 
3350   [ISL_FORMAT_BC4_UNORM] = {
3351     .format = ISL_FORMAT_BC4_UNORM,
3352     .name = "ISL_FORMAT_BC4_UNORM",
3353     .bpb = 64,
3354     .bw = 4,
3355     .bh = 4,
3356     .bd = 1,
3357     .channels = {
3358               .r = { ISL_UNORM, -1, 8 },
3359               .g = {},
3360               .b = {},
3361               .a = {},
3362               .l = {},
3363               .i = {},
3364               .p = {},
3365     },
3366     .colorspace = ISL_COLORSPACE_LINEAR,
3367     .txc = ISL_TXC_RGTC1,
3368   },
3369 
3370   [ISL_FORMAT_BC5_UNORM] = {
3371     .format = ISL_FORMAT_BC5_UNORM,
3372     .name = "ISL_FORMAT_BC5_UNORM",
3373     .bpb = 128,
3374     .bw = 4,
3375     .bh = 4,
3376     .bd = 1,
3377     .channels = {
3378               .r = { ISL_UNORM, -1, 8 },
3379               .g = { ISL_UNORM, -1, 8 },
3380               .b = {},
3381               .a = {},
3382               .l = {},
3383               .i = {},
3384               .p = {},
3385     },
3386     .colorspace = ISL_COLORSPACE_LINEAR,
3387     .txc = ISL_TXC_RGTC2,
3388   },
3389 
3390   [ISL_FORMAT_BC1_UNORM_SRGB] = {
3391     .format = ISL_FORMAT_BC1_UNORM_SRGB,
3392     .name = "ISL_FORMAT_BC1_UNORM_SRGB",
3393     .bpb = 64,
3394     .bw = 4,
3395     .bh = 4,
3396     .bd = 1,
3397     .channels = {
3398               .r = { ISL_UNORM, -1, 4 },
3399               .g = { ISL_UNORM, -1, 4 },
3400               .b = { ISL_UNORM, -1, 4 },
3401               .a = { ISL_UNORM, -1, 4 },
3402               .l = {},
3403               .i = {},
3404               .p = {},
3405     },
3406     .colorspace = ISL_COLORSPACE_SRGB,
3407     .txc = ISL_TXC_DXT1,
3408   },
3409 
3410   [ISL_FORMAT_BC2_UNORM_SRGB] = {
3411     .format = ISL_FORMAT_BC2_UNORM_SRGB,
3412     .name = "ISL_FORMAT_BC2_UNORM_SRGB",
3413     .bpb = 128,
3414     .bw = 4,
3415     .bh = 4,
3416     .bd = 1,
3417     .channels = {
3418               .r = { ISL_UNORM, -1, 4 },
3419               .g = { ISL_UNORM, -1, 4 },
3420               .b = { ISL_UNORM, -1, 4 },
3421               .a = { ISL_UNORM, -1, 4 },
3422               .l = {},
3423               .i = {},
3424               .p = {},
3425     },
3426     .colorspace = ISL_COLORSPACE_SRGB,
3427     .txc = ISL_TXC_DXT3,
3428   },
3429 
3430   [ISL_FORMAT_BC3_UNORM_SRGB] = {
3431     .format = ISL_FORMAT_BC3_UNORM_SRGB,
3432     .name = "ISL_FORMAT_BC3_UNORM_SRGB",
3433     .bpb = 128,
3434     .bw = 4,
3435     .bh = 4,
3436     .bd = 1,
3437     .channels = {
3438               .r = { ISL_UNORM, -1, 4 },
3439               .g = { ISL_UNORM, -1, 4 },
3440               .b = { ISL_UNORM, -1, 4 },
3441               .a = { ISL_UNORM, -1, 4 },
3442               .l = {},
3443               .i = {},
3444               .p = {},
3445     },
3446     .colorspace = ISL_COLORSPACE_SRGB,
3447     .txc = ISL_TXC_DXT5,
3448   },
3449 
3450   [ISL_FORMAT_MONO8] = {
3451     .format = ISL_FORMAT_MONO8,
3452     .name = "ISL_FORMAT_MONO8",
3453     .bpb = 1,
3454     .bw = 1,
3455     .bh = 1,
3456     .bd = 1,
3457     .channels = {
3458               .r = {},
3459               .g = {},
3460               .b = {},
3461               .a = {},
3462               .l = {},
3463               .i = {},
3464               .p = {},
3465     },
3466     .colorspace = ISL_COLORSPACE_NONE,
3467     .txc = ISL_TXC_NONE,
3468   },
3469 
3470   [ISL_FORMAT_YCRCB_SWAPUV] = {
3471     .format = ISL_FORMAT_YCRCB_SWAPUV,
3472     .name = "ISL_FORMAT_YCRCB_SWAPUV",
3473     .bpb = 16,
3474     .bw = 1,
3475     .bh = 1,
3476     .bd = 1,
3477     .channels = {
3478               .r = { ISL_UNORM, -1, 8 },
3479               .g = { ISL_UNORM, -1, 8 },
3480               .b = { ISL_UNORM, -1, 8 },
3481               .a = {},
3482               .l = {},
3483               .i = {},
3484               .p = {},
3485     },
3486     .colorspace = ISL_COLORSPACE_YUV,
3487     .txc = ISL_TXC_NONE,
3488   },
3489 
3490   [ISL_FORMAT_YCRCB_SWAPY] = {
3491     .format = ISL_FORMAT_YCRCB_SWAPY,
3492     .name = "ISL_FORMAT_YCRCB_SWAPY",
3493     .bpb = 16,
3494     .bw = 1,
3495     .bh = 1,
3496     .bd = 1,
3497     .channels = {
3498               .r = { ISL_UNORM, -1, 8 },
3499               .g = { ISL_UNORM, -1, 8 },
3500               .b = { ISL_UNORM, -1, 8 },
3501               .a = {},
3502               .l = {},
3503               .i = {},
3504               .p = {},
3505     },
3506     .colorspace = ISL_COLORSPACE_YUV,
3507     .txc = ISL_TXC_NONE,
3508   },
3509 
3510   [ISL_FORMAT_DXT1_RGB] = {
3511     .format = ISL_FORMAT_DXT1_RGB,
3512     .name = "ISL_FORMAT_DXT1_RGB",
3513     .bpb = 64,
3514     .bw = 4,
3515     .bh = 4,
3516     .bd = 1,
3517     .channels = {
3518               .r = { ISL_UNORM, -1, 4 },
3519               .g = { ISL_UNORM, -1, 4 },
3520               .b = { ISL_UNORM, -1, 4 },
3521               .a = {},
3522               .l = {},
3523               .i = {},
3524               .p = {},
3525     },
3526     .colorspace = ISL_COLORSPACE_LINEAR,
3527     .txc = ISL_TXC_DXT1,
3528   },
3529 
3530   [ISL_FORMAT_FXT1] = {
3531     .format = ISL_FORMAT_FXT1,
3532     .name = "ISL_FORMAT_FXT1",
3533     .bpb = 128,
3534     .bw = 8,
3535     .bh = 4,
3536     .bd = 1,
3537     .channels = {
3538               .r = { ISL_UNORM, -1, 4 },
3539               .g = { ISL_UNORM, -1, 4 },
3540               .b = { ISL_UNORM, -1, 4 },
3541               .a = {},
3542               .l = {},
3543               .i = {},
3544               .p = {},
3545     },
3546     .colorspace = ISL_COLORSPACE_LINEAR,
3547     .txc = ISL_TXC_FXT1,
3548   },
3549 
3550   [ISL_FORMAT_R8G8B8_UNORM] = {
3551     .format = ISL_FORMAT_R8G8B8_UNORM,
3552     .name = "ISL_FORMAT_R8G8B8_UNORM",
3553     .bpb = 24,
3554     .bw = 1,
3555     .bh = 1,
3556     .bd = 1,
3557     .channels = {
3558               .r = { ISL_UNORM, 0, 8 },
3559               .g = { ISL_UNORM, 8, 8 },
3560               .b = { ISL_UNORM, 16, 8 },
3561               .a = {},
3562               .l = {},
3563               .i = {},
3564               .p = {},
3565     },
3566     .colorspace = ISL_COLORSPACE_LINEAR,
3567     .txc = ISL_TXC_NONE,
3568   },
3569 
3570   [ISL_FORMAT_R8G8B8_SNORM] = {
3571     .format = ISL_FORMAT_R8G8B8_SNORM,
3572     .name = "ISL_FORMAT_R8G8B8_SNORM",
3573     .bpb = 24,
3574     .bw = 1,
3575     .bh = 1,
3576     .bd = 1,
3577     .channels = {
3578               .r = { ISL_SNORM, 0, 8 },
3579               .g = { ISL_SNORM, 8, 8 },
3580               .b = { ISL_SNORM, 16, 8 },
3581               .a = {},
3582               .l = {},
3583               .i = {},
3584               .p = {},
3585     },
3586     .colorspace = ISL_COLORSPACE_LINEAR,
3587     .txc = ISL_TXC_NONE,
3588   },
3589 
3590   [ISL_FORMAT_R8G8B8_SSCALED] = {
3591     .format = ISL_FORMAT_R8G8B8_SSCALED,
3592     .name = "ISL_FORMAT_R8G8B8_SSCALED",
3593     .bpb = 24,
3594     .bw = 1,
3595     .bh = 1,
3596     .bd = 1,
3597     .channels = {
3598               .r = { ISL_SSCALED, 0, 8 },
3599               .g = { ISL_SSCALED, 8, 8 },
3600               .b = { ISL_SSCALED, 16, 8 },
3601               .a = {},
3602               .l = {},
3603               .i = {},
3604               .p = {},
3605     },
3606     .colorspace = ISL_COLORSPACE_LINEAR,
3607     .txc = ISL_TXC_NONE,
3608   },
3609 
3610   [ISL_FORMAT_R8G8B8_USCALED] = {
3611     .format = ISL_FORMAT_R8G8B8_USCALED,
3612     .name = "ISL_FORMAT_R8G8B8_USCALED",
3613     .bpb = 24,
3614     .bw = 1,
3615     .bh = 1,
3616     .bd = 1,
3617     .channels = {
3618               .r = { ISL_USCALED, 0, 8 },
3619               .g = { ISL_USCALED, 8, 8 },
3620               .b = { ISL_USCALED, 16, 8 },
3621               .a = {},
3622               .l = {},
3623               .i = {},
3624               .p = {},
3625     },
3626     .colorspace = ISL_COLORSPACE_LINEAR,
3627     .txc = ISL_TXC_NONE,
3628   },
3629 
3630   [ISL_FORMAT_R64G64B64A64_FLOAT] = {
3631     .format = ISL_FORMAT_R64G64B64A64_FLOAT,
3632     .name = "ISL_FORMAT_R64G64B64A64_FLOAT",
3633     .bpb = 256,
3634     .bw = 1,
3635     .bh = 1,
3636     .bd = 1,
3637     .channels = {
3638               .r = { ISL_SFLOAT, 0, 64 },
3639               .g = { ISL_SFLOAT, 64, 64 },
3640               .b = { ISL_SFLOAT, 128, 64 },
3641               .a = { ISL_SFLOAT, 192, 64 },
3642               .l = {},
3643               .i = {},
3644               .p = {},
3645     },
3646     .colorspace = ISL_COLORSPACE_LINEAR,
3647     .txc = ISL_TXC_NONE,
3648   },
3649 
3650   [ISL_FORMAT_R64G64B64_FLOAT] = {
3651     .format = ISL_FORMAT_R64G64B64_FLOAT,
3652     .name = "ISL_FORMAT_R64G64B64_FLOAT",
3653     .bpb = 196,
3654     .bw = 1,
3655     .bh = 1,
3656     .bd = 1,
3657     .channels = {
3658               .r = { ISL_SFLOAT, 0, 64 },
3659               .g = { ISL_SFLOAT, 64, 64 },
3660               .b = { ISL_SFLOAT, 128, 64 },
3661               .a = {},
3662               .l = {},
3663               .i = {},
3664               .p = {},
3665     },
3666     .colorspace = ISL_COLORSPACE_LINEAR,
3667     .txc = ISL_TXC_NONE,
3668   },
3669 
3670   [ISL_FORMAT_BC4_SNORM] = {
3671     .format = ISL_FORMAT_BC4_SNORM,
3672     .name = "ISL_FORMAT_BC4_SNORM",
3673     .bpb = 64,
3674     .bw = 4,
3675     .bh = 4,
3676     .bd = 1,
3677     .channels = {
3678               .r = { ISL_SNORM, -1, 8 },
3679               .g = {},
3680               .b = {},
3681               .a = {},
3682               .l = {},
3683               .i = {},
3684               .p = {},
3685     },
3686     .colorspace = ISL_COLORSPACE_LINEAR,
3687     .txc = ISL_TXC_RGTC1,
3688   },
3689 
3690   [ISL_FORMAT_BC5_SNORM] = {
3691     .format = ISL_FORMAT_BC5_SNORM,
3692     .name = "ISL_FORMAT_BC5_SNORM",
3693     .bpb = 128,
3694     .bw = 4,
3695     .bh = 4,
3696     .bd = 1,
3697     .channels = {
3698               .r = { ISL_SNORM, -1, 8 },
3699               .g = { ISL_SNORM, -1, 8 },
3700               .b = {},
3701               .a = {},
3702               .l = {},
3703               .i = {},
3704               .p = {},
3705     },
3706     .colorspace = ISL_COLORSPACE_LINEAR,
3707     .txc = ISL_TXC_RGTC2,
3708   },
3709 
3710   [ISL_FORMAT_R16G16B16_FLOAT] = {
3711     .format = ISL_FORMAT_R16G16B16_FLOAT,
3712     .name = "ISL_FORMAT_R16G16B16_FLOAT",
3713     .bpb = 48,
3714     .bw = 1,
3715     .bh = 1,
3716     .bd = 1,
3717     .channels = {
3718               .r = { ISL_SFLOAT, 0, 16 },
3719               .g = { ISL_SFLOAT, 16, 16 },
3720               .b = { ISL_SFLOAT, 32, 16 },
3721               .a = {},
3722               .l = {},
3723               .i = {},
3724               .p = {},
3725     },
3726     .colorspace = ISL_COLORSPACE_LINEAR,
3727     .txc = ISL_TXC_NONE,
3728   },
3729 
3730   [ISL_FORMAT_R16G16B16_UNORM] = {
3731     .format = ISL_FORMAT_R16G16B16_UNORM,
3732     .name = "ISL_FORMAT_R16G16B16_UNORM",
3733     .bpb = 48,
3734     .bw = 1,
3735     .bh = 1,
3736     .bd = 1,
3737     .channels = {
3738               .r = { ISL_UNORM, 0, 16 },
3739               .g = { ISL_UNORM, 16, 16 },
3740               .b = { ISL_UNORM, 32, 16 },
3741               .a = {},
3742               .l = {},
3743               .i = {},
3744               .p = {},
3745     },
3746     .colorspace = ISL_COLORSPACE_LINEAR,
3747     .txc = ISL_TXC_NONE,
3748   },
3749 
3750   [ISL_FORMAT_R16G16B16_SNORM] = {
3751     .format = ISL_FORMAT_R16G16B16_SNORM,
3752     .name = "ISL_FORMAT_R16G16B16_SNORM",
3753     .bpb = 48,
3754     .bw = 1,
3755     .bh = 1,
3756     .bd = 1,
3757     .channels = {
3758               .r = { ISL_SNORM, 0, 16 },
3759               .g = { ISL_SNORM, 16, 16 },
3760               .b = { ISL_SNORM, 32, 16 },
3761               .a = {},
3762               .l = {},
3763               .i = {},
3764               .p = {},
3765     },
3766     .colorspace = ISL_COLORSPACE_LINEAR,
3767     .txc = ISL_TXC_NONE,
3768   },
3769 
3770   [ISL_FORMAT_R16G16B16_SSCALED] = {
3771     .format = ISL_FORMAT_R16G16B16_SSCALED,
3772     .name = "ISL_FORMAT_R16G16B16_SSCALED",
3773     .bpb = 48,
3774     .bw = 1,
3775     .bh = 1,
3776     .bd = 1,
3777     .channels = {
3778               .r = { ISL_SSCALED, 0, 16 },
3779               .g = { ISL_SSCALED, 16, 16 },
3780               .b = { ISL_SSCALED, 32, 16 },
3781               .a = {},
3782               .l = {},
3783               .i = {},
3784               .p = {},
3785     },
3786     .colorspace = ISL_COLORSPACE_LINEAR,
3787     .txc = ISL_TXC_NONE,
3788   },
3789 
3790   [ISL_FORMAT_R16G16B16_USCALED] = {
3791     .format = ISL_FORMAT_R16G16B16_USCALED,
3792     .name = "ISL_FORMAT_R16G16B16_USCALED",
3793     .bpb = 48,
3794     .bw = 1,
3795     .bh = 1,
3796     .bd = 1,
3797     .channels = {
3798               .r = { ISL_USCALED, 0, 16 },
3799               .g = { ISL_USCALED, 16, 16 },
3800               .b = { ISL_USCALED, 32, 16 },
3801               .a = {},
3802               .l = {},
3803               .i = {},
3804               .p = {},
3805     },
3806     .colorspace = ISL_COLORSPACE_LINEAR,
3807     .txc = ISL_TXC_NONE,
3808   },
3809 
3810   [ISL_FORMAT_BC6H_SF16] = {
3811     .format = ISL_FORMAT_BC6H_SF16,
3812     .name = "ISL_FORMAT_BC6H_SF16",
3813     .bpb = 128,
3814     .bw = 4,
3815     .bh = 4,
3816     .bd = 1,
3817     .channels = {
3818               .r = { ISL_SFLOAT, -1, 16 },
3819               .g = { ISL_SFLOAT, -1, 16 },
3820               .b = { ISL_SFLOAT, -1, 16 },
3821               .a = {},
3822               .l = {},
3823               .i = {},
3824               .p = {},
3825     },
3826     .colorspace = ISL_COLORSPACE_LINEAR,
3827     .txc = ISL_TXC_BPTC,
3828   },
3829 
3830   [ISL_FORMAT_BC7_UNORM] = {
3831     .format = ISL_FORMAT_BC7_UNORM,
3832     .name = "ISL_FORMAT_BC7_UNORM",
3833     .bpb = 128,
3834     .bw = 4,
3835     .bh = 4,
3836     .bd = 1,
3837     .channels = {
3838               .r = { ISL_UNORM, -1, 8 },
3839               .g = { ISL_UNORM, -1, 8 },
3840               .b = { ISL_UNORM, -1, 8 },
3841               .a = { ISL_UNORM, -1, 8 },
3842               .l = {},
3843               .i = {},
3844               .p = {},
3845     },
3846     .colorspace = ISL_COLORSPACE_LINEAR,
3847     .txc = ISL_TXC_BPTC,
3848   },
3849 
3850   [ISL_FORMAT_BC7_UNORM_SRGB] = {
3851     .format = ISL_FORMAT_BC7_UNORM_SRGB,
3852     .name = "ISL_FORMAT_BC7_UNORM_SRGB",
3853     .bpb = 128,
3854     .bw = 4,
3855     .bh = 4,
3856     .bd = 1,
3857     .channels = {
3858               .r = { ISL_UNORM, -1, 8 },
3859               .g = { ISL_UNORM, -1, 8 },
3860               .b = { ISL_UNORM, -1, 8 },
3861               .a = { ISL_UNORM, -1, 8 },
3862               .l = {},
3863               .i = {},
3864               .p = {},
3865     },
3866     .colorspace = ISL_COLORSPACE_SRGB,
3867     .txc = ISL_TXC_BPTC,
3868   },
3869 
3870   [ISL_FORMAT_BC6H_UF16] = {
3871     .format = ISL_FORMAT_BC6H_UF16,
3872     .name = "ISL_FORMAT_BC6H_UF16",
3873     .bpb = 128,
3874     .bw = 4,
3875     .bh = 4,
3876     .bd = 1,
3877     .channels = {
3878               .r = { ISL_UFLOAT, -1, 16 },
3879               .g = { ISL_UFLOAT, -1, 16 },
3880               .b = { ISL_UFLOAT, -1, 16 },
3881               .a = {},
3882               .l = {},
3883               .i = {},
3884               .p = {},
3885     },
3886     .colorspace = ISL_COLORSPACE_LINEAR,
3887     .txc = ISL_TXC_BPTC,
3888   },
3889 
3890   [ISL_FORMAT_PLANAR_420_8] = {
3891     .format = ISL_FORMAT_PLANAR_420_8,
3892     .name = "ISL_FORMAT_PLANAR_420_8",
3893     .bpb = 0,
3894     .bw = 0,
3895     .bh = 0,
3896     .bd = 0,
3897     .channels = {
3898               .r = {},
3899               .g = {},
3900               .b = {},
3901               .a = {},
3902               .l = {},
3903               .i = {},
3904               .p = {},
3905     },
3906     .colorspace = ISL_COLORSPACE_YUV,
3907     .txc = ISL_TXC_NONE,
3908   },
3909 
3910   [ISL_FORMAT_PLANAR_420_10] = {
3911     .format = ISL_FORMAT_PLANAR_420_10,
3912     .name = "ISL_FORMAT_PLANAR_420_10",
3913     .bpb = 0,
3914     .bw = 0,
3915     .bh = 0,
3916     .bd = 0,
3917     .channels = {
3918               .r = {},
3919               .g = {},
3920               .b = {},
3921               .a = {},
3922               .l = {},
3923               .i = {},
3924               .p = {},
3925     },
3926     .colorspace = ISL_COLORSPACE_YUV,
3927     .txc = ISL_TXC_NONE,
3928   },
3929 
3930   [ISL_FORMAT_PLANAR_420_12] = {
3931     .format = ISL_FORMAT_PLANAR_420_12,
3932     .name = "ISL_FORMAT_PLANAR_420_12",
3933     .bpb = 0,
3934     .bw = 0,
3935     .bh = 0,
3936     .bd = 0,
3937     .channels = {
3938               .r = {},
3939               .g = {},
3940               .b = {},
3941               .a = {},
3942               .l = {},
3943               .i = {},
3944               .p = {},
3945     },
3946     .colorspace = ISL_COLORSPACE_YUV,
3947     .txc = ISL_TXC_NONE,
3948   },
3949 
3950   [ISL_FORMAT_PLANAR_420_16] = {
3951     .format = ISL_FORMAT_PLANAR_420_16,
3952     .name = "ISL_FORMAT_PLANAR_420_16",
3953     .bpb = 0,
3954     .bw = 0,
3955     .bh = 0,
3956     .bd = 0,
3957     .channels = {
3958               .r = {},
3959               .g = {},
3960               .b = {},
3961               .a = {},
3962               .l = {},
3963               .i = {},
3964               .p = {},
3965     },
3966     .colorspace = ISL_COLORSPACE_YUV,
3967     .txc = ISL_TXC_NONE,
3968   },
3969 
3970   [ISL_FORMAT_R8G8B8_UNORM_SRGB] = {
3971     .format = ISL_FORMAT_R8G8B8_UNORM_SRGB,
3972     .name = "ISL_FORMAT_R8G8B8_UNORM_SRGB",
3973     .bpb = 24,
3974     .bw = 1,
3975     .bh = 1,
3976     .bd = 1,
3977     .channels = {
3978               .r = { ISL_UNORM, 0, 8 },
3979               .g = { ISL_UNORM, 8, 8 },
3980               .b = { ISL_UNORM, 16, 8 },
3981               .a = {},
3982               .l = {},
3983               .i = {},
3984               .p = {},
3985     },
3986     .colorspace = ISL_COLORSPACE_SRGB,
3987     .txc = ISL_TXC_NONE,
3988   },
3989 
3990   [ISL_FORMAT_ETC1_RGB8] = {
3991     .format = ISL_FORMAT_ETC1_RGB8,
3992     .name = "ISL_FORMAT_ETC1_RGB8",
3993     .bpb = 64,
3994     .bw = 4,
3995     .bh = 4,
3996     .bd = 1,
3997     .channels = {
3998               .r = { ISL_UNORM, -1, 8 },
3999               .g = { ISL_UNORM, -1, 8 },
4000               .b = { ISL_UNORM, -1, 8 },
4001               .a = {},
4002               .l = {},
4003               .i = {},
4004               .p = {},
4005     },
4006     .colorspace = ISL_COLORSPACE_LINEAR,
4007     .txc = ISL_TXC_ETC1,
4008   },
4009 
4010   [ISL_FORMAT_ETC2_RGB8] = {
4011     .format = ISL_FORMAT_ETC2_RGB8,
4012     .name = "ISL_FORMAT_ETC2_RGB8",
4013     .bpb = 64,
4014     .bw = 4,
4015     .bh = 4,
4016     .bd = 1,
4017     .channels = {
4018               .r = { ISL_UNORM, -1, 8 },
4019               .g = { ISL_UNORM, -1, 8 },
4020               .b = { ISL_UNORM, -1, 8 },
4021               .a = {},
4022               .l = {},
4023               .i = {},
4024               .p = {},
4025     },
4026     .colorspace = ISL_COLORSPACE_LINEAR,
4027     .txc = ISL_TXC_ETC2,
4028   },
4029 
4030   [ISL_FORMAT_EAC_R11] = {
4031     .format = ISL_FORMAT_EAC_R11,
4032     .name = "ISL_FORMAT_EAC_R11",
4033     .bpb = 64,
4034     .bw = 4,
4035     .bh = 4,
4036     .bd = 1,
4037     .channels = {
4038               .r = { ISL_UNORM, -1, 11 },
4039               .g = {},
4040               .b = {},
4041               .a = {},
4042               .l = {},
4043               .i = {},
4044               .p = {},
4045     },
4046     .colorspace = ISL_COLORSPACE_LINEAR,
4047     .txc = ISL_TXC_ETC2,
4048   },
4049 
4050   [ISL_FORMAT_EAC_RG11] = {
4051     .format = ISL_FORMAT_EAC_RG11,
4052     .name = "ISL_FORMAT_EAC_RG11",
4053     .bpb = 128,
4054     .bw = 4,
4055     .bh = 4,
4056     .bd = 1,
4057     .channels = {
4058               .r = { ISL_UNORM, -1, 11 },
4059               .g = { ISL_UNORM, -1, 11 },
4060               .b = {},
4061               .a = {},
4062               .l = {},
4063               .i = {},
4064               .p = {},
4065     },
4066     .colorspace = ISL_COLORSPACE_LINEAR,
4067     .txc = ISL_TXC_ETC2,
4068   },
4069 
4070   [ISL_FORMAT_EAC_SIGNED_R11] = {
4071     .format = ISL_FORMAT_EAC_SIGNED_R11,
4072     .name = "ISL_FORMAT_EAC_SIGNED_R11",
4073     .bpb = 64,
4074     .bw = 4,
4075     .bh = 4,
4076     .bd = 1,
4077     .channels = {
4078               .r = { ISL_SNORM, -1, 11 },
4079               .g = {},
4080               .b = {},
4081               .a = {},
4082               .l = {},
4083               .i = {},
4084               .p = {},
4085     },
4086     .colorspace = ISL_COLORSPACE_LINEAR,
4087     .txc = ISL_TXC_ETC2,
4088   },
4089 
4090   [ISL_FORMAT_EAC_SIGNED_RG11] = {
4091     .format = ISL_FORMAT_EAC_SIGNED_RG11,
4092     .name = "ISL_FORMAT_EAC_SIGNED_RG11",
4093     .bpb = 128,
4094     .bw = 4,
4095     .bh = 4,
4096     .bd = 1,
4097     .channels = {
4098               .r = { ISL_SNORM, -1, 11 },
4099               .g = { ISL_SNORM, -1, 11 },
4100               .b = {},
4101               .a = {},
4102               .l = {},
4103               .i = {},
4104               .p = {},
4105     },
4106     .colorspace = ISL_COLORSPACE_LINEAR,
4107     .txc = ISL_TXC_ETC2,
4108   },
4109 
4110   [ISL_FORMAT_ETC2_SRGB8] = {
4111     .format = ISL_FORMAT_ETC2_SRGB8,
4112     .name = "ISL_FORMAT_ETC2_SRGB8",
4113     .bpb = 64,
4114     .bw = 4,
4115     .bh = 4,
4116     .bd = 1,
4117     .channels = {
4118               .r = { ISL_UNORM, -1, 8 },
4119               .g = { ISL_UNORM, -1, 8 },
4120               .b = { ISL_UNORM, -1, 8 },
4121               .a = {},
4122               .l = {},
4123               .i = {},
4124               .p = {},
4125     },
4126     .colorspace = ISL_COLORSPACE_SRGB,
4127     .txc = ISL_TXC_ETC2,
4128   },
4129 
4130   [ISL_FORMAT_R16G16B16_UINT] = {
4131     .format = ISL_FORMAT_R16G16B16_UINT,
4132     .name = "ISL_FORMAT_R16G16B16_UINT",
4133     .bpb = 48,
4134     .bw = 1,
4135     .bh = 1,
4136     .bd = 1,
4137     .channels = {
4138               .r = { ISL_UINT, 0, 16 },
4139               .g = { ISL_UINT, 16, 16 },
4140               .b = { ISL_UINT, 32, 16 },
4141               .a = {},
4142               .l = {},
4143               .i = {},
4144               .p = {},
4145     },
4146     .colorspace = ISL_COLORSPACE_LINEAR,
4147     .txc = ISL_TXC_NONE,
4148   },
4149 
4150   [ISL_FORMAT_R16G16B16_SINT] = {
4151     .format = ISL_FORMAT_R16G16B16_SINT,
4152     .name = "ISL_FORMAT_R16G16B16_SINT",
4153     .bpb = 48,
4154     .bw = 1,
4155     .bh = 1,
4156     .bd = 1,
4157     .channels = {
4158               .r = { ISL_SINT, 0, 16 },
4159               .g = { ISL_SINT, 16, 16 },
4160               .b = { ISL_SINT, 32, 16 },
4161               .a = {},
4162               .l = {},
4163               .i = {},
4164               .p = {},
4165     },
4166     .colorspace = ISL_COLORSPACE_LINEAR,
4167     .txc = ISL_TXC_NONE,
4168   },
4169 
4170   [ISL_FORMAT_R32_SFIXED] = {
4171     .format = ISL_FORMAT_R32_SFIXED,
4172     .name = "ISL_FORMAT_R32_SFIXED",
4173     .bpb = 32,
4174     .bw = 1,
4175     .bh = 1,
4176     .bd = 1,
4177     .channels = {
4178               .r = { ISL_SFIXED, 0, 16 },
4179               .g = {},
4180               .b = {},
4181               .a = {},
4182               .l = {},
4183               .i = {},
4184               .p = {},
4185     },
4186     .colorspace = ISL_COLORSPACE_LINEAR,
4187     .txc = ISL_TXC_NONE,
4188   },
4189 
4190   [ISL_FORMAT_R10G10B10A2_SNORM] = {
4191     .format = ISL_FORMAT_R10G10B10A2_SNORM,
4192     .name = "ISL_FORMAT_R10G10B10A2_SNORM",
4193     .bpb = 32,
4194     .bw = 1,
4195     .bh = 1,
4196     .bd = 1,
4197     .channels = {
4198               .r = { ISL_SNORM, 0, 10 },
4199               .g = { ISL_SNORM, 10, 10 },
4200               .b = { ISL_SNORM, 20, 10 },
4201               .a = { ISL_SNORM, 30, 2 },
4202               .l = {},
4203               .i = {},
4204               .p = {},
4205     },
4206     .colorspace = ISL_COLORSPACE_LINEAR,
4207     .txc = ISL_TXC_NONE,
4208   },
4209 
4210   [ISL_FORMAT_R10G10B10A2_USCALED] = {
4211     .format = ISL_FORMAT_R10G10B10A2_USCALED,
4212     .name = "ISL_FORMAT_R10G10B10A2_USCALED",
4213     .bpb = 32,
4214     .bw = 1,
4215     .bh = 1,
4216     .bd = 1,
4217     .channels = {
4218               .r = { ISL_USCALED, 0, 10 },
4219               .g = { ISL_USCALED, 10, 10 },
4220               .b = { ISL_USCALED, 20, 10 },
4221               .a = { ISL_USCALED, 30, 2 },
4222               .l = {},
4223               .i = {},
4224               .p = {},
4225     },
4226     .colorspace = ISL_COLORSPACE_LINEAR,
4227     .txc = ISL_TXC_NONE,
4228   },
4229 
4230   [ISL_FORMAT_R10G10B10A2_SSCALED] = {
4231     .format = ISL_FORMAT_R10G10B10A2_SSCALED,
4232     .name = "ISL_FORMAT_R10G10B10A2_SSCALED",
4233     .bpb = 32,
4234     .bw = 1,
4235     .bh = 1,
4236     .bd = 1,
4237     .channels = {
4238               .r = { ISL_SSCALED, 0, 10 },
4239               .g = { ISL_SSCALED, 10, 10 },
4240               .b = { ISL_SSCALED, 20, 10 },
4241               .a = { ISL_SSCALED, 30, 2 },
4242               .l = {},
4243               .i = {},
4244               .p = {},
4245     },
4246     .colorspace = ISL_COLORSPACE_LINEAR,
4247     .txc = ISL_TXC_NONE,
4248   },
4249 
4250   [ISL_FORMAT_R10G10B10A2_SINT] = {
4251     .format = ISL_FORMAT_R10G10B10A2_SINT,
4252     .name = "ISL_FORMAT_R10G10B10A2_SINT",
4253     .bpb = 32,
4254     .bw = 1,
4255     .bh = 1,
4256     .bd = 1,
4257     .channels = {
4258               .r = { ISL_SINT, 0, 10 },
4259               .g = { ISL_SINT, 10, 10 },
4260               .b = { ISL_SINT, 20, 10 },
4261               .a = { ISL_SINT, 30, 2 },
4262               .l = {},
4263               .i = {},
4264               .p = {},
4265     },
4266     .colorspace = ISL_COLORSPACE_LINEAR,
4267     .txc = ISL_TXC_NONE,
4268   },
4269 
4270   [ISL_FORMAT_B10G10R10A2_SNORM] = {
4271     .format = ISL_FORMAT_B10G10R10A2_SNORM,
4272     .name = "ISL_FORMAT_B10G10R10A2_SNORM",
4273     .bpb = 32,
4274     .bw = 1,
4275     .bh = 1,
4276     .bd = 1,
4277     .channels = {
4278               .r = { ISL_SNORM, 0, 10 },
4279               .g = { ISL_SNORM, 10, 10 },
4280               .b = { ISL_SNORM, 20, 10 },
4281               .a = { ISL_SNORM, 30, 2 },
4282               .l = {},
4283               .i = {},
4284               .p = {},
4285     },
4286     .colorspace = ISL_COLORSPACE_LINEAR,
4287     .txc = ISL_TXC_NONE,
4288   },
4289 
4290   [ISL_FORMAT_B10G10R10A2_USCALED] = {
4291     .format = ISL_FORMAT_B10G10R10A2_USCALED,
4292     .name = "ISL_FORMAT_B10G10R10A2_USCALED",
4293     .bpb = 32,
4294     .bw = 1,
4295     .bh = 1,
4296     .bd = 1,
4297     .channels = {
4298               .r = { ISL_USCALED, 0, 10 },
4299               .g = { ISL_USCALED, 10, 10 },
4300               .b = { ISL_USCALED, 20, 10 },
4301               .a = { ISL_USCALED, 30, 2 },
4302               .l = {},
4303               .i = {},
4304               .p = {},
4305     },
4306     .colorspace = ISL_COLORSPACE_LINEAR,
4307     .txc = ISL_TXC_NONE,
4308   },
4309 
4310   [ISL_FORMAT_B10G10R10A2_SSCALED] = {
4311     .format = ISL_FORMAT_B10G10R10A2_SSCALED,
4312     .name = "ISL_FORMAT_B10G10R10A2_SSCALED",
4313     .bpb = 32,
4314     .bw = 1,
4315     .bh = 1,
4316     .bd = 1,
4317     .channels = {
4318               .r = { ISL_SSCALED, 0, 10 },
4319               .g = { ISL_SSCALED, 10, 10 },
4320               .b = { ISL_SSCALED, 20, 10 },
4321               .a = { ISL_SSCALED, 30, 2 },
4322               .l = {},
4323               .i = {},
4324               .p = {},
4325     },
4326     .colorspace = ISL_COLORSPACE_LINEAR,
4327     .txc = ISL_TXC_NONE,
4328   },
4329 
4330   [ISL_FORMAT_B10G10R10A2_UINT] = {
4331     .format = ISL_FORMAT_B10G10R10A2_UINT,
4332     .name = "ISL_FORMAT_B10G10R10A2_UINT",
4333     .bpb = 32,
4334     .bw = 1,
4335     .bh = 1,
4336     .bd = 1,
4337     .channels = {
4338               .r = { ISL_UINT, 0, 10 },
4339               .g = { ISL_UINT, 10, 10 },
4340               .b = { ISL_UINT, 20, 10 },
4341               .a = { ISL_UINT, 30, 2 },
4342               .l = {},
4343               .i = {},
4344               .p = {},
4345     },
4346     .colorspace = ISL_COLORSPACE_LINEAR,
4347     .txc = ISL_TXC_NONE,
4348   },
4349 
4350   [ISL_FORMAT_B10G10R10A2_SINT] = {
4351     .format = ISL_FORMAT_B10G10R10A2_SINT,
4352     .name = "ISL_FORMAT_B10G10R10A2_SINT",
4353     .bpb = 32,
4354     .bw = 1,
4355     .bh = 1,
4356     .bd = 1,
4357     .channels = {
4358               .r = { ISL_SINT, 0, 10 },
4359               .g = { ISL_SINT, 10, 10 },
4360               .b = { ISL_SINT, 20, 10 },
4361               .a = { ISL_SINT, 30, 2 },
4362               .l = {},
4363               .i = {},
4364               .p = {},
4365     },
4366     .colorspace = ISL_COLORSPACE_LINEAR,
4367     .txc = ISL_TXC_NONE,
4368   },
4369 
4370   [ISL_FORMAT_R64G64B64A64_PASSTHRU] = {
4371     .format = ISL_FORMAT_R64G64B64A64_PASSTHRU,
4372     .name = "ISL_FORMAT_R64G64B64A64_PASSTHRU",
4373     .bpb = 256,
4374     .bw = 1,
4375     .bh = 1,
4376     .bd = 1,
4377     .channels = {
4378               .r = { ISL_RAW, 0, 64 },
4379               .g = { ISL_RAW, 64, 64 },
4380               .b = { ISL_RAW, 128, 64 },
4381               .a = { ISL_RAW, 192, 64 },
4382               .l = {},
4383               .i = {},
4384               .p = {},
4385     },
4386     .colorspace = ISL_COLORSPACE_NONE,
4387     .txc = ISL_TXC_NONE,
4388   },
4389 
4390   [ISL_FORMAT_R64G64B64_PASSTHRU] = {
4391     .format = ISL_FORMAT_R64G64B64_PASSTHRU,
4392     .name = "ISL_FORMAT_R64G64B64_PASSTHRU",
4393     .bpb = 192,
4394     .bw = 1,
4395     .bh = 1,
4396     .bd = 1,
4397     .channels = {
4398               .r = { ISL_RAW, 0, 64 },
4399               .g = { ISL_RAW, 64, 64 },
4400               .b = { ISL_RAW, 128, 64 },
4401               .a = {},
4402               .l = {},
4403               .i = {},
4404               .p = {},
4405     },
4406     .colorspace = ISL_COLORSPACE_NONE,
4407     .txc = ISL_TXC_NONE,
4408   },
4409 
4410   [ISL_FORMAT_ETC2_RGB8_PTA] = {
4411     .format = ISL_FORMAT_ETC2_RGB8_PTA,
4412     .name = "ISL_FORMAT_ETC2_RGB8_PTA",
4413     .bpb = 64,
4414     .bw = 4,
4415     .bh = 4,
4416     .bd = 1,
4417     .channels = {
4418               .r = { ISL_UNORM, -1, 8 },
4419               .g = { ISL_UNORM, -1, 8 },
4420               .b = { ISL_UNORM, -1, 8 },
4421               .a = { ISL_UNORM, -1, 1 },
4422               .l = {},
4423               .i = {},
4424               .p = {},
4425     },
4426     .colorspace = ISL_COLORSPACE_LINEAR,
4427     .txc = ISL_TXC_ETC2,
4428   },
4429 
4430   [ISL_FORMAT_ETC2_SRGB8_PTA] = {
4431     .format = ISL_FORMAT_ETC2_SRGB8_PTA,
4432     .name = "ISL_FORMAT_ETC2_SRGB8_PTA",
4433     .bpb = 64,
4434     .bw = 4,
4435     .bh = 4,
4436     .bd = 1,
4437     .channels = {
4438               .r = { ISL_UNORM, -1, 8 },
4439               .g = { ISL_UNORM, -1, 8 },
4440               .b = { ISL_UNORM, -1, 8 },
4441               .a = { ISL_UNORM, -1, 1 },
4442               .l = {},
4443               .i = {},
4444               .p = {},
4445     },
4446     .colorspace = ISL_COLORSPACE_SRGB,
4447     .txc = ISL_TXC_ETC2,
4448   },
4449 
4450   [ISL_FORMAT_ETC2_EAC_RGBA8] = {
4451     .format = ISL_FORMAT_ETC2_EAC_RGBA8,
4452     .name = "ISL_FORMAT_ETC2_EAC_RGBA8",
4453     .bpb = 128,
4454     .bw = 4,
4455     .bh = 4,
4456     .bd = 1,
4457     .channels = {
4458               .r = { ISL_UNORM, -1, 8 },
4459               .g = { ISL_UNORM, -1, 8 },
4460               .b = { ISL_UNORM, -1, 8 },
4461               .a = { ISL_UNORM, -1, 8 },
4462               .l = {},
4463               .i = {},
4464               .p = {},
4465     },
4466     .colorspace = ISL_COLORSPACE_LINEAR,
4467     .txc = ISL_TXC_ETC2,
4468   },
4469 
4470   [ISL_FORMAT_ETC2_EAC_SRGB8_A8] = {
4471     .format = ISL_FORMAT_ETC2_EAC_SRGB8_A8,
4472     .name = "ISL_FORMAT_ETC2_EAC_SRGB8_A8",
4473     .bpb = 128,
4474     .bw = 4,
4475     .bh = 4,
4476     .bd = 1,
4477     .channels = {
4478               .r = { ISL_UNORM, -1, 8 },
4479               .g = { ISL_UNORM, -1, 8 },
4480               .b = { ISL_UNORM, -1, 8 },
4481               .a = { ISL_UNORM, -1, 8 },
4482               .l = {},
4483               .i = {},
4484               .p = {},
4485     },
4486     .colorspace = ISL_COLORSPACE_SRGB,
4487     .txc = ISL_TXC_ETC2,
4488   },
4489 
4490   [ISL_FORMAT_R8G8B8_UINT] = {
4491     .format = ISL_FORMAT_R8G8B8_UINT,
4492     .name = "ISL_FORMAT_R8G8B8_UINT",
4493     .bpb = 24,
4494     .bw = 1,
4495     .bh = 1,
4496     .bd = 1,
4497     .channels = {
4498               .r = { ISL_UINT, 0, 8 },
4499               .g = { ISL_UINT, 8, 8 },
4500               .b = { ISL_UINT, 16, 8 },
4501               .a = {},
4502               .l = {},
4503               .i = {},
4504               .p = {},
4505     },
4506     .colorspace = ISL_COLORSPACE_LINEAR,
4507     .txc = ISL_TXC_NONE,
4508   },
4509 
4510   [ISL_FORMAT_R8G8B8_SINT] = {
4511     .format = ISL_FORMAT_R8G8B8_SINT,
4512     .name = "ISL_FORMAT_R8G8B8_SINT",
4513     .bpb = 24,
4514     .bw = 1,
4515     .bh = 1,
4516     .bd = 1,
4517     .channels = {
4518               .r = { ISL_SINT, 0, 8 },
4519               .g = { ISL_SINT, 8, 8 },
4520               .b = { ISL_SINT, 16, 8 },
4521               .a = {},
4522               .l = {},
4523               .i = {},
4524               .p = {},
4525     },
4526     .colorspace = ISL_COLORSPACE_LINEAR,
4527     .txc = ISL_TXC_NONE,
4528   },
4529 
4530   [ISL_FORMAT_RAW] = {
4531     .format = ISL_FORMAT_RAW,
4532     .name = "ISL_FORMAT_RAW",
4533     .bpb = 0,
4534     .bw = 0,
4535     .bh = 0,
4536     .bd = 0,
4537     .channels = {
4538               .r = {},
4539               .g = {},
4540               .b = {},
4541               .a = {},
4542               .l = {},
4543               .i = {},
4544               .p = {},
4545     },
4546     .colorspace = ISL_COLORSPACE_NONE,
4547     .txc = ISL_TXC_NONE,
4548   },
4549 
4550   [ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB] = {
4551     .format = ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB,
4552     .name = "ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB",
4553     .bpb = 128,
4554     .bw = 4,
4555     .bh = 4,
4556     .bd = 1,
4557     .channels = {
4558               .r = { ISL_UNORM, -1, 8 },
4559               .g = { ISL_UNORM, -1, 8 },
4560               .b = { ISL_UNORM, -1, 8 },
4561               .a = { ISL_UNORM, -1, 8 },
4562               .l = {},
4563               .i = {},
4564               .p = {},
4565     },
4566     .colorspace = ISL_COLORSPACE_SRGB,
4567     .txc = ISL_TXC_ASTC,
4568   },
4569 
4570   [ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB] = {
4571     .format = ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB,
4572     .name = "ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB",
4573     .bpb = 128,
4574     .bw = 5,
4575     .bh = 4,
4576     .bd = 1,
4577     .channels = {
4578               .r = { ISL_UNORM, -1, 8 },
4579               .g = { ISL_UNORM, -1, 8 },
4580               .b = { ISL_UNORM, -1, 8 },
4581               .a = { ISL_UNORM, -1, 8 },
4582               .l = {},
4583               .i = {},
4584               .p = {},
4585     },
4586     .colorspace = ISL_COLORSPACE_SRGB,
4587     .txc = ISL_TXC_ASTC,
4588   },
4589 
4590   [ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB] = {
4591     .format = ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB,
4592     .name = "ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB",
4593     .bpb = 128,
4594     .bw = 5,
4595     .bh = 5,
4596     .bd = 1,
4597     .channels = {
4598               .r = { ISL_UNORM, -1, 8 },
4599               .g = { ISL_UNORM, -1, 8 },
4600               .b = { ISL_UNORM, -1, 8 },
4601               .a = { ISL_UNORM, -1, 8 },
4602               .l = {},
4603               .i = {},
4604               .p = {},
4605     },
4606     .colorspace = ISL_COLORSPACE_SRGB,
4607     .txc = ISL_TXC_ASTC,
4608   },
4609 
4610   [ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB] = {
4611     .format = ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB,
4612     .name = "ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB",
4613     .bpb = 128,
4614     .bw = 6,
4615     .bh = 5,
4616     .bd = 1,
4617     .channels = {
4618               .r = { ISL_UNORM, -1, 8 },
4619               .g = { ISL_UNORM, -1, 8 },
4620               .b = { ISL_UNORM, -1, 8 },
4621               .a = { ISL_UNORM, -1, 8 },
4622               .l = {},
4623               .i = {},
4624               .p = {},
4625     },
4626     .colorspace = ISL_COLORSPACE_SRGB,
4627     .txc = ISL_TXC_ASTC,
4628   },
4629 
4630   [ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB] = {
4631     .format = ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB,
4632     .name = "ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB",
4633     .bpb = 128,
4634     .bw = 6,
4635     .bh = 6,
4636     .bd = 1,
4637     .channels = {
4638               .r = { ISL_UNORM, -1, 8 },
4639               .g = { ISL_UNORM, -1, 8 },
4640               .b = { ISL_UNORM, -1, 8 },
4641               .a = { ISL_UNORM, -1, 8 },
4642               .l = {},
4643               .i = {},
4644               .p = {},
4645     },
4646     .colorspace = ISL_COLORSPACE_SRGB,
4647     .txc = ISL_TXC_ASTC,
4648   },
4649 
4650   [ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB] = {
4651     .format = ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB,
4652     .name = "ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB",
4653     .bpb = 128,
4654     .bw = 8,
4655     .bh = 5,
4656     .bd = 1,
4657     .channels = {
4658               .r = { ISL_UNORM, -1, 8 },
4659               .g = { ISL_UNORM, -1, 8 },
4660               .b = { ISL_UNORM, -1, 8 },
4661               .a = { ISL_UNORM, -1, 8 },
4662               .l = {},
4663               .i = {},
4664               .p = {},
4665     },
4666     .colorspace = ISL_COLORSPACE_SRGB,
4667     .txc = ISL_TXC_ASTC,
4668   },
4669 
4670   [ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB] = {
4671     .format = ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB,
4672     .name = "ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB",
4673     .bpb = 128,
4674     .bw = 8,
4675     .bh = 6,
4676     .bd = 1,
4677     .channels = {
4678               .r = { ISL_UNORM, -1, 8 },
4679               .g = { ISL_UNORM, -1, 8 },
4680               .b = { ISL_UNORM, -1, 8 },
4681               .a = { ISL_UNORM, -1, 8 },
4682               .l = {},
4683               .i = {},
4684               .p = {},
4685     },
4686     .colorspace = ISL_COLORSPACE_SRGB,
4687     .txc = ISL_TXC_ASTC,
4688   },
4689 
4690   [ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB] = {
4691     .format = ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB,
4692     .name = "ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB",
4693     .bpb = 128,
4694     .bw = 8,
4695     .bh = 8,
4696     .bd = 1,
4697     .channels = {
4698               .r = { ISL_UNORM, -1, 8 },
4699               .g = { ISL_UNORM, -1, 8 },
4700               .b = { ISL_UNORM, -1, 8 },
4701               .a = { ISL_UNORM, -1, 8 },
4702               .l = {},
4703               .i = {},
4704               .p = {},
4705     },
4706     .colorspace = ISL_COLORSPACE_SRGB,
4707     .txc = ISL_TXC_ASTC,
4708   },
4709 
4710   [ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB] = {
4711     .format = ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB,
4712     .name = "ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB",
4713     .bpb = 128,
4714     .bw = 10,
4715     .bh = 5,
4716     .bd = 1,
4717     .channels = {
4718               .r = { ISL_UNORM, -1, 8 },
4719               .g = { ISL_UNORM, -1, 8 },
4720               .b = { ISL_UNORM, -1, 8 },
4721               .a = { ISL_UNORM, -1, 8 },
4722               .l = {},
4723               .i = {},
4724               .p = {},
4725     },
4726     .colorspace = ISL_COLORSPACE_SRGB,
4727     .txc = ISL_TXC_ASTC,
4728   },
4729 
4730   [ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB] = {
4731     .format = ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB,
4732     .name = "ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB",
4733     .bpb = 128,
4734     .bw = 10,
4735     .bh = 6,
4736     .bd = 1,
4737     .channels = {
4738               .r = { ISL_UNORM, -1, 8 },
4739               .g = { ISL_UNORM, -1, 8 },
4740               .b = { ISL_UNORM, -1, 8 },
4741               .a = { ISL_UNORM, -1, 8 },
4742               .l = {},
4743               .i = {},
4744               .p = {},
4745     },
4746     .colorspace = ISL_COLORSPACE_SRGB,
4747     .txc = ISL_TXC_ASTC,
4748   },
4749 
4750   [ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB] = {
4751     .format = ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB,
4752     .name = "ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB",
4753     .bpb = 128,
4754     .bw = 10,
4755     .bh = 8,
4756     .bd = 1,
4757     .channels = {
4758               .r = { ISL_UNORM, -1, 8 },
4759               .g = { ISL_UNORM, -1, 8 },
4760               .b = { ISL_UNORM, -1, 8 },
4761               .a = { ISL_UNORM, -1, 8 },
4762               .l = {},
4763               .i = {},
4764               .p = {},
4765     },
4766     .colorspace = ISL_COLORSPACE_SRGB,
4767     .txc = ISL_TXC_ASTC,
4768   },
4769 
4770   [ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB] = {
4771     .format = ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB,
4772     .name = "ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB",
4773     .bpb = 128,
4774     .bw = 10,
4775     .bh = 10,
4776     .bd = 1,
4777     .channels = {
4778               .r = { ISL_UNORM, -1, 8 },
4779               .g = { ISL_UNORM, -1, 8 },
4780               .b = { ISL_UNORM, -1, 8 },
4781               .a = { ISL_UNORM, -1, 8 },
4782               .l = {},
4783               .i = {},
4784               .p = {},
4785     },
4786     .colorspace = ISL_COLORSPACE_SRGB,
4787     .txc = ISL_TXC_ASTC,
4788   },
4789 
4790   [ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB] = {
4791     .format = ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB,
4792     .name = "ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB",
4793     .bpb = 128,
4794     .bw = 12,
4795     .bh = 10,
4796     .bd = 1,
4797     .channels = {
4798               .r = { ISL_UNORM, -1, 8 },
4799               .g = { ISL_UNORM, -1, 8 },
4800               .b = { ISL_UNORM, -1, 8 },
4801               .a = { ISL_UNORM, -1, 8 },
4802               .l = {},
4803               .i = {},
4804               .p = {},
4805     },
4806     .colorspace = ISL_COLORSPACE_SRGB,
4807     .txc = ISL_TXC_ASTC,
4808   },
4809 
4810   [ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB] = {
4811     .format = ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB,
4812     .name = "ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB",
4813     .bpb = 128,
4814     .bw = 12,
4815     .bh = 12,
4816     .bd = 1,
4817     .channels = {
4818               .r = { ISL_UNORM, -1, 8 },
4819               .g = { ISL_UNORM, -1, 8 },
4820               .b = { ISL_UNORM, -1, 8 },
4821               .a = { ISL_UNORM, -1, 8 },
4822               .l = {},
4823               .i = {},
4824               .p = {},
4825     },
4826     .colorspace = ISL_COLORSPACE_SRGB,
4827     .txc = ISL_TXC_ASTC,
4828   },
4829 
4830   [ISL_FORMAT_ASTC_LDR_2D_4X4_FLT16] = {
4831     .format = ISL_FORMAT_ASTC_LDR_2D_4X4_FLT16,
4832     .name = "ISL_FORMAT_ASTC_LDR_2D_4X4_FLT16",
4833     .bpb = 128,
4834     .bw = 4,
4835     .bh = 4,
4836     .bd = 1,
4837     .channels = {
4838               .r = { ISL_SFLOAT, -1, 16 },
4839               .g = { ISL_SFLOAT, -1, 16 },
4840               .b = { ISL_SFLOAT, -1, 16 },
4841               .a = { ISL_SFLOAT, -1, 16 },
4842               .l = {},
4843               .i = {},
4844               .p = {},
4845     },
4846     .colorspace = ISL_COLORSPACE_LINEAR,
4847     .txc = ISL_TXC_ASTC,
4848   },
4849 
4850   [ISL_FORMAT_ASTC_LDR_2D_5X4_FLT16] = {
4851     .format = ISL_FORMAT_ASTC_LDR_2D_5X4_FLT16,
4852     .name = "ISL_FORMAT_ASTC_LDR_2D_5X4_FLT16",
4853     .bpb = 128,
4854     .bw = 5,
4855     .bh = 4,
4856     .bd = 1,
4857     .channels = {
4858               .r = { ISL_SFLOAT, -1, 16 },
4859               .g = { ISL_SFLOAT, -1, 16 },
4860               .b = { ISL_SFLOAT, -1, 16 },
4861               .a = { ISL_SFLOAT, -1, 16 },
4862               .l = {},
4863               .i = {},
4864               .p = {},
4865     },
4866     .colorspace = ISL_COLORSPACE_LINEAR,
4867     .txc = ISL_TXC_ASTC,
4868   },
4869 
4870   [ISL_FORMAT_ASTC_LDR_2D_5X5_FLT16] = {
4871     .format = ISL_FORMAT_ASTC_LDR_2D_5X5_FLT16,
4872     .name = "ISL_FORMAT_ASTC_LDR_2D_5X5_FLT16",
4873     .bpb = 128,
4874     .bw = 5,
4875     .bh = 5,
4876     .bd = 1,
4877     .channels = {
4878               .r = { ISL_SFLOAT, -1, 16 },
4879               .g = { ISL_SFLOAT, -1, 16 },
4880               .b = { ISL_SFLOAT, -1, 16 },
4881               .a = { ISL_SFLOAT, -1, 16 },
4882               .l = {},
4883               .i = {},
4884               .p = {},
4885     },
4886     .colorspace = ISL_COLORSPACE_LINEAR,
4887     .txc = ISL_TXC_ASTC,
4888   },
4889 
4890   [ISL_FORMAT_ASTC_LDR_2D_6X5_FLT16] = {
4891     .format = ISL_FORMAT_ASTC_LDR_2D_6X5_FLT16,
4892     .name = "ISL_FORMAT_ASTC_LDR_2D_6X5_FLT16",
4893     .bpb = 128,
4894     .bw = 6,
4895     .bh = 5,
4896     .bd = 1,
4897     .channels = {
4898               .r = { ISL_SFLOAT, -1, 16 },
4899               .g = { ISL_SFLOAT, -1, 16 },
4900               .b = { ISL_SFLOAT, -1, 16 },
4901               .a = { ISL_SFLOAT, -1, 16 },
4902               .l = {},
4903               .i = {},
4904               .p = {},
4905     },
4906     .colorspace = ISL_COLORSPACE_LINEAR,
4907     .txc = ISL_TXC_ASTC,
4908   },
4909 
4910   [ISL_FORMAT_ASTC_LDR_2D_6X6_FLT16] = {
4911     .format = ISL_FORMAT_ASTC_LDR_2D_6X6_FLT16,
4912     .name = "ISL_FORMAT_ASTC_LDR_2D_6X6_FLT16",
4913     .bpb = 128,
4914     .bw = 6,
4915     .bh = 6,
4916     .bd = 1,
4917     .channels = {
4918               .r = { ISL_SFLOAT, -1, 16 },
4919               .g = { ISL_SFLOAT, -1, 16 },
4920               .b = { ISL_SFLOAT, -1, 16 },
4921               .a = { ISL_SFLOAT, -1, 16 },
4922               .l = {},
4923               .i = {},
4924               .p = {},
4925     },
4926     .colorspace = ISL_COLORSPACE_LINEAR,
4927     .txc = ISL_TXC_ASTC,
4928   },
4929 
4930   [ISL_FORMAT_ASTC_LDR_2D_8X5_FLT16] = {
4931     .format = ISL_FORMAT_ASTC_LDR_2D_8X5_FLT16,
4932     .name = "ISL_FORMAT_ASTC_LDR_2D_8X5_FLT16",
4933     .bpb = 128,
4934     .bw = 8,
4935     .bh = 5,
4936     .bd = 1,
4937     .channels = {
4938               .r = { ISL_SFLOAT, -1, 16 },
4939               .g = { ISL_SFLOAT, -1, 16 },
4940               .b = { ISL_SFLOAT, -1, 16 },
4941               .a = { ISL_SFLOAT, -1, 16 },
4942               .l = {},
4943               .i = {},
4944               .p = {},
4945     },
4946     .colorspace = ISL_COLORSPACE_LINEAR,
4947     .txc = ISL_TXC_ASTC,
4948   },
4949 
4950   [ISL_FORMAT_ASTC_LDR_2D_8X6_FLT16] = {
4951     .format = ISL_FORMAT_ASTC_LDR_2D_8X6_FLT16,
4952     .name = "ISL_FORMAT_ASTC_LDR_2D_8X6_FLT16",
4953     .bpb = 128,
4954     .bw = 8,
4955     .bh = 6,
4956     .bd = 1,
4957     .channels = {
4958               .r = { ISL_SFLOAT, -1, 16 },
4959               .g = { ISL_SFLOAT, -1, 16 },
4960               .b = { ISL_SFLOAT, -1, 16 },
4961               .a = { ISL_SFLOAT, -1, 16 },
4962               .l = {},
4963               .i = {},
4964               .p = {},
4965     },
4966     .colorspace = ISL_COLORSPACE_LINEAR,
4967     .txc = ISL_TXC_ASTC,
4968   },
4969 
4970   [ISL_FORMAT_ASTC_LDR_2D_8X8_FLT16] = {
4971     .format = ISL_FORMAT_ASTC_LDR_2D_8X8_FLT16,
4972     .name = "ISL_FORMAT_ASTC_LDR_2D_8X8_FLT16",
4973     .bpb = 128,
4974     .bw = 8,
4975     .bh = 8,
4976     .bd = 1,
4977     .channels = {
4978               .r = { ISL_SFLOAT, -1, 16 },
4979               .g = { ISL_SFLOAT, -1, 16 },
4980               .b = { ISL_SFLOAT, -1, 16 },
4981               .a = { ISL_SFLOAT, -1, 16 },
4982               .l = {},
4983               .i = {},
4984               .p = {},
4985     },
4986     .colorspace = ISL_COLORSPACE_LINEAR,
4987     .txc = ISL_TXC_ASTC,
4988   },
4989 
4990   [ISL_FORMAT_ASTC_LDR_2D_10X5_FLT16] = {
4991     .format = ISL_FORMAT_ASTC_LDR_2D_10X5_FLT16,
4992     .name = "ISL_FORMAT_ASTC_LDR_2D_10X5_FLT16",
4993     .bpb = 128,
4994     .bw = 10,
4995     .bh = 5,
4996     .bd = 1,
4997     .channels = {
4998               .r = { ISL_SFLOAT, -1, 16 },
4999               .g = { ISL_SFLOAT, -1, 16 },
5000               .b = { ISL_SFLOAT, -1, 16 },
5001               .a = { ISL_SFLOAT, -1, 16 },
5002               .l = {},
5003               .i = {},
5004               .p = {},
5005     },
5006     .colorspace = ISL_COLORSPACE_LINEAR,
5007     .txc = ISL_TXC_ASTC,
5008   },
5009 
5010   [ISL_FORMAT_ASTC_LDR_2D_10X6_FLT16] = {
5011     .format = ISL_FORMAT_ASTC_LDR_2D_10X6_FLT16,
5012     .name = "ISL_FORMAT_ASTC_LDR_2D_10X6_FLT16",
5013     .bpb = 128,
5014     .bw = 10,
5015     .bh = 6,
5016     .bd = 1,
5017     .channels = {
5018               .r = { ISL_SFLOAT, -1, 16 },
5019               .g = { ISL_SFLOAT, -1, 16 },
5020               .b = { ISL_SFLOAT, -1, 16 },
5021               .a = { ISL_SFLOAT, -1, 16 },
5022               .l = {},
5023               .i = {},
5024               .p = {},
5025     },
5026     .colorspace = ISL_COLORSPACE_LINEAR,
5027     .txc = ISL_TXC_ASTC,
5028   },
5029 
5030   [ISL_FORMAT_ASTC_LDR_2D_10X8_FLT16] = {
5031     .format = ISL_FORMAT_ASTC_LDR_2D_10X8_FLT16,
5032     .name = "ISL_FORMAT_ASTC_LDR_2D_10X8_FLT16",
5033     .bpb = 128,
5034     .bw = 10,
5035     .bh = 8,
5036     .bd = 1,
5037     .channels = {
5038               .r = { ISL_SFLOAT, -1, 16 },
5039               .g = { ISL_SFLOAT, -1, 16 },
5040               .b = { ISL_SFLOAT, -1, 16 },
5041               .a = { ISL_SFLOAT, -1, 16 },
5042               .l = {},
5043               .i = {},
5044               .p = {},
5045     },
5046     .colorspace = ISL_COLORSPACE_LINEAR,
5047     .txc = ISL_TXC_ASTC,
5048   },
5049 
5050   [ISL_FORMAT_ASTC_LDR_2D_10X10_FLT16] = {
5051     .format = ISL_FORMAT_ASTC_LDR_2D_10X10_FLT16,
5052     .name = "ISL_FORMAT_ASTC_LDR_2D_10X10_FLT16",
5053     .bpb = 128,
5054     .bw = 10,
5055     .bh = 10,
5056     .bd = 1,
5057     .channels = {
5058               .r = { ISL_SFLOAT, -1, 16 },
5059               .g = { ISL_SFLOAT, -1, 16 },
5060               .b = { ISL_SFLOAT, -1, 16 },
5061               .a = { ISL_SFLOAT, -1, 16 },
5062               .l = {},
5063               .i = {},
5064               .p = {},
5065     },
5066     .colorspace = ISL_COLORSPACE_LINEAR,
5067     .txc = ISL_TXC_ASTC,
5068   },
5069 
5070   [ISL_FORMAT_ASTC_LDR_2D_12X10_FLT16] = {
5071     .format = ISL_FORMAT_ASTC_LDR_2D_12X10_FLT16,
5072     .name = "ISL_FORMAT_ASTC_LDR_2D_12X10_FLT16",
5073     .bpb = 128,
5074     .bw = 12,
5075     .bh = 10,
5076     .bd = 1,
5077     .channels = {
5078               .r = { ISL_SFLOAT, -1, 16 },
5079               .g = { ISL_SFLOAT, -1, 16 },
5080               .b = { ISL_SFLOAT, -1, 16 },
5081               .a = { ISL_SFLOAT, -1, 16 },
5082               .l = {},
5083               .i = {},
5084               .p = {},
5085     },
5086     .colorspace = ISL_COLORSPACE_LINEAR,
5087     .txc = ISL_TXC_ASTC,
5088   },
5089 
5090   [ISL_FORMAT_ASTC_LDR_2D_12X12_FLT16] = {
5091     .format = ISL_FORMAT_ASTC_LDR_2D_12X12_FLT16,
5092     .name = "ISL_FORMAT_ASTC_LDR_2D_12X12_FLT16",
5093     .bpb = 128,
5094     .bw = 12,
5095     .bh = 12,
5096     .bd = 1,
5097     .channels = {
5098               .r = { ISL_SFLOAT, -1, 16 },
5099               .g = { ISL_SFLOAT, -1, 16 },
5100               .b = { ISL_SFLOAT, -1, 16 },
5101               .a = { ISL_SFLOAT, -1, 16 },
5102               .l = {},
5103               .i = {},
5104               .p = {},
5105     },
5106     .colorspace = ISL_COLORSPACE_LINEAR,
5107     .txc = ISL_TXC_ASTC,
5108   },
5109 
5110   [ISL_FORMAT_ASTC_HDR_2D_4X4_FLT16] = {
5111     .format = ISL_FORMAT_ASTC_HDR_2D_4X4_FLT16,
5112     .name = "ISL_FORMAT_ASTC_HDR_2D_4X4_FLT16",
5113     .bpb = 128,
5114     .bw = 4,
5115     .bh = 4,
5116     .bd = 1,
5117     .channels = {
5118               .r = { ISL_SFLOAT, -1, 16 },
5119               .g = { ISL_SFLOAT, -1, 16 },
5120               .b = { ISL_SFLOAT, -1, 16 },
5121               .a = { ISL_SFLOAT, -1, 16 },
5122               .l = {},
5123               .i = {},
5124               .p = {},
5125     },
5126     .colorspace = ISL_COLORSPACE_LINEAR,
5127     .txc = ISL_TXC_ASTC,
5128   },
5129 
5130   [ISL_FORMAT_ASTC_HDR_2D_5X4_FLT16] = {
5131     .format = ISL_FORMAT_ASTC_HDR_2D_5X4_FLT16,
5132     .name = "ISL_FORMAT_ASTC_HDR_2D_5X4_FLT16",
5133     .bpb = 128,
5134     .bw = 5,
5135     .bh = 4,
5136     .bd = 1,
5137     .channels = {
5138               .r = { ISL_SFLOAT, -1, 16 },
5139               .g = { ISL_SFLOAT, -1, 16 },
5140               .b = { ISL_SFLOAT, -1, 16 },
5141               .a = { ISL_SFLOAT, -1, 16 },
5142               .l = {},
5143               .i = {},
5144               .p = {},
5145     },
5146     .colorspace = ISL_COLORSPACE_LINEAR,
5147     .txc = ISL_TXC_ASTC,
5148   },
5149 
5150   [ISL_FORMAT_ASTC_HDR_2D_5X5_FLT16] = {
5151     .format = ISL_FORMAT_ASTC_HDR_2D_5X5_FLT16,
5152     .name = "ISL_FORMAT_ASTC_HDR_2D_5X5_FLT16",
5153     .bpb = 128,
5154     .bw = 5,
5155     .bh = 5,
5156     .bd = 1,
5157     .channels = {
5158               .r = { ISL_SFLOAT, -1, 16 },
5159               .g = { ISL_SFLOAT, -1, 16 },
5160               .b = { ISL_SFLOAT, -1, 16 },
5161               .a = { ISL_SFLOAT, -1, 16 },
5162               .l = {},
5163               .i = {},
5164               .p = {},
5165     },
5166     .colorspace = ISL_COLORSPACE_LINEAR,
5167     .txc = ISL_TXC_ASTC,
5168   },
5169 
5170   [ISL_FORMAT_ASTC_HDR_2D_6X5_FLT16] = {
5171     .format = ISL_FORMAT_ASTC_HDR_2D_6X5_FLT16,
5172     .name = "ISL_FORMAT_ASTC_HDR_2D_6X5_FLT16",
5173     .bpb = 128,
5174     .bw = 6,
5175     .bh = 5,
5176     .bd = 1,
5177     .channels = {
5178               .r = { ISL_SFLOAT, -1, 16 },
5179               .g = { ISL_SFLOAT, -1, 16 },
5180               .b = { ISL_SFLOAT, -1, 16 },
5181               .a = { ISL_SFLOAT, -1, 16 },
5182               .l = {},
5183               .i = {},
5184               .p = {},
5185     },
5186     .colorspace = ISL_COLORSPACE_LINEAR,
5187     .txc = ISL_TXC_ASTC,
5188   },
5189 
5190   [ISL_FORMAT_ASTC_HDR_2D_6X6_FLT16] = {
5191     .format = ISL_FORMAT_ASTC_HDR_2D_6X6_FLT16,
5192     .name = "ISL_FORMAT_ASTC_HDR_2D_6X6_FLT16",
5193     .bpb = 128,
5194     .bw = 6,
5195     .bh = 6,
5196     .bd = 1,
5197     .channels = {
5198               .r = { ISL_SFLOAT, -1, 16 },
5199               .g = { ISL_SFLOAT, -1, 16 },
5200               .b = { ISL_SFLOAT, -1, 16 },
5201               .a = { ISL_SFLOAT, -1, 16 },
5202               .l = {},
5203               .i = {},
5204               .p = {},
5205     },
5206     .colorspace = ISL_COLORSPACE_LINEAR,
5207     .txc = ISL_TXC_ASTC,
5208   },
5209 
5210   [ISL_FORMAT_ASTC_HDR_2D_8X5_FLT16] = {
5211     .format = ISL_FORMAT_ASTC_HDR_2D_8X5_FLT16,
5212     .name = "ISL_FORMAT_ASTC_HDR_2D_8X5_FLT16",
5213     .bpb = 128,
5214     .bw = 8,
5215     .bh = 5,
5216     .bd = 1,
5217     .channels = {
5218               .r = { ISL_SFLOAT, -1, 16 },
5219               .g = { ISL_SFLOAT, -1, 16 },
5220               .b = { ISL_SFLOAT, -1, 16 },
5221               .a = { ISL_SFLOAT, -1, 16 },
5222               .l = {},
5223               .i = {},
5224               .p = {},
5225     },
5226     .colorspace = ISL_COLORSPACE_LINEAR,
5227     .txc = ISL_TXC_ASTC,
5228   },
5229 
5230   [ISL_FORMAT_ASTC_HDR_2D_8X6_FLT16] = {
5231     .format = ISL_FORMAT_ASTC_HDR_2D_8X6_FLT16,
5232     .name = "ISL_FORMAT_ASTC_HDR_2D_8X6_FLT16",
5233     .bpb = 128,
5234     .bw = 8,
5235     .bh = 6,
5236     .bd = 1,
5237     .channels = {
5238               .r = { ISL_SFLOAT, -1, 16 },
5239               .g = { ISL_SFLOAT, -1, 16 },
5240               .b = { ISL_SFLOAT, -1, 16 },
5241               .a = { ISL_SFLOAT, -1, 16 },
5242               .l = {},
5243               .i = {},
5244               .p = {},
5245     },
5246     .colorspace = ISL_COLORSPACE_LINEAR,
5247     .txc = ISL_TXC_ASTC,
5248   },
5249 
5250   [ISL_FORMAT_ASTC_HDR_2D_8X8_FLT16] = {
5251     .format = ISL_FORMAT_ASTC_HDR_2D_8X8_FLT16,
5252     .name = "ISL_FORMAT_ASTC_HDR_2D_8X8_FLT16",
5253     .bpb = 128,
5254     .bw = 8,
5255     .bh = 8,
5256     .bd = 1,
5257     .channels = {
5258               .r = { ISL_SFLOAT, -1, 16 },
5259               .g = { ISL_SFLOAT, -1, 16 },
5260               .b = { ISL_SFLOAT, -1, 16 },
5261               .a = { ISL_SFLOAT, -1, 16 },
5262               .l = {},
5263               .i = {},
5264               .p = {},
5265     },
5266     .colorspace = ISL_COLORSPACE_LINEAR,
5267     .txc = ISL_TXC_ASTC,
5268   },
5269 
5270   [ISL_FORMAT_ASTC_HDR_2D_10X5_FLT16] = {
5271     .format = ISL_FORMAT_ASTC_HDR_2D_10X5_FLT16,
5272     .name = "ISL_FORMAT_ASTC_HDR_2D_10X5_FLT16",
5273     .bpb = 128,
5274     .bw = 10,
5275     .bh = 5,
5276     .bd = 1,
5277     .channels = {
5278               .r = { ISL_SFLOAT, -1, 16 },
5279               .g = { ISL_SFLOAT, -1, 16 },
5280               .b = { ISL_SFLOAT, -1, 16 },
5281               .a = { ISL_SFLOAT, -1, 16 },
5282               .l = {},
5283               .i = {},
5284               .p = {},
5285     },
5286     .colorspace = ISL_COLORSPACE_LINEAR,
5287     .txc = ISL_TXC_ASTC,
5288   },
5289 
5290   [ISL_FORMAT_ASTC_HDR_2D_10X6_FLT16] = {
5291     .format = ISL_FORMAT_ASTC_HDR_2D_10X6_FLT16,
5292     .name = "ISL_FORMAT_ASTC_HDR_2D_10X6_FLT16",
5293     .bpb = 128,
5294     .bw = 10,
5295     .bh = 6,
5296     .bd = 1,
5297     .channels = {
5298               .r = { ISL_SFLOAT, -1, 16 },
5299               .g = { ISL_SFLOAT, -1, 16 },
5300               .b = { ISL_SFLOAT, -1, 16 },
5301               .a = { ISL_SFLOAT, -1, 16 },
5302               .l = {},
5303               .i = {},
5304               .p = {},
5305     },
5306     .colorspace = ISL_COLORSPACE_LINEAR,
5307     .txc = ISL_TXC_ASTC,
5308   },
5309 
5310   [ISL_FORMAT_ASTC_HDR_2D_10X8_FLT16] = {
5311     .format = ISL_FORMAT_ASTC_HDR_2D_10X8_FLT16,
5312     .name = "ISL_FORMAT_ASTC_HDR_2D_10X8_FLT16",
5313     .bpb = 128,
5314     .bw = 10,
5315     .bh = 8,
5316     .bd = 1,
5317     .channels = {
5318               .r = { ISL_SFLOAT, -1, 16 },
5319               .g = { ISL_SFLOAT, -1, 16 },
5320               .b = { ISL_SFLOAT, -1, 16 },
5321               .a = { ISL_SFLOAT, -1, 16 },
5322               .l = {},
5323               .i = {},
5324               .p = {},
5325     },
5326     .colorspace = ISL_COLORSPACE_LINEAR,
5327     .txc = ISL_TXC_ASTC,
5328   },
5329 
5330   [ISL_FORMAT_ASTC_HDR_2D_10X10_FLT16] = {
5331     .format = ISL_FORMAT_ASTC_HDR_2D_10X10_FLT16,
5332     .name = "ISL_FORMAT_ASTC_HDR_2D_10X10_FLT16",
5333     .bpb = 128,
5334     .bw = 10,
5335     .bh = 10,
5336     .bd = 1,
5337     .channels = {
5338               .r = { ISL_SFLOAT, -1, 16 },
5339               .g = { ISL_SFLOAT, -1, 16 },
5340               .b = { ISL_SFLOAT, -1, 16 },
5341               .a = { ISL_SFLOAT, -1, 16 },
5342               .l = {},
5343               .i = {},
5344               .p = {},
5345     },
5346     .colorspace = ISL_COLORSPACE_LINEAR,
5347     .txc = ISL_TXC_ASTC,
5348   },
5349 
5350   [ISL_FORMAT_ASTC_HDR_2D_12X10_FLT16] = {
5351     .format = ISL_FORMAT_ASTC_HDR_2D_12X10_FLT16,
5352     .name = "ISL_FORMAT_ASTC_HDR_2D_12X10_FLT16",
5353     .bpb = 128,
5354     .bw = 12,
5355     .bh = 10,
5356     .bd = 1,
5357     .channels = {
5358               .r = { ISL_SFLOAT, -1, 16 },
5359               .g = { ISL_SFLOAT, -1, 16 },
5360               .b = { ISL_SFLOAT, -1, 16 },
5361               .a = { ISL_SFLOAT, -1, 16 },
5362               .l = {},
5363               .i = {},
5364               .p = {},
5365     },
5366     .colorspace = ISL_COLORSPACE_LINEAR,
5367     .txc = ISL_TXC_ASTC,
5368   },
5369 
5370   [ISL_FORMAT_ASTC_HDR_2D_12X12_FLT16] = {
5371     .format = ISL_FORMAT_ASTC_HDR_2D_12X12_FLT16,
5372     .name = "ISL_FORMAT_ASTC_HDR_2D_12X12_FLT16",
5373     .bpb = 128,
5374     .bw = 12,
5375     .bh = 12,
5376     .bd = 1,
5377     .channels = {
5378               .r = { ISL_SFLOAT, -1, 16 },
5379               .g = { ISL_SFLOAT, -1, 16 },
5380               .b = { ISL_SFLOAT, -1, 16 },
5381               .a = { ISL_SFLOAT, -1, 16 },
5382               .l = {},
5383               .i = {},
5384               .p = {},
5385     },
5386     .colorspace = ISL_COLORSPACE_LINEAR,
5387     .txc = ISL_TXC_ASTC,
5388   },
5389 
5390   [ISL_FORMAT_HIZ] = {
5391     .format = ISL_FORMAT_HIZ,
5392     .name = "ISL_FORMAT_HIZ",
5393     .bpb = 128,
5394     .bw = 8,
5395     .bh = 4,
5396     .bd = 1,
5397     .channels = {
5398               .r = {},
5399               .g = {},
5400               .b = {},
5401               .a = {},
5402               .l = {},
5403               .i = {},
5404               .p = {},
5405     },
5406     .colorspace = ISL_COLORSPACE_NONE,
5407     .txc = ISL_TXC_HIZ,
5408   },
5409 
5410   [ISL_FORMAT_MCS_2X] = {
5411     .format = ISL_FORMAT_MCS_2X,
5412     .name = "ISL_FORMAT_MCS_2X",
5413     .bpb = 8,
5414     .bw = 1,
5415     .bh = 1,
5416     .bd = 1,
5417     .channels = {
5418               .r = {},
5419               .g = {},
5420               .b = {},
5421               .a = {},
5422               .l = {},
5423               .i = {},
5424               .p = {},
5425     },
5426     .colorspace = ISL_COLORSPACE_NONE,
5427     .txc = ISL_TXC_MCS,
5428   },
5429 
5430   [ISL_FORMAT_MCS_4X] = {
5431     .format = ISL_FORMAT_MCS_4X,
5432     .name = "ISL_FORMAT_MCS_4X",
5433     .bpb = 8,
5434     .bw = 1,
5435     .bh = 1,
5436     .bd = 1,
5437     .channels = {
5438               .r = {},
5439               .g = {},
5440               .b = {},
5441               .a = {},
5442               .l = {},
5443               .i = {},
5444               .p = {},
5445     },
5446     .colorspace = ISL_COLORSPACE_NONE,
5447     .txc = ISL_TXC_MCS,
5448   },
5449 
5450   [ISL_FORMAT_MCS_8X] = {
5451     .format = ISL_FORMAT_MCS_8X,
5452     .name = "ISL_FORMAT_MCS_8X",
5453     .bpb = 32,
5454     .bw = 1,
5455     .bh = 1,
5456     .bd = 1,
5457     .channels = {
5458               .r = {},
5459               .g = {},
5460               .b = {},
5461               .a = {},
5462               .l = {},
5463               .i = {},
5464               .p = {},
5465     },
5466     .colorspace = ISL_COLORSPACE_NONE,
5467     .txc = ISL_TXC_MCS,
5468   },
5469 
5470   [ISL_FORMAT_MCS_16X] = {
5471     .format = ISL_FORMAT_MCS_16X,
5472     .name = "ISL_FORMAT_MCS_16X",
5473     .bpb = 64,
5474     .bw = 1,
5475     .bh = 1,
5476     .bd = 1,
5477     .channels = {
5478               .r = {},
5479               .g = {},
5480               .b = {},
5481               .a = {},
5482               .l = {},
5483               .i = {},
5484               .p = {},
5485     },
5486     .colorspace = ISL_COLORSPACE_NONE,
5487     .txc = ISL_TXC_MCS,
5488   },
5489 
5490   [ISL_FORMAT_GEN7_CCS_32BPP_X] = {
5491     .format = ISL_FORMAT_GEN7_CCS_32BPP_X,
5492     .name = "ISL_FORMAT_GEN7_CCS_32BPP_X",
5493     .bpb = 1,
5494     .bw = 16,
5495     .bh = 2,
5496     .bd = 1,
5497     .channels = {
5498               .r = {},
5499               .g = {},
5500               .b = {},
5501               .a = {},
5502               .l = {},
5503               .i = {},
5504               .p = {},
5505     },
5506     .colorspace = ISL_COLORSPACE_NONE,
5507     .txc = ISL_TXC_CCS,
5508   },
5509 
5510   [ISL_FORMAT_GEN7_CCS_64BPP_X] = {
5511     .format = ISL_FORMAT_GEN7_CCS_64BPP_X,
5512     .name = "ISL_FORMAT_GEN7_CCS_64BPP_X",
5513     .bpb = 1,
5514     .bw = 8,
5515     .bh = 2,
5516     .bd = 1,
5517     .channels = {
5518               .r = {},
5519               .g = {},
5520               .b = {},
5521               .a = {},
5522               .l = {},
5523               .i = {},
5524               .p = {},
5525     },
5526     .colorspace = ISL_COLORSPACE_NONE,
5527     .txc = ISL_TXC_CCS,
5528   },
5529 
5530   [ISL_FORMAT_GEN7_CCS_128BPP_X] = {
5531     .format = ISL_FORMAT_GEN7_CCS_128BPP_X,
5532     .name = "ISL_FORMAT_GEN7_CCS_128BPP_X",
5533     .bpb = 1,
5534     .bw = 4,
5535     .bh = 2,
5536     .bd = 1,
5537     .channels = {
5538               .r = {},
5539               .g = {},
5540               .b = {},
5541               .a = {},
5542               .l = {},
5543               .i = {},
5544               .p = {},
5545     },
5546     .colorspace = ISL_COLORSPACE_NONE,
5547     .txc = ISL_TXC_CCS,
5548   },
5549 
5550   [ISL_FORMAT_GEN7_CCS_32BPP_Y] = {
5551     .format = ISL_FORMAT_GEN7_CCS_32BPP_Y,
5552     .name = "ISL_FORMAT_GEN7_CCS_32BPP_Y",
5553     .bpb = 1,
5554     .bw = 8,
5555     .bh = 4,
5556     .bd = 1,
5557     .channels = {
5558               .r = {},
5559               .g = {},
5560               .b = {},
5561               .a = {},
5562               .l = {},
5563               .i = {},
5564               .p = {},
5565     },
5566     .colorspace = ISL_COLORSPACE_NONE,
5567     .txc = ISL_TXC_CCS,
5568   },
5569 
5570   [ISL_FORMAT_GEN7_CCS_64BPP_Y] = {
5571     .format = ISL_FORMAT_GEN7_CCS_64BPP_Y,
5572     .name = "ISL_FORMAT_GEN7_CCS_64BPP_Y",
5573     .bpb = 1,
5574     .bw = 4,
5575     .bh = 4,
5576     .bd = 1,
5577     .channels = {
5578               .r = {},
5579               .g = {},
5580               .b = {},
5581               .a = {},
5582               .l = {},
5583               .i = {},
5584               .p = {},
5585     },
5586     .colorspace = ISL_COLORSPACE_NONE,
5587     .txc = ISL_TXC_CCS,
5588   },
5589 
5590   [ISL_FORMAT_GEN7_CCS_128BPP_Y] = {
5591     .format = ISL_FORMAT_GEN7_CCS_128BPP_Y,
5592     .name = "ISL_FORMAT_GEN7_CCS_128BPP_Y",
5593     .bpb = 1,
5594     .bw = 2,
5595     .bh = 4,
5596     .bd = 1,
5597     .channels = {
5598               .r = {},
5599               .g = {},
5600               .b = {},
5601               .a = {},
5602               .l = {},
5603               .i = {},
5604               .p = {},
5605     },
5606     .colorspace = ISL_COLORSPACE_NONE,
5607     .txc = ISL_TXC_CCS,
5608   },
5609 
5610   [ISL_FORMAT_GEN9_CCS_32BPP] = {
5611     .format = ISL_FORMAT_GEN9_CCS_32BPP,
5612     .name = "ISL_FORMAT_GEN9_CCS_32BPP",
5613     .bpb = 2,
5614     .bw = 8,
5615     .bh = 4,
5616     .bd = 1,
5617     .channels = {
5618               .r = {},
5619               .g = {},
5620               .b = {},
5621               .a = {},
5622               .l = {},
5623               .i = {},
5624               .p = {},
5625     },
5626     .colorspace = ISL_COLORSPACE_NONE,
5627     .txc = ISL_TXC_CCS,
5628   },
5629 
5630   [ISL_FORMAT_GEN9_CCS_64BPP] = {
5631     .format = ISL_FORMAT_GEN9_CCS_64BPP,
5632     .name = "ISL_FORMAT_GEN9_CCS_64BPP",
5633     .bpb = 2,
5634     .bw = 4,
5635     .bh = 4,
5636     .bd = 1,
5637     .channels = {
5638               .r = {},
5639               .g = {},
5640               .b = {},
5641               .a = {},
5642               .l = {},
5643               .i = {},
5644               .p = {},
5645     },
5646     .colorspace = ISL_COLORSPACE_NONE,
5647     .txc = ISL_TXC_CCS,
5648   },
5649 
5650   [ISL_FORMAT_GEN9_CCS_128BPP] = {
5651     .format = ISL_FORMAT_GEN9_CCS_128BPP,
5652     .name = "ISL_FORMAT_GEN9_CCS_128BPP",
5653     .bpb = 2,
5654     .bw = 2,
5655     .bh = 4,
5656     .bd = 1,
5657     .channels = {
5658               .r = {},
5659               .g = {},
5660               .b = {},
5661               .a = {},
5662               .l = {},
5663               .i = {},
5664               .p = {},
5665     },
5666     .colorspace = ISL_COLORSPACE_NONE,
5667     .txc = ISL_TXC_CCS,
5668   },
5669 
5670   [ISL_FORMAT_GEN12_CCS_8BPP_Y0] = {
5671     .format = ISL_FORMAT_GEN12_CCS_8BPP_Y0,
5672     .name = "ISL_FORMAT_GEN12_CCS_8BPP_Y0",
5673     .bpb = 4,
5674     .bw = 32,
5675     .bh = 4,
5676     .bd = 1,
5677     .channels = {
5678               .r = {},
5679               .g = {},
5680               .b = {},
5681               .a = {},
5682               .l = {},
5683               .i = {},
5684               .p = {},
5685     },
5686     .colorspace = ISL_COLORSPACE_NONE,
5687     .txc = ISL_TXC_CCS,
5688   },
5689 
5690   [ISL_FORMAT_GEN12_CCS_16BPP_Y0] = {
5691     .format = ISL_FORMAT_GEN12_CCS_16BPP_Y0,
5692     .name = "ISL_FORMAT_GEN12_CCS_16BPP_Y0",
5693     .bpb = 4,
5694     .bw = 16,
5695     .bh = 4,
5696     .bd = 1,
5697     .channels = {
5698               .r = {},
5699               .g = {},
5700               .b = {},
5701               .a = {},
5702               .l = {},
5703               .i = {},
5704               .p = {},
5705     },
5706     .colorspace = ISL_COLORSPACE_NONE,
5707     .txc = ISL_TXC_CCS,
5708   },
5709 
5710   [ISL_FORMAT_GEN12_CCS_32BPP_Y0] = {
5711     .format = ISL_FORMAT_GEN12_CCS_32BPP_Y0,
5712     .name = "ISL_FORMAT_GEN12_CCS_32BPP_Y0",
5713     .bpb = 4,
5714     .bw = 8,
5715     .bh = 4,
5716     .bd = 1,
5717     .channels = {
5718               .r = {},
5719               .g = {},
5720               .b = {},
5721               .a = {},
5722               .l = {},
5723               .i = {},
5724               .p = {},
5725     },
5726     .colorspace = ISL_COLORSPACE_NONE,
5727     .txc = ISL_TXC_CCS,
5728   },
5729 
5730   [ISL_FORMAT_GEN12_CCS_64BPP_Y0] = {
5731     .format = ISL_FORMAT_GEN12_CCS_64BPP_Y0,
5732     .name = "ISL_FORMAT_GEN12_CCS_64BPP_Y0",
5733     .bpb = 4,
5734     .bw = 4,
5735     .bh = 4,
5736     .bd = 1,
5737     .channels = {
5738               .r = {},
5739               .g = {},
5740               .b = {},
5741               .a = {},
5742               .l = {},
5743               .i = {},
5744               .p = {},
5745     },
5746     .colorspace = ISL_COLORSPACE_NONE,
5747     .txc = ISL_TXC_CCS,
5748   },
5749 
5750   [ISL_FORMAT_GEN12_CCS_128BPP_Y0] = {
5751     .format = ISL_FORMAT_GEN12_CCS_128BPP_Y0,
5752     .name = "ISL_FORMAT_GEN12_CCS_128BPP_Y0",
5753     .bpb = 4,
5754     .bw = 2,
5755     .bh = 4,
5756     .bd = 1,
5757     .channels = {
5758               .r = {},
5759               .g = {},
5760               .b = {},
5761               .a = {},
5762               .l = {},
5763               .i = {},
5764               .p = {},
5765     },
5766     .colorspace = ISL_COLORSPACE_NONE,
5767     .txc = ISL_TXC_CCS,
5768   },
5769 
5770 };
5771 
5772 bool
isl_format_is_valid(enum isl_format format)5773 isl_format_is_valid(enum isl_format format)
5774 {
5775     if (format >= sizeof(isl_format_layouts) / sizeof(isl_format_layouts[0]))
5776         return false;
5777     return isl_format_layouts[format].name;
5778 }
5779 
5780 enum isl_format
isl_format_srgb_to_linear(enum isl_format format)5781 isl_format_srgb_to_linear(enum isl_format format)
5782 {
5783     switch (format) {
5784     case ISL_FORMAT_B8G8R8A8_UNORM_SRGB:
5785         return ISL_FORMAT_B8G8R8A8_UNORM;
5786     case ISL_FORMAT_R10G10B10A2_UNORM_SRGB:
5787         return ISL_FORMAT_R10G10B10A2_UNORM;
5788     case ISL_FORMAT_R8G8B8A8_UNORM_SRGB:
5789         return ISL_FORMAT_R8G8B8A8_UNORM;
5790     case ISL_FORMAT_B10G10R10A2_UNORM_SRGB:
5791         return ISL_FORMAT_B10G10R10A2_UNORM;
5792     case ISL_FORMAT_B8G8R8X8_UNORM_SRGB:
5793         return ISL_FORMAT_B8G8R8X8_UNORM;
5794     case ISL_FORMAT_R8G8B8X8_UNORM_SRGB:
5795         return ISL_FORMAT_R8G8B8X8_UNORM;
5796     case ISL_FORMAT_B5G6R5_UNORM_SRGB:
5797         return ISL_FORMAT_B5G6R5_UNORM;
5798     case ISL_FORMAT_B5G5R5A1_UNORM_SRGB:
5799         return ISL_FORMAT_B5G5R5A1_UNORM;
5800     case ISL_FORMAT_B4G4R4A4_UNORM_SRGB:
5801         return ISL_FORMAT_B4G4R4A4_UNORM;
5802     case ISL_FORMAT_L8A8_UNORM_SRGB:
5803         return ISL_FORMAT_L8A8_UNORM;
5804     case ISL_FORMAT_B5G5R5X1_UNORM_SRGB:
5805         return ISL_FORMAT_B5G5R5X1_UNORM;
5806     case ISL_FORMAT_L8_UNORM_SRGB:
5807         return ISL_FORMAT_L8_UNORM;
5808     case ISL_FORMAT_DXT1_RGB_SRGB:
5809         return ISL_FORMAT_DXT1_RGB;
5810     case ISL_FORMAT_BC1_UNORM_SRGB:
5811         return ISL_FORMAT_BC1_UNORM;
5812     case ISL_FORMAT_BC2_UNORM_SRGB:
5813         return ISL_FORMAT_BC2_UNORM;
5814     case ISL_FORMAT_BC3_UNORM_SRGB:
5815         return ISL_FORMAT_BC3_UNORM;
5816     case ISL_FORMAT_BC7_UNORM_SRGB:
5817         return ISL_FORMAT_BC7_UNORM;
5818     case ISL_FORMAT_R8G8B8_UNORM_SRGB:
5819         return ISL_FORMAT_R8G8B8_UNORM;
5820     case ISL_FORMAT_ETC2_SRGB8:
5821         return ISL_FORMAT_ETC2_RGB8;
5822     case ISL_FORMAT_ETC2_SRGB8_PTA:
5823         return ISL_FORMAT_ETC2_RGB8_PTA;
5824     case ISL_FORMAT_ETC2_EAC_SRGB8_A8:
5825         return ISL_FORMAT_ETC2_EAC_SRGB8_A8;
5826     case ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB:
5827         return ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB;
5828     case ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB:
5829         return ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB;
5830     case ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB:
5831         return ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB;
5832     case ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB:
5833         return ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB;
5834     case ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB:
5835         return ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB;
5836     case ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB:
5837         return ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB;
5838     case ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB:
5839         return ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB;
5840     case ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB:
5841         return ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB;
5842     case ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB:
5843         return ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB;
5844     case ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB:
5845         return ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB;
5846     case ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB:
5847         return ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB;
5848     case ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB:
5849         return ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB;
5850     case ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB:
5851         return ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB;
5852     case ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB:
5853         return ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB;
5854     default:
5855         return format;
5856     }
5857 }
5858