xref: /aosp_15_r20/external/mesa3d/src/util/format/u_format.yaml (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1# This document describes Mesa's supported pipe_formats as a YAML document,
2# with one list entry per format.
3#
4# When adding new format entries, enum pipe_format in
5# src/util/format/u_formats.h must be updated along with it.
6#
7# These formats are the main descriptions used for drivers, and should uniquely
8# describe a format without the need for any annotation. The only difference
9# is DRM format modifiers, which are used to describe differences in the
10# storage (e.g. tiled and/or compressed).
11#
12# These do not correspond one-to-one to GL formats or internalformats.
13#
14# Each format entry contains:
15# - name, per enum pipe_format
16# - layout, per enum util_format_layout, in shortened lower caps
17# - sublayout, to distinguish between meaningfully-different layout variants
18# - pixel block's width
19# - pixel block's height
20# - pixel block's depth, in number of pixels
21# - channel encoding (only meaningful for plain layout), containing for each
22#   channel the following information:
23#   - type, one of
24#     - 'x': void
25#     - 'u': unsigned
26#     - 's': signed
27#     - 'h': fixed
28#     - 'f': FLOAT
29#   - optionally followed by 'n' if it is normalized
30#   - optionally followed by 'p' if it is pure
31#   - number of bits
32# - channel swizzle
33# - color space: rgb, srgb, yuv, zs
34#
35# The channel encoding and swizzle may be defined separately for little-endian
36# and big-endian hosts when using a packed (non-array/bitmask) format.
37
38# None
39# Described as regular uint_8 bytes, i.e. PIPE_FORMAT_R8_USCALED
40- name: NONE
41  layout: plain
42  colorspace: RGB
43  block: {width: 1, height: 1, depth: 1}
44  channels: [U8]
45  swizzles: [X, 0, 0, 1]
46
47
48# Typical rendertarget formats
49- name: B8G8R8A8_UNORM
50  layout: plain
51  colorspace: RGB
52  block: {width: 1, height: 1, depth: 1}
53  channels: [UN8, UN8, UN8, UN8]
54  swizzles: [Z, Y, X, W]
55  little_endian:
56    alias: BGRA8888_UNORM
57  big_endian:
58    alias: ARGB8888_UNORM
59- name: B8G8R8X8_UNORM
60  layout: plain
61  colorspace: RGB
62  block: {width: 1, height: 1, depth: 1}
63  channels: [UN8, UN8, UN8, X8]
64  swizzles: [Z, Y, X, 1]
65  little_endian:
66    alias: BGRX8888_UNORM
67  big_endian:
68    alias: XRGB8888_UNORM
69- name: B8G8R8X8_SNORM
70  layout: plain
71  colorspace: RGB
72  block: {width: 1, height: 1, depth: 1}
73  channels: [SN8, SN8, SN8, X8]
74  swizzles: [Z, Y, X, 1]
75- name: B8G8R8X8_UINT
76  layout: plain
77  colorspace: RGB
78  block: {width: 1, height: 1, depth: 1}
79  channels: [UP8, UP8, UP8, X8]
80  swizzles: [Z, Y, X, 1]
81- name: B8G8R8X8_SINT
82  layout: plain
83  colorspace: RGB
84  block: {width: 1, height: 1, depth: 1}
85  channels: [SP8, SP8, SP8, X8]
86  swizzles: [Z, Y, X, 1]
87- name: A8R8G8B8_UNORM
88  layout: plain
89  colorspace: RGB
90  block: {width: 1, height: 1, depth: 1}
91  channels: [UN8, UN8, UN8, UN8]
92  swizzles: [Y, Z, W, X]
93  little_endian:
94    alias: ARGB8888_UNORM
95  big_endian:
96    alias: BGRA8888_UNORM
97- name: A8R8G8B8_SNORM
98  layout: plain
99  colorspace: RGB
100  block: {width: 1, height: 1, depth: 1}
101  channels: [SN8, SN8, SN8, SN8]
102  swizzles: [Y, Z, W, X]
103- name: A8R8G8B8_SINT
104  layout: plain
105  colorspace: RGB
106  block: {width: 1, height: 1, depth: 1}
107  channels: [SP8, SP8, SP8, SP8]
108  swizzles: [Y, Z, W, X]
109- name: X8R8G8B8_UNORM
110  layout: plain
111  colorspace: RGB
112  block: {width: 1, height: 1, depth: 1}
113  channels: [X8, UN8, UN8, UN8]
114  swizzles: [Y, Z, W, 1]
115  little_endian:
116    alias: XRGB8888_UNORM
117  big_endian:
118    alias: BGRX8888_UNORM
119- name: X8R8G8B8_SNORM
120  layout: plain
121  colorspace: RGB
122  block: {width: 1, height: 1, depth: 1}
123  channels: [X8, SN8, SN8, SN8]
124  swizzles: [Y, Z, W, 1]
125- name: X8R8G8B8_SINT
126  layout: plain
127  colorspace: RGB
128  block: {width: 1, height: 1, depth: 1}
129  channels: [X8, SP8, SP8, SP8]
130  swizzles: [Y, Z, W, 1]
131- name: A8B8G8R8_UNORM
132  layout: plain
133  colorspace: RGB
134  block: {width: 1, height: 1, depth: 1}
135  channels: [UN8, UN8, UN8, UN8]
136  swizzles: [W, Z, Y, X]
137  little_endian:
138    alias: ABGR8888_UNORM
139  big_endian:
140    alias: RGBA8888_UNORM
141- name: X8B8G8R8_UNORM
142  layout: plain
143  colorspace: RGB
144  block: {width: 1, height: 1, depth: 1}
145  channels: [X8, UN8, UN8, UN8]
146  swizzles: [W, Z, Y, 1]
147  little_endian:
148    alias: XBGR8888_UNORM
149  big_endian:
150    alias: RGBX8888_UNORM
151# PIPE_FORMAT_R8G8B8A8_UNORM is below
152- name: R8G8B8X8_UNORM
153  layout: plain
154  colorspace: RGB
155  block: {width: 1, height: 1, depth: 1}
156  channels: [UN8, UN8, UN8, X8]
157  swizzles: [X, Y, Z, 1]
158  little_endian:
159    alias: RGBX8888_UNORM
160  big_endian:
161    alias: XBGR8888_UNORM
162- name: R5G5B5A1_UNORM
163  layout: plain
164  colorspace: RGB
165  block: {width: 1, height: 1, depth: 1}
166  channels: [UN5, UN5, UN5, UN1]
167  swizzles: [X, Y, Z, W]
168- name: R5G5B5X1_UNORM
169  layout: plain
170  colorspace: RGB
171  block: {width: 1, height: 1, depth: 1}
172  channels: [UN5, UN5, UN5, X1]
173  swizzles: [X, Y, Z, 1]
174- name: B5G5R5X1_UNORM
175  layout: plain
176  colorspace: RGB
177  block: {width: 1, height: 1, depth: 1}
178  channels: [UN5, UN5, UN5, X1]
179  swizzles: [Z, Y, X, 1]
180- name: B5G5R5A1_UNORM
181  layout: plain
182  colorspace: RGB
183  block: {width: 1, height: 1, depth: 1}
184  channels: [UN5, UN5, UN5, UN1]
185  swizzles: [Z, Y, X, W]
186- name: X1B5G5R5_UNORM
187  layout: plain
188  colorspace: RGB
189  block: {width: 1, height: 1, depth: 1}
190  channels: [X1, UN5, UN5, UN5]
191  swizzles: [W, Z, Y, 1]
192- name: A1R5G5B5_UNORM
193  layout: plain
194  colorspace: RGB
195  block: {width: 1, height: 1, depth: 1}
196  channels: [UN1, UN5, UN5, UN5]
197  swizzles: [Y, Z, W, X]
198- name: X1R5G5B5_UNORM
199  layout: plain
200  colorspace: RGB
201  block: {width: 1, height: 1, depth: 1}
202  channels: [X1, UN5, UN5, UN5]
203  swizzles: [Y, Z, W, 1]
204- name: A1B5G5R5_UNORM
205  layout: plain
206  colorspace: RGB
207  block: {width: 1, height: 1, depth: 1}
208  channels: [UN1, UN5, UN5, UN5]
209  swizzles: [W, Z, Y, X]
210- name: R4G4B4A4_UNORM
211  layout: plain
212  colorspace: RGB
213  block: {width: 1, height: 1, depth: 1}
214  channels: [UN4, UN4, UN4, UN4]
215  swizzles: [X, Y, Z, W]
216- name: R4G4B4X4_UNORM
217  layout: plain
218  colorspace: RGB
219  block: {width: 1, height: 1, depth: 1}
220  channels: [UN4, UN4, UN4, X4]
221  swizzles: [X, Y, Z, 1]
222- name: B4G4R4A4_UNORM
223  layout: plain
224  colorspace: RGB
225  block: {width: 1, height: 1, depth: 1}
226  channels: [UN4, UN4, UN4, UN4]
227  swizzles: [Z, Y, X, W]
228- name: B4G4R4X4_UNORM
229  layout: plain
230  colorspace: RGB
231  block: {width: 1, height: 1, depth: 1}
232  channels: [UN4, UN4, UN4, X4]
233  swizzles: [Z, Y, X, 1]
234- name: A4R4G4B4_UNORM
235  layout: plain
236  colorspace: RGB
237  block: {width: 1, height: 1, depth: 1}
238  channels: [UN4, UN4, UN4, UN4]
239  swizzles: [Y, Z, W, X]
240- name: A4B4G4R4_UNORM
241  layout: plain
242  colorspace: RGB
243  block: {width: 1, height: 1, depth: 1}
244  channels: [UN4, UN4, UN4, UN4]
245  swizzles: [W, Z, Y, X]
246- name: R5G6B5_UNORM
247  layout: plain
248  colorspace: RGB
249  block: {width: 1, height: 1, depth: 1}
250  channels: [UN5, UN6, UN5]
251  swizzles: [X, Y, Z, 1]
252- name: B5G6R5_UNORM
253  layout: plain
254  colorspace: RGB
255  block: {width: 1, height: 1, depth: 1}
256  channels: [UN5, UN6, UN5]
257  swizzles: [Z, Y, X, 1]
258- name: R10G10B10A2_UNORM
259  layout: plain
260  colorspace: RGB
261  block: {width: 1, height: 1, depth: 1}
262  channels: [UN10, UN10, UN10, UN2]
263  swizzles: [X, Y, Z, W]
264- name: R10G10B10X2_UNORM
265  layout: plain
266  colorspace: RGB
267  block: {width: 1, height: 1, depth: 1}
268  channels: [UN10, UN10, UN10, X2]
269  swizzles: [X, Y, Z, 1]
270- name: B10G10R10A2_UNORM
271  layout: plain
272  colorspace: RGB
273  block: {width: 1, height: 1, depth: 1}
274  channels: [UN10, UN10, UN10, UN2]
275  swizzles: [Z, Y, X, W]
276- name: A2R10G10B10_UNORM
277  layout: plain
278  colorspace: RGB
279  block: {width: 1, height: 1, depth: 1}
280  channels: [UN2, UN10, UN10, UN10]
281  swizzles: [Y, Z, W, X]
282- name: A2B10G10R10_UNORM
283  layout: plain
284  colorspace: RGB
285  block: {width: 1, height: 1, depth: 1}
286  channels: [UN2, UN10, UN10, UN10]
287  swizzles: [W, Z, Y, X]
288- name: R3G3B2_UNORM
289  layout: plain
290  colorspace: RGB
291  block: {width: 1, height: 1, depth: 1}
292  channels: [UN3, UN3, UN2]
293  swizzles: [X, Y, Z, 1]
294- name: B2G3R3_UNORM
295  layout: plain
296  colorspace: RGB
297  block: {width: 1, height: 1, depth: 1}
298  channels: [UN2, UN3, UN3]
299  swizzles: [Z, Y, X, 1]
300
301
302# Luminance/Intensity/Alpha formats
303- name: L8_UNORM
304  layout: plain
305  colorspace: RGB
306  block: {width: 1, height: 1, depth: 1}
307  channels: [UN8]
308  swizzles: [X, X, X, 1]
309- name: A8_UNORM
310  layout: plain
311  colorspace: RGB
312  block: {width: 1, height: 1, depth: 1}
313  channels: [UN8]
314  swizzles: [0, 0, 0, X]
315- name: I8_UNORM
316  layout: plain
317  colorspace: RGB
318  block: {width: 1, height: 1, depth: 1}
319  channels: [UN8]
320  swizzles: [X, X, X, X]
321- name: L4A4_UNORM
322  layout: plain
323  colorspace: RGB
324  block: {width: 1, height: 1, depth: 1}
325  channels: [UN4, UN4]
326  swizzles: [X, X, X, Y]
327- name: L8A8_UNORM
328  layout: plain
329  colorspace: RGB
330  block: {width: 1, height: 1, depth: 1}
331  channels: [UN8, UN8]
332  swizzles: [X, X, X, Y]
333- name: L16_UNORM
334  layout: plain
335  colorspace: RGB
336  block: {width: 1, height: 1, depth: 1}
337  channels: [UN16]
338  swizzles: [X, X, X, 1]
339- name: A16_UNORM
340  layout: plain
341  colorspace: RGB
342  block: {width: 1, height: 1, depth: 1}
343  channels: [UN16]
344  swizzles: [0, 0, 0, X]
345- name: I16_UNORM
346  layout: plain
347  colorspace: RGB
348  block: {width: 1, height: 1, depth: 1}
349  channels: [UN16]
350  swizzles: [X, X, X, X]
351- name: L16A16_UNORM
352  layout: plain
353  colorspace: RGB
354  block: {width: 1, height: 1, depth: 1}
355  channels: [UN16, UN16]
356  swizzles: [X, X, X, Y]
357- name: A8_SNORM
358  layout: plain
359  colorspace: RGB
360  block: {width: 1, height: 1, depth: 1}
361  channels: [SN8]
362  swizzles: [0, 0, 0, X]
363- name: L8_SNORM
364  layout: plain
365  colorspace: RGB
366  block: {width: 1, height: 1, depth: 1}
367  channels: [SN8]
368  swizzles: [X, X, X, 1]
369- name: L8A8_SNORM
370  layout: plain
371  colorspace: RGB
372  block: {width: 1, height: 1, depth: 1}
373  channels: [SN8, SN8]
374  swizzles: [X, X, X, Y]
375- name: I8_SNORM
376  layout: plain
377  colorspace: RGB
378  block: {width: 1, height: 1, depth: 1}
379  channels: [SN8]
380  swizzles: [X, X, X, X]
381- name: A16_SNORM
382  layout: plain
383  colorspace: RGB
384  block: {width: 1, height: 1, depth: 1}
385  channels: [SN16]
386  swizzles: [0, 0, 0, X]
387- name: L16_SNORM
388  layout: plain
389  colorspace: RGB
390  block: {width: 1, height: 1, depth: 1}
391  channels: [SN16]
392  swizzles: [X, X, X, 1]
393- name: L16A16_SNORM
394  layout: plain
395  colorspace: RGB
396  block: {width: 1, height: 1, depth: 1}
397  channels: [SN16, SN16]
398  swizzles: [X, X, X, Y]
399- name: I16_SNORM
400  layout: plain
401  colorspace: RGB
402  block: {width: 1, height: 1, depth: 1}
403  channels: [SN16]
404  swizzles: [X, X, X, X]
405- name: A16_FLOAT
406  layout: plain
407  colorspace: RGB
408  block: {width: 1, height: 1, depth: 1}
409  channels: [F16]
410  swizzles: [0, 0, 0, X]
411- name: L16_FLOAT
412  layout: plain
413  colorspace: RGB
414  block: {width: 1, height: 1, depth: 1}
415  channels: [F16]
416  swizzles: [X, X, X, 1]
417- name: L16A16_FLOAT
418  layout: plain
419  colorspace: RGB
420  block: {width: 1, height: 1, depth: 1}
421  channels: [F16, F16]
422  swizzles: [X, X, X, Y]
423- name: I16_FLOAT
424  layout: plain
425  colorspace: RGB
426  block: {width: 1, height: 1, depth: 1}
427  channels: [F16]
428  swizzles: [X, X, X, X]
429- name: A32_FLOAT
430  layout: plain
431  colorspace: RGB
432  block: {width: 1, height: 1, depth: 1}
433  channels: [F32]
434  swizzles: [0, 0, 0, X]
435- name: L32_FLOAT
436  layout: plain
437  colorspace: RGB
438  block: {width: 1, height: 1, depth: 1}
439  channels: [F32]
440  swizzles: [X, X, X, 1]
441- name: L32A32_FLOAT
442  layout: plain
443  colorspace: RGB
444  block: {width: 1, height: 1, depth: 1}
445  channels: [F32, F32]
446  swizzles: [X, X, X, Y]
447- name: I32_FLOAT
448  layout: plain
449  colorspace: RGB
450  block: {width: 1, height: 1, depth: 1}
451  channels: [F32]
452  swizzles: [X, X, X, X]
453
454
455# SRGB formats
456- name: L8_SRGB
457  layout: plain
458  colorspace: SRGB
459  block: {width: 1, height: 1, depth: 1}
460  channels: [UN8]
461  swizzles: [X, X, X, 1]
462- name: R8_SRGB
463  layout: plain
464  colorspace: SRGB
465  block: {width: 1, height: 1, depth: 1}
466  channels: [UN8]
467  swizzles: [X, 0, 0, 1]
468- name: L8A8_SRGB
469  layout: plain
470  colorspace: SRGB
471  block: {width: 1, height: 1, depth: 1}
472  channels: [UN8, UN8]
473  swizzles: [X, X, X, Y]
474- name: R8G8_SRGB
475  layout: plain
476  colorspace: SRGB
477  block: {width: 1, height: 1, depth: 1}
478  channels: [UN8, UN8]
479  swizzles: [X, Y, 0, 1]
480- name: R8G8B8_SRGB
481  layout: plain
482  colorspace: SRGB
483  block: {width: 1, height: 1, depth: 1}
484  channels: [UN8, UN8, UN8]
485  swizzles: [X, Y, Z, 1]
486- name: B8G8R8_SRGB
487  layout: plain
488  colorspace: SRGB
489  block: {width: 1, height: 1, depth: 1}
490  channels: [UN8, UN8, UN8]
491  swizzles: [Z, Y, X, 1]
492- name: R8G8B8A8_SRGB
493  layout: plain
494  colorspace: SRGB
495  block: {width: 1, height: 1, depth: 1}
496  channels: [UN8, UN8, UN8, UN8]
497  swizzles: [X, Y, Z, W]
498  little_endian:
499    alias: RGBA8888_SRGB
500  big_endian:
501    alias: ABGR8888_SRGB
502- name: A8B8G8R8_SRGB
503  layout: plain
504  colorspace: SRGB
505  block: {width: 1, height: 1, depth: 1}
506  channels: [UN8, UN8, UN8, UN8]
507  swizzles: [W, Z, Y, X]
508  little_endian:
509    alias: ABGR8888_SRGB
510  big_endian:
511    alias: RGBA8888_SRGB
512- name: X8B8G8R8_SRGB
513  layout: plain
514  colorspace: SRGB
515  block: {width: 1, height: 1, depth: 1}
516  channels: [X8, UN8, UN8, UN8]
517  swizzles: [W, Z, Y, 1]
518  little_endian:
519    alias: XBGR8888_SRGB
520  big_endian:
521    alias: RGBX8888_SRGB
522- name: B8G8R8A8_SRGB
523  layout: plain
524  colorspace: SRGB
525  block: {width: 1, height: 1, depth: 1}
526  channels: [UN8, UN8, UN8, UN8]
527  swizzles: [Z, Y, X, W]
528  little_endian:
529    alias: BGRA8888_SRGB
530  big_endian:
531    alias: ARGB8888_SRGB
532- name: B8G8R8X8_SRGB
533  layout: plain
534  colorspace: SRGB
535  block: {width: 1, height: 1, depth: 1}
536  channels: [UN8, UN8, UN8, X8]
537  swizzles: [Z, Y, X, 1]
538  little_endian:
539    alias: BGRX8888_SRGB
540  big_endian:
541    alias: XRGB8888_SRGB
542- name: A8R8G8B8_SRGB
543  layout: plain
544  colorspace: SRGB
545  block: {width: 1, height: 1, depth: 1}
546  channels: [UN8, UN8, UN8, UN8]
547  swizzles: [Y, Z, W, X]
548  little_endian:
549    alias: ARGB8888_SRGB
550  big_endian:
551    alias: BGRA8888_SRGB
552- name: X8R8G8B8_SRGB
553  layout: plain
554  colorspace: SRGB
555  block: {width: 1, height: 1, depth: 1}
556  channels: [X8, UN8, UN8, UN8]
557  swizzles: [Y, Z, W, 1]
558  little_endian:
559    alias: XRGB8888_SRGB
560  big_endian:
561    alias: BGRX8888_SRGB
562
563
564# Mixed-sign formats (typically used for bump map textures)
565- name: R8SG8SB8UX8U_NORM
566  layout: plain
567  colorspace: RGB
568  block: {width: 1, height: 1, depth: 1}
569  channels: [SN8, SN8, UN8, X8]
570  swizzles: [X, Y, Z, 1]
571- name: R10SG10SB10SA2U_NORM
572  layout: plain
573  colorspace: RGB
574  block: {width: 1, height: 1, depth: 1}
575  channels: [SN10, SN10, SN10, UN2]
576  swizzles: [X, Y, Z, W]
577- name: R5SG5SB6U_NORM
578  layout: plain
579  colorspace: RGB
580  block: {width: 1, height: 1, depth: 1}
581  channels: [SN5, SN5, UN6]
582  swizzles: [X, Y, Z, 1]
583
584
585# Depth-stencil formats
586- name: S8_UINT
587  layout: plain
588  colorspace: ZS
589  block: {width: 1, height: 1, depth: 1}
590  channels: [UP8]
591  swizzles: [_, X, _, _]
592- name: Z16_UNORM
593  layout: plain
594  colorspace: ZS
595  block: {width: 1, height: 1, depth: 1}
596  channels: [UN16]
597  swizzles: [X, _, _, _]
598- name: Z16_UNORM_S8_UINT
599  layout: plain
600  colorspace: ZS
601  block: {width: 1, height: 1, depth: 1}
602  channels: [UN16, UP8]
603  swizzles: [X, Y, _, _]
604- name: Z32_UNORM
605  layout: plain
606  colorspace: ZS
607  block: {width: 1, height: 1, depth: 1}
608  channels: [UN32]
609  swizzles: [X, _, _, _]
610- name: Z32_FLOAT
611  layout: plain
612  colorspace: ZS
613  block: {width: 1, height: 1, depth: 1}
614  channels: [F32]
615  swizzles: [X, _, _, _]
616- name: Z24_UNORM_S8_UINT
617  layout: plain
618  colorspace: ZS
619  block: {width: 1, height: 1, depth: 1}
620  channels: [UN24, UP8]
621  swizzles: [X, Y, _, _]
622- name: S8_UINT_Z24_UNORM
623  layout: plain
624  colorspace: ZS
625  block: {width: 1, height: 1, depth: 1}
626  channels: [UP8, UN24]
627  swizzles: [Y, X, _, _]
628- name: X24S8_UINT
629  layout: plain
630  colorspace: ZS
631  block: {width: 1, height: 1, depth: 1}
632  channels: [X24, UP8]
633  swizzles: [_, Y, _, _]
634- name: S8X24_UINT
635  layout: plain
636  colorspace: ZS
637  block: {width: 1, height: 1, depth: 1}
638  channels: [UP8, X24]
639  swizzles: [_, X, _, _]
640- name: Z24X8_UNORM
641  layout: plain
642  colorspace: ZS
643  block: {width: 1, height: 1, depth: 1}
644  channels: [UN24, X8]
645  swizzles: [X, _, _, _]
646- name: X8Z24_UNORM
647  layout: plain
648  colorspace: ZS
649  block: {width: 1, height: 1, depth: 1}
650  channels: [X8, UN24]
651  swizzles: [Y, _, _, _]
652- name: Z32_FLOAT_S8X24_UINT
653  layout: plain
654  colorspace: ZS
655  block: {width: 1, height: 1, depth: 1}
656  little_endian:
657    channels: [F32, UP8, X24]
658    swizzles: [X, Y, _, _]
659  big_endian:
660    channels: [F32, X24, UP8]
661    swizzles: [X, Z, _, _]
662- name: X32_S8X24_UINT
663  layout: plain
664  colorspace: ZS
665  block: {width: 1, height: 1, depth: 1}
666  little_endian:
667    channels: [X32, UP8, X24]
668    swizzles: [_, Y, _, _]
669  big_endian:
670    channels: [X32, X24, UP8]
671    swizzles: [_, Z, _, _]
672
673# Depth-stencil formats equivalent to blitting PIPE_FORMAT_Z24_UNORM_S8_UINT
674# as PIPE_FORMAT_R8G8B8A8_*, in that it is an equivalent size to the z/s
675# format.  This is mainly for hw that has some sort of bandwidth compressed
676# format where the compression for z24s8 is not equivalent to r8g8b8a8,
677# and therefore some special handling is required for blits.
678- name: Z24_UNORM_S8_UINT_AS_R8G8B8A8
679  layout: plain
680  colorspace: RGB
681  block: {width: 1, height: 1, depth: 1}
682  channels: [UN8, UN8, UN8, UN8]
683  swizzles: [X, Y, Z, W]
684
685
686# YUV formats
687# http://www.fourcc.org/yuv.php#UYVY
688- name: UYVY
689  layout: subsampled
690  colorspace: YUV
691  block: {width: 2, height: 1, depth: 1}
692  channels: [UN8, UN8, UN8, UN8]
693  swizzles: [X, Y, Z, 1]
694- name: VYUY
695  layout: subsampled
696  colorspace: YUV
697  block: {width: 2, height: 1, depth: 1}
698  channels: [UN8, UN8, UN8, UN8]
699  swizzles: [X, Y, Z, 1]
700# http://www.fourcc.org/yuv.php#YUYV (a.k.a http://www.fourcc.org/yuv.php#YUY2)
701- name: YUYV
702  layout: subsampled
703  colorspace: YUV
704  block: {width: 2, height: 1, depth: 1}
705  channels: [UN8, UN8, UN8, UN8]
706  swizzles: [X, Y, Z, 1]
707- name: YVYU
708  layout: subsampled
709  colorspace: YUV
710  block: {width: 2, height: 1, depth: 1}
711  channels: [UN8, UN8, UN8, UN8]
712  swizzles: [X, Y, Z, 1]
713
714- name: AYUV
715  layout: other
716  colorspace: YUV
717  block: {width: 4, height: 4, depth: 1}
718  channels: [UN8]
719  swizzles: [X, Y, Z, W]
720- name: XYUV
721  layout: other
722  colorspace: YUV
723  block: {width: 4, height: 4, depth: 1}
724  channels: [UN8]
725  swizzles: [X, Y, Z, 1]
726
727# same subsampling but with rgb channels
728- name: R8G8_B8G8_UNORM
729  layout: subsampled
730  colorspace: RGB
731  block: {width: 2, height: 1, depth: 1}
732  channels: [UN8, UN8, UN8, UN8]
733  swizzles: [X, Y, Z, 1]
734- name: G8R8_G8B8_UNORM
735  layout: subsampled
736  colorspace: RGB
737  block: {width: 2, height: 1, depth: 1}
738  channels: [UN8, UN8, UN8, UN8]
739  swizzles: [X, Y, Z, 1]
740- name: G8R8_B8R8_UNORM
741  layout: subsampled
742  colorspace: RGB
743  block: {width: 2, height: 1, depth: 1}
744  channels: [UN8, UN8, UN8, UN8]
745  swizzles: [Z, Y, X, 1]
746- name: R8G8_R8B8_UNORM
747  layout: subsampled
748  colorspace: RGB
749  block: {width: 2, height: 1, depth: 1}
750  channels: [UN8, UN8, UN8, UN8]
751  swizzles: [Z, Y, X, 1]
752- name: B8R8_G8R8_UNORM
753  layout: subsampled
754  colorspace: RGB
755  block: {width: 2, height: 1, depth: 1}
756  channels: [UN8, UN8, UN8, UN8]
757  swizzles: [Y, X, Z, 1]
758- name: R8B8_R8G8_UNORM
759  layout: subsampled
760  colorspace: RGB
761  block: {width: 2, height: 1, depth: 1}
762  channels: [UN8, UN8, UN8, UN8]
763  swizzles: [Y, X, Z, 1]
764- name: G8B8_G8R8_UNORM
765  layout: subsampled
766  colorspace: RGB
767  block: {width: 2, height: 1, depth: 1}
768  channels: [UN8, UN8, UN8, UN8]
769  swizzles: [X, Y, Z, 1]
770- name: B8G8_R8G8_UNORM
771  layout: subsampled
772  colorspace: RGB
773  block: {width: 2, height: 1, depth: 1}
774  channels: [UN8, UN8, UN8, UN8]
775  swizzles: [X, Y, Z, 1]
776
777
778# some special formats not fitting anywhere else
779- name: R11G11B10_FLOAT
780  layout: other
781  colorspace: RGB
782  block: {width: 1, height: 1, depth: 1}
783  channels: [F11, F11, F10]
784  swizzles: [X, Y, Z, 1]
785- name: R9G9B9E5_FLOAT
786  layout: other
787  colorspace: RGB
788  block: {width: 1, height: 1, depth: 1}
789  channels: [F9, F9, F9, X5]
790  swizzles: [X, Y, Z, 1]
791- name: R1_UNORM
792  layout: other
793  colorspace: RGB
794  block: {width: 8, height: 1, depth: 1}
795  channels: [X8]
796  swizzles: [X, 0, 0, 1]
797# A.k.a. D3DFMT_CxV8U8
798- name: R8G8Bx_SNORM
799  layout: other
800  colorspace: RGB
801  block: {width: 1, height: 1, depth: 1}
802  channels: [SN8, SN8]
803  swizzles: [X, Y, Z, 1]
804
805
806# Compressed formats
807# - http://en.wikipedia.org/wiki/S3_Texture_Compression
808# - http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt
809# - http://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt
810# - http://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt
811# - http://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt
812# - http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt
813# - http://msdn.microsoft.com/en-us/library/bb694531.aspx
814- name: DXT1_RGB
815  layout: s3tc
816  sublayout: dxt1
817  colorspace: RGB
818  block: {width: 4, height: 4, depth: 1}
819  channels: [X64]
820  swizzles: [X, Y, Z, 1]
821- name: DXT1_RGBA
822  layout: s3tc
823  sublayout: dxt1
824  colorspace: RGB
825  block: {width: 4, height: 4, depth: 1}
826  channels: [X64]
827  swizzles: [X, Y, Z, W]
828- name: DXT3_RGBA
829  layout: s3tc
830  sublayout: dxt3
831  colorspace: RGB
832  block: {width: 4, height: 4, depth: 1}
833  channels: [X128]
834  swizzles: [X, Y, Z, W]
835- name: DXT5_RGBA
836  layout: s3tc
837  sublayout: dxt5
838  colorspace: RGB
839  block: {width: 4, height: 4, depth: 1}
840  channels: [X128]
841  swizzles: [X, Y, Z, W]
842- name: DXT1_SRGB
843  layout: s3tc
844  sublayout: dxt1
845  colorspace: SRGB
846  block: {width: 4, height: 4, depth: 1}
847  channels: [X64]
848  swizzles: [X, Y, Z, 1]
849- name: DXT1_SRGBA
850  layout: s3tc
851  sublayout: dxt1
852  colorspace: SRGB
853  block: {width: 4, height: 4, depth: 1}
854  channels: [X64]
855  swizzles: [X, Y, Z, W]
856- name: DXT3_SRGBA
857  layout: s3tc
858  sublayout: dxt3
859  colorspace: SRGB
860  block: {width: 4, height: 4, depth: 1}
861  channels: [X128]
862  swizzles: [X, Y, Z, W]
863- name: DXT5_SRGBA
864  layout: s3tc
865  sublayout: dxt5
866  colorspace: SRGB
867  block: {width: 4, height: 4, depth: 1}
868  channels: [X128]
869  swizzles: [X, Y, Z, W]
870
871
872# FXT1 compressed formats
873- name: FXT1_RGB
874  layout: fxt1
875  colorspace: RGB
876  block: {width: 8, height: 4, depth: 1}
877  channels: [X128]
878  swizzles: [X, Y, Z, 1]
879- name: FXT1_RGBA
880  layout: fxt1
881  colorspace: RGB
882  block: {width: 8, height: 4, depth: 1}
883  channels: [X128]
884  swizzles: [X, Y, Z, W]
885
886
887- name: RGTC1_UNORM
888  layout: rgtc
889  colorspace: RGB
890  block: {width: 4, height: 4, depth: 1}
891  channels: [X64]
892  swizzles: [X, 0, 0, 1]
893- name: RGTC1_SNORM
894  layout: rgtc
895  colorspace: RGB
896  block: {width: 4, height: 4, depth: 1}
897  channels: [X64]
898  swizzles: [X, 0, 0, 1]
899- name: RGTC2_UNORM
900  layout: rgtc
901  colorspace: RGB
902  block: {width: 4, height: 4, depth: 1}
903  channels: [X128]
904  swizzles: [X, Y, 0, 1]
905- name: RGTC2_SNORM
906  layout: rgtc
907  colorspace: RGB
908  block: {width: 4, height: 4, depth: 1}
909  channels: [X128]
910  swizzles: [X, Y, 0, 1]
911
912
913- name: LATC1_UNORM
914  layout: rgtc
915  colorspace: RGB
916  block: {width: 4, height: 4, depth: 1}
917  channels: [X64]
918  swizzles: [X, X, X, 1]
919- name: LATC1_SNORM
920  layout: rgtc
921  colorspace: RGB
922  block: {width: 4, height: 4, depth: 1}
923  channels: [X64]
924  swizzles: [X, X, X, 1]
925- name: LATC2_UNORM
926  layout: rgtc
927  colorspace: RGB
928  block: {width: 4, height: 4, depth: 1}
929  channels: [X128]
930  swizzles: [X, X, X, Y]
931- name: LATC2_SNORM
932  layout: rgtc
933  colorspace: RGB
934  block: {width: 4, height: 4, depth: 1}
935  channels: [X128]
936  swizzles: [X, X, X, Y]
937
938
939- name: ETC1_RGB8
940  layout: etc
941  sublayout: etc1
942  colorspace: RGB
943  block: {width: 4, height: 4, depth: 1}
944  channels: [X64]
945  swizzles: [X, Y, Z, 1]
946
947- name: ETC2_RGB8
948  layout: etc
949  sublayout: etc2
950  colorspace: RGB
951  block: {width: 4, height: 4, depth: 1}
952  channels: [X64]
953  swizzles: [X, Y, Z, 1]
954- name: ETC2_SRGB8
955  layout: etc
956  sublayout: etc2
957  colorspace: SRGB
958  block: {width: 4, height: 4, depth: 1}
959  channels: [X64]
960  swizzles: [X, Y, Z, 1]
961- name: ETC2_RGB8A1
962  layout: etc
963  sublayout: etc2
964  colorspace: RGB
965  block: {width: 4, height: 4, depth: 1}
966  channels: [X64]
967  swizzles: [X, Y, Z, W]
968- name: ETC2_SRGB8A1
969  layout: etc
970  sublayout: etc2
971  colorspace: SRGB
972  block: {width: 4, height: 4, depth: 1}
973  channels: [X64]
974  swizzles: [X, Y, Z, W]
975- name: ETC2_RGBA8
976  layout: etc
977  sublayout: etc2
978  colorspace: RGB
979  block: {width: 4, height: 4, depth: 1}
980  channels: [X128]
981  swizzles: [X, Y, Z, W]
982- name: ETC2_SRGBA8
983  layout: etc
984  sublayout: etc2
985  colorspace: SRGB
986  block: {width: 4, height: 4, depth: 1}
987  channels: [X128]
988  swizzles: [X, Y, Z, W]
989- name: ETC2_R11_UNORM
990  layout: etc
991  sublayout: etc2
992  colorspace: RGB
993  block: {width: 4, height: 4, depth: 1}
994  channels: [X64]
995  swizzles: [X, 0, 0, 1]
996- name: ETC2_R11_SNORM
997  layout: etc
998  sublayout: etc2
999  colorspace: RGB
1000  block: {width: 4, height: 4, depth: 1}
1001  channels: [X64]
1002  swizzles: [X, 0, 0, 1]
1003- name: ETC2_RG11_UNORM
1004  layout: etc
1005  sublayout: etc2
1006  colorspace: RGB
1007  block: {width: 4, height: 4, depth: 1}
1008  channels: [X128]
1009  swizzles: [X, Y, 0, 1]
1010- name: ETC2_RG11_SNORM
1011  layout: etc
1012  sublayout: etc2
1013  colorspace: RGB
1014  block: {width: 4, height: 4, depth: 1}
1015  channels: [X128]
1016  swizzles: [X, Y, 0, 1]
1017
1018
1019- name: BPTC_RGBA_UNORM
1020  layout: bptc
1021  colorspace: RGB
1022  block: {width: 4, height: 4, depth: 1}
1023  channels: [X128]
1024  swizzles: [X, Y, Z, W]
1025- name: BPTC_SRGBA
1026  layout: bptc
1027  colorspace: SRGB
1028  block: {width: 4, height: 4, depth: 1}
1029  channels: [X128]
1030  swizzles: [X, Y, Z, W]
1031- name: BPTC_RGB_FLOAT
1032  layout: bptc
1033  colorspace: RGB
1034  block: {width: 4, height: 4, depth: 1}
1035  channels: [X128]
1036  swizzles: [X, Y, Z, 1]
1037- name: BPTC_RGB_UFLOAT
1038  layout: bptc
1039  colorspace: RGB
1040  block: {width: 4, height: 4, depth: 1}
1041  channels: [X128]
1042  swizzles: [X, Y, Z, 1]
1043
1044
1045- name: ASTC_4x4
1046  layout: astc
1047  colorspace: RGB
1048  block: {width: 4, height: 4, depth: 1}
1049  channels: [X128]
1050  swizzles: [X, Y, Z, W]
1051- name: ASTC_5x4
1052  layout: astc
1053  colorspace: RGB
1054  block: {width: 5, height: 4, depth: 1}
1055  channels: [X128]
1056  swizzles: [X, Y, Z, W]
1057- name: ASTC_5x5
1058  layout: astc
1059  colorspace: RGB
1060  block: {width: 5, height: 5, depth: 1}
1061  channels: [X128]
1062  swizzles: [X, Y, Z, W]
1063- name: ASTC_6x5
1064  layout: astc
1065  colorspace: RGB
1066  block: {width: 6, height: 5, depth: 1}
1067  channels: [X128]
1068  swizzles: [X, Y, Z, W]
1069- name: ASTC_6x6
1070  layout: astc
1071  colorspace: RGB
1072  block: {width: 6, height: 6, depth: 1}
1073  channels: [X128]
1074  swizzles: [X, Y, Z, W]
1075- name: ASTC_8x5
1076  layout: astc
1077  colorspace: RGB
1078  block: {width: 8, height: 5, depth: 1}
1079  channels: [X128]
1080  swizzles: [X, Y, Z, W]
1081- name: ASTC_8x6
1082  layout: astc
1083  colorspace: RGB
1084  block: {width: 8, height: 6, depth: 1}
1085  channels: [X128]
1086  swizzles: [X, Y, Z, W]
1087- name: ASTC_8x8
1088  layout: astc
1089  colorspace: RGB
1090  block: {width: 8, height: 8, depth: 1}
1091  channels: [X128]
1092  swizzles: [X, Y, Z, W]
1093- name: ASTC_10x5
1094  layout: astc
1095  colorspace: RGB
1096  block: {width: 10, height: 5, depth: 1}
1097  channels: [X128]
1098  swizzles: [X, Y, Z, W]
1099- name: ASTC_10x6
1100  layout: astc
1101  colorspace: RGB
1102  block: {width: 10, height: 6, depth: 1}
1103  channels: [X128]
1104  swizzles: [X, Y, Z, W]
1105- name: ASTC_10x8
1106  layout: astc
1107  colorspace: RGB
1108  block: {width: 10, height: 8, depth: 1}
1109  channels: [X128]
1110  swizzles: [X, Y, Z, W]
1111- name: ASTC_10x10
1112  layout: astc
1113  colorspace: RGB
1114  block: {width: 10, height: 10, depth: 1}
1115  channels: [X128]
1116  swizzles: [X, Y, Z, W]
1117- name: ASTC_12x10
1118  layout: astc
1119  colorspace: RGB
1120  block: {width: 12, height: 10, depth: 1}
1121  channels: [X128]
1122  swizzles: [X, Y, Z, W]
1123- name: ASTC_12x12
1124  layout: astc
1125  colorspace: RGB
1126  block: {width: 12, height: 12, depth: 1}
1127  channels: [X128]
1128  swizzles: [X, Y, Z, W]
1129
1130
1131- name: ASTC_4x4_SRGB
1132  layout: astc
1133  colorspace: SRGB
1134  block: {width: 4, height: 4, depth: 1}
1135  channels: [X128]
1136  swizzles: [X, Y, Z, W]
1137- name: ASTC_5x4_SRGB
1138  layout: astc
1139  colorspace: SRGB
1140  block: {width: 5, height: 4, depth: 1}
1141  channels: [X128]
1142  swizzles: [X, Y, Z, W]
1143- name: ASTC_5x5_SRGB
1144  layout: astc
1145  colorspace: SRGB
1146  block: {width: 5, height: 5, depth: 1}
1147  channels: [X128]
1148  swizzles: [X, Y, Z, W]
1149- name: ASTC_6x5_SRGB
1150  layout: astc
1151  colorspace: SRGB
1152  block: {width: 6, height: 5, depth: 1}
1153  channels: [X128]
1154  swizzles: [X, Y, Z, W]
1155- name: ASTC_6x6_SRGB
1156  layout: astc
1157  colorspace: SRGB
1158  block: {width: 6, height: 6, depth: 1}
1159  channels: [X128]
1160  swizzles: [X, Y, Z, W]
1161- name: ASTC_8x5_SRGB
1162  layout: astc
1163  colorspace: SRGB
1164  block: {width: 8, height: 5, depth: 1}
1165  channels: [X128]
1166  swizzles: [X, Y, Z, W]
1167- name: ASTC_8x6_SRGB
1168  layout: astc
1169  colorspace: SRGB
1170  block: {width: 8, height: 6, depth: 1}
1171  channels: [X128]
1172  swizzles: [X, Y, Z, W]
1173- name: ASTC_8x8_SRGB
1174  layout: astc
1175  colorspace: SRGB
1176  block: {width: 8, height: 8, depth: 1}
1177  channels: [X128]
1178  swizzles: [X, Y, Z, W]
1179- name: ASTC_10x5_SRGB
1180  layout: astc
1181  colorspace: SRGB
1182  block: {width: 10, height: 5, depth: 1}
1183  channels: [X128]
1184  swizzles: [X, Y, Z, W]
1185- name: ASTC_10x6_SRGB
1186  layout: astc
1187  colorspace: SRGB
1188  block: {width: 10, height: 6, depth: 1}
1189  channels: [X128]
1190  swizzles: [X, Y, Z, W]
1191- name: ASTC_10x8_SRGB
1192  layout: astc
1193  colorspace: SRGB
1194  block: {width: 10, height: 8, depth: 1}
1195  channels: [X128]
1196  swizzles: [X, Y, Z, W]
1197- name: ASTC_10x10_SRGB
1198  layout: astc
1199  colorspace: SRGB
1200  block: {width: 10, height: 10, depth: 1}
1201  channels: [X128]
1202  swizzles: [X, Y, Z, W]
1203- name: ASTC_12x10_SRGB
1204  layout: astc
1205  colorspace: SRGB
1206  block: {width: 12, height: 10, depth: 1}
1207  channels: [X128]
1208  swizzles: [X, Y, Z, W]
1209- name: ASTC_12x12_SRGB
1210  layout: astc
1211  colorspace: SRGB
1212  block: {width: 12, height: 12, depth: 1}
1213  channels: [X128]
1214  swizzles: [X, Y, Z, W]
1215
1216
1217- name: ASTC_3x3x3
1218  layout: astc
1219  colorspace: RGB
1220  block: {width: 3, height: 3, depth: 3}
1221  channels: [X128]
1222  swizzles: [X, Y, Z, W]
1223- name: ASTC_4x3x3
1224  layout: astc
1225  colorspace: RGB
1226  block: {width: 4, height: 3, depth: 3}
1227  channels: [X128]
1228  swizzles: [X, Y, Z, W]
1229- name: ASTC_4x4x3
1230  layout: astc
1231  colorspace: RGB
1232  block: {width: 4, height: 4, depth: 3}
1233  channels: [X128]
1234  swizzles: [X, Y, Z, W]
1235- name: ASTC_4x4x4
1236  layout: astc
1237  colorspace: RGB
1238  block: {width: 4, height: 4, depth: 4}
1239  channels: [X128]
1240  swizzles: [X, Y, Z, W]
1241- name: ASTC_5x4x4
1242  layout: astc
1243  colorspace: RGB
1244  block: {width: 5, height: 4, depth: 4}
1245  channels: [X128]
1246  swizzles: [X, Y, Z, W]
1247- name: ASTC_5x5x4
1248  layout: astc
1249  colorspace: RGB
1250  block: {width: 5, height: 5, depth: 4}
1251  channels: [X128]
1252  swizzles: [X, Y, Z, W]
1253- name: ASTC_5x5x5
1254  layout: astc
1255  colorspace: RGB
1256  block: {width: 5, height: 5, depth: 5}
1257  channels: [X128]
1258  swizzles: [X, Y, Z, W]
1259- name: ASTC_6x5x5
1260  layout: astc
1261  colorspace: RGB
1262  block: {width: 6, height: 5, depth: 5}
1263  channels: [X128]
1264  swizzles: [X, Y, Z, W]
1265- name: ASTC_6x6x5
1266  layout: astc
1267  colorspace: RGB
1268  block: {width: 6, height: 6, depth: 5}
1269  channels: [X128]
1270  swizzles: [X, Y, Z, W]
1271- name: ASTC_6x6x6
1272  layout: astc
1273  colorspace: RGB
1274  block: {width: 6, height: 6, depth: 6}
1275  channels: [X128]
1276  swizzles: [X, Y, Z, W]
1277
1278- name: ASTC_3x3x3_SRGB
1279  layout: astc
1280  colorspace: SRGB
1281  block: {width: 3, height: 3, depth: 3}
1282  channels: [X128]
1283  swizzles: [X, Y, Z, W]
1284- name: ASTC_4x3x3_SRGB
1285  layout: astc
1286  colorspace: SRGB
1287  block: {width: 4, height: 3, depth: 3}
1288  channels: [X128]
1289  swizzles: [X, Y, Z, W]
1290- name: ASTC_4x4x3_SRGB
1291  layout: astc
1292  colorspace: SRGB
1293  block: {width: 4, height: 4, depth: 3}
1294  channels: [X128]
1295  swizzles: [X, Y, Z, W]
1296- name: ASTC_4x4x4_SRGB
1297  layout: astc
1298  colorspace: SRGB
1299  block: {width: 4, height: 4, depth: 4}
1300  channels: [X128]
1301  swizzles: [X, Y, Z, W]
1302- name: ASTC_5x4x4_SRGB
1303  layout: astc
1304  colorspace: SRGB
1305  block: {width: 5, height: 4, depth: 4}
1306  channels: [X128]
1307  swizzles: [X, Y, Z, W]
1308- name: ASTC_5x5x4_SRGB
1309  layout: astc
1310  colorspace: SRGB
1311  block: {width: 5, height: 5, depth: 4}
1312  channels: [X128]
1313  swizzles: [X, Y, Z, W]
1314- name: ASTC_5x5x5_SRGB
1315  layout: astc
1316  colorspace: SRGB
1317  block: {width: 5, height: 5, depth: 5}
1318  channels: [X128]
1319  swizzles: [X, Y, Z, W]
1320- name: ASTC_6x5x5_SRGB
1321  layout: astc
1322  colorspace: SRGB
1323  block: {width: 6, height: 5, depth: 5}
1324  channels: [X128]
1325  swizzles: [X, Y, Z, W]
1326- name: ASTC_6x6x5_SRGB
1327  layout: astc
1328  colorspace: SRGB
1329  block: {width: 6, height: 6, depth: 5}
1330  channels: [X128]
1331  swizzles: [X, Y, Z, W]
1332- name: ASTC_6x6x6_SRGB
1333  layout: astc
1334  colorspace: SRGB
1335  block: {width: 6, height: 6, depth: 6}
1336  channels: [X128]
1337  swizzles: [X, Y, Z, W]
1338
1339
1340- name: ATC_RGB
1341  layout: atc
1342  colorspace: RGB
1343  block: {width: 4, height: 4, depth: 1}
1344  channels: [X64]
1345  swizzles: [X, Y, Z, 1]
1346- name: ATC_RGBA_EXPLICIT
1347  layout: atc
1348  colorspace: RGB
1349  block: {width: 4, height: 4, depth: 1}
1350  channels: [X128]
1351  swizzles: [X, Y, Z, W]
1352- name: ATC_RGBA_INTERPOLATED
1353  layout: atc
1354  colorspace: RGB
1355  block: {width: 4, height: 4, depth: 1}
1356  channels: [X128]
1357  swizzles: [X, Y, Z, W]
1358
1359
1360# Straightforward D3D10-like formats (also used for
1361# vertex buffer element description)
1362#
1363# See also:
1364# - src/gallium/auxiliary/translate/translate_generic.c
1365# - src/mesa/state_tracker/st_draw.c
1366- name: R64_FLOAT
1367  layout: plain
1368  colorspace: RGB
1369  block: {width: 1, height: 1, depth: 1}
1370  channels: [F64]
1371  swizzles: [X, 0, 0, 1]
1372- name: R64G64_FLOAT
1373  layout: plain
1374  colorspace: RGB
1375  block: {width: 1, height: 1, depth: 1}
1376  channels: [F64, F64]
1377  swizzles: [X, Y, 0, 1]
1378- name: R64G64B64_FLOAT
1379  layout: plain
1380  colorspace: RGB
1381  block: {width: 1, height: 1, depth: 1}
1382  channels: [F64, F64, F64]
1383  swizzles: [X, Y, Z, 1]
1384- name: R64G64B64A64_FLOAT
1385  layout: plain
1386  colorspace: RGB
1387  block: {width: 1, height: 1, depth: 1}
1388  channels: [F64, F64, F64, F64]
1389  swizzles: [X, Y, Z, W]
1390- name: R32_FLOAT
1391  layout: plain
1392  colorspace: RGB
1393  block: {width: 1, height: 1, depth: 1}
1394  channels: [F32]
1395  swizzles: [X, 0, 0, 1]
1396- name: R32G32_FLOAT
1397  layout: plain
1398  colorspace: RGB
1399  block: {width: 1, height: 1, depth: 1}
1400  channels: [F32, F32]
1401  swizzles: [X, Y, 0, 1]
1402- name: R32G32B32_FLOAT
1403  layout: plain
1404  colorspace: RGB
1405  block: {width: 1, height: 1, depth: 1}
1406  channels: [F32, F32, F32]
1407  swizzles: [X, Y, Z, 1]
1408- name: R32G32B32A32_FLOAT
1409  layout: plain
1410  colorspace: RGB
1411  block: {width: 1, height: 1, depth: 1}
1412  channels: [F32, F32, F32, F32]
1413  swizzles: [X, Y, Z, W]
1414- name: R32_UNORM
1415  layout: plain
1416  colorspace: RGB
1417  block: {width: 1, height: 1, depth: 1}
1418  channels: [UN32]
1419  swizzles: [X, 0, 0, 1]
1420- name: R32G32_UNORM
1421  layout: plain
1422  colorspace: RGB
1423  block: {width: 1, height: 1, depth: 1}
1424  channels: [UN32, UN32]
1425  swizzles: [X, Y, 0, 1]
1426- name: R32G32B32_UNORM
1427  layout: plain
1428  colorspace: RGB
1429  block: {width: 1, height: 1, depth: 1}
1430  channels: [UN32, UN32, UN32]
1431  swizzles: [X, Y, Z, 1]
1432- name: R32G32B32A32_UNORM
1433  layout: plain
1434  colorspace: RGB
1435  block: {width: 1, height: 1, depth: 1}
1436  channels: [UN32, UN32, UN32, UN32]
1437  swizzles: [X, Y, Z, W]
1438- name: R32_USCALED
1439  layout: plain
1440  colorspace: RGB
1441  block: {width: 1, height: 1, depth: 1}
1442  channels: [U32]
1443  swizzles: [X, 0, 0, 1]
1444- name: R32G32_USCALED
1445  layout: plain
1446  colorspace: RGB
1447  block: {width: 1, height: 1, depth: 1}
1448  channels: [U32, U32]
1449  swizzles: [X, Y, 0, 1]
1450- name: R32G32B32_USCALED
1451  layout: plain
1452  colorspace: RGB
1453  block: {width: 1, height: 1, depth: 1}
1454  channels: [U32, U32, U32]
1455  swizzles: [X, Y, Z, 1]
1456- name: R32G32B32A32_USCALED
1457  layout: plain
1458  colorspace: RGB
1459  block: {width: 1, height: 1, depth: 1}
1460  channels: [U32, U32, U32, U32]
1461  swizzles: [X, Y, Z, W]
1462- name: R32_SNORM
1463  layout: plain
1464  colorspace: RGB
1465  block: {width: 1, height: 1, depth: 1}
1466  channels: [SN32]
1467  swizzles: [X, 0, 0, 1]
1468- name: R32G32_SNORM
1469  layout: plain
1470  colorspace: RGB
1471  block: {width: 1, height: 1, depth: 1}
1472  channels: [SN32, SN32]
1473  swizzles: [X, Y, 0, 1]
1474- name: R32G32B32_SNORM
1475  layout: plain
1476  colorspace: RGB
1477  block: {width: 1, height: 1, depth: 1}
1478  channels: [SN32, SN32, SN32]
1479  swizzles: [X, Y, Z, 1]
1480- name: R32G32B32A32_SNORM
1481  layout: plain
1482  colorspace: RGB
1483  block: {width: 1, height: 1, depth: 1}
1484  channels: [SN32, SN32, SN32, SN32]
1485  swizzles: [X, Y, Z, W]
1486- name: R32_SSCALED
1487  layout: plain
1488  colorspace: RGB
1489  block: {width: 1, height: 1, depth: 1}
1490  channels: [S32]
1491  swizzles: [X, 0, 0, 1]
1492- name: R32G32_SSCALED
1493  layout: plain
1494  colorspace: RGB
1495  block: {width: 1, height: 1, depth: 1}
1496  channels: [S32, S32]
1497  swizzles: [X, Y, 0, 1]
1498- name: R32G32B32_SSCALED
1499  layout: plain
1500  colorspace: RGB
1501  block: {width: 1, height: 1, depth: 1}
1502  channels: [S32, S32, S32]
1503  swizzles: [X, Y, Z, 1]
1504- name: R32G32B32A32_SSCALED
1505  layout: plain
1506  colorspace: RGB
1507  block: {width: 1, height: 1, depth: 1}
1508  channels: [S32, S32, S32, S32]
1509  swizzles: [X, Y, Z, W]
1510- name: R16_FLOAT
1511  layout: plain
1512  colorspace: RGB
1513  block: {width: 1, height: 1, depth: 1}
1514  channels: [F16]
1515  swizzles: [X, 0, 0, 1]
1516- name: R16G16_FLOAT
1517  layout: plain
1518  colorspace: RGB
1519  block: {width: 1, height: 1, depth: 1}
1520  channels: [F16, F16]
1521  swizzles: [X, Y, 0, 1]
1522- name: R16G16B16_FLOAT
1523  layout: plain
1524  colorspace: RGB
1525  block: {width: 1, height: 1, depth: 1}
1526  channels: [F16, F16, F16]
1527  swizzles: [X, Y, Z, 1]
1528- name: R16G16B16A16_FLOAT
1529  layout: plain
1530  colorspace: RGB
1531  block: {width: 1, height: 1, depth: 1}
1532  channels: [F16, F16, F16, F16]
1533  swizzles: [X, Y, Z, W]
1534- name: R16_UNORM
1535  layout: plain
1536  colorspace: RGB
1537  block: {width: 1, height: 1, depth: 1}
1538  channels: [UN16]
1539  swizzles: [X, 0, 0, 1]
1540- name: R16G16_UNORM
1541  layout: plain
1542  colorspace: RGB
1543  block: {width: 1, height: 1, depth: 1}
1544  channels: [UN16, UN16]
1545  swizzles: [X, Y, 0, 1]
1546  little_endian:
1547    alias: RG1616_UNORM
1548  big_endian:
1549    alias: GR1616_UNORM
1550- name: R16G16B16_UNORM
1551  layout: plain
1552  colorspace: RGB
1553  block: {width: 1, height: 1, depth: 1}
1554  channels: [UN16, UN16, UN16]
1555  swizzles: [X, Y, Z, 1]
1556- name: R16G16B16A16_UNORM
1557  layout: plain
1558  colorspace: RGB
1559  block: {width: 1, height: 1, depth: 1}
1560  channels: [UN16, UN16, UN16, UN16]
1561  swizzles: [X, Y, Z, W]
1562- name: R16_USCALED
1563  layout: plain
1564  colorspace: RGB
1565  block: {width: 1, height: 1, depth: 1}
1566  channels: [U16]
1567  swizzles: [X, 0, 0, 1]
1568- name: R16G16_USCALED
1569  layout: plain
1570  colorspace: RGB
1571  block: {width: 1, height: 1, depth: 1}
1572  channels: [U16, U16]
1573  swizzles: [X, Y, 0, 1]
1574- name: R16G16B16_USCALED
1575  layout: plain
1576  colorspace: RGB
1577  block: {width: 1, height: 1, depth: 1}
1578  channels: [U16, U16, U16]
1579  swizzles: [X, Y, Z, 1]
1580- name: R16G16B16A16_USCALED
1581  layout: plain
1582  colorspace: RGB
1583  block: {width: 1, height: 1, depth: 1}
1584  channels: [U16, U16, U16, U16]
1585  swizzles: [X, Y, Z, W]
1586- name: R16_SNORM
1587  layout: plain
1588  colorspace: RGB
1589  block: {width: 1, height: 1, depth: 1}
1590  channels: [SN16]
1591  swizzles: [X, 0, 0, 1]
1592- name: R16G16_SNORM
1593  layout: plain
1594  colorspace: RGB
1595  block: {width: 1, height: 1, depth: 1}
1596  channels: [SN16, SN16]
1597  swizzles: [X, Y, 0, 1]
1598  little_endian:
1599    alias: RG1616_SNORM
1600  big_endian:
1601    alias: GR1616_SNORM
1602- name: R16G16B16_SNORM
1603  layout: plain
1604  colorspace: RGB
1605  block: {width: 1, height: 1, depth: 1}
1606  channels: [SN16, SN16, SN16]
1607  swizzles: [X, Y, Z, 1]
1608- name: R16G16B16A16_SNORM
1609  layout: plain
1610  colorspace: RGB
1611  block: {width: 1, height: 1, depth: 1}
1612  channels: [SN16, SN16, SN16, SN16]
1613  swizzles: [X, Y, Z, W]
1614- name: R16_SSCALED
1615  layout: plain
1616  colorspace: RGB
1617  block: {width: 1, height: 1, depth: 1}
1618  channels: [S16]
1619  swizzles: [X, 0, 0, 1]
1620- name: R16G16_SSCALED
1621  layout: plain
1622  colorspace: RGB
1623  block: {width: 1, height: 1, depth: 1}
1624  channels: [S16, S16]
1625  swizzles: [X, Y, 0, 1]
1626- name: R16G16B16_SSCALED
1627  layout: plain
1628  colorspace: RGB
1629  block: {width: 1, height: 1, depth: 1}
1630  channels: [S16, S16, S16]
1631  swizzles: [X, Y, Z, 1]
1632- name: R16G16B16A16_SSCALED
1633  layout: plain
1634  colorspace: RGB
1635  block: {width: 1, height: 1, depth: 1}
1636  channels: [S16, S16, S16, S16]
1637  swizzles: [X, Y, Z, W]
1638- name: R8_UNORM
1639  layout: plain
1640  colorspace: RGB
1641  block: {width: 1, height: 1, depth: 1}
1642  channels: [UN8]
1643  swizzles: [X, 0, 0, 1]
1644- name: R8G8_UNORM
1645  layout: plain
1646  colorspace: RGB
1647  block: {width: 1, height: 1, depth: 1}
1648  channels: [UN8, UN8]
1649  swizzles: [X, Y, 0, 1]
1650  little_endian:
1651    alias: RG88_UNORM
1652  big_endian:
1653    alias: GR88_UNORM
1654- name: R8G8B8_UNORM
1655  layout: plain
1656  colorspace: RGB
1657  block: {width: 1, height: 1, depth: 1}
1658  channels: [UN8, UN8, UN8]
1659  swizzles: [X, Y, Z, 1]
1660- name: B8G8R8_UNORM
1661  layout: plain
1662  colorspace: RGB
1663  block: {width: 1, height: 1, depth: 1}
1664  channels: [UN8, UN8, UN8]
1665  swizzles: [Z, Y, X, 1]
1666- name: R8G8B8A8_UNORM
1667  layout: plain
1668  colorspace: RGB
1669  block: {width: 1, height: 1, depth: 1}
1670  channels: [UN8, UN8, UN8, UN8]
1671  swizzles: [X, Y, Z, W]
1672  little_endian:
1673    alias: RGBA8888_UNORM
1674  big_endian:
1675    alias: ABGR8888_UNORM
1676- name: R8_USCALED
1677  layout: plain
1678  colorspace: RGB
1679  block: {width: 1, height: 1, depth: 1}
1680  channels: [U8]
1681  swizzles: [X, 0, 0, 1]
1682- name: R8G8_USCALED
1683  layout: plain
1684  colorspace: RGB
1685  block: {width: 1, height: 1, depth: 1}
1686  channels: [U8, U8]
1687  swizzles: [X, Y, 0, 1]
1688- name: R8G8B8_USCALED
1689  layout: plain
1690  colorspace: RGB
1691  block: {width: 1, height: 1, depth: 1}
1692  channels: [U8, U8, U8]
1693  swizzles: [X, Y, Z, 1]
1694- name: B8G8R8_USCALED
1695  layout: plain
1696  colorspace: RGB
1697  block: {width: 1, height: 1, depth: 1}
1698  channels: [U8, U8, U8]
1699  swizzles: [Z, Y, X, 1]
1700- name: R8G8B8A8_USCALED
1701  layout: plain
1702  colorspace: RGB
1703  block: {width: 1, height: 1, depth: 1}
1704  channels: [U8, U8, U8, U8]
1705  swizzles: [X, Y, Z, W]
1706  little_endian:
1707    alias: RGBA8888_USCALED
1708- name: B8G8R8A8_USCALED
1709  layout: plain
1710  colorspace: RGB
1711  block: {width: 1, height: 1, depth: 1}
1712  channels: [U8, U8, U8, U8]
1713  swizzles: [Z, Y, X, W]
1714- name: A8B8G8R8_USCALED
1715  layout: plain
1716  colorspace: RGB
1717  block: {width: 1, height: 1, depth: 1}
1718  channels: [U8, U8, U8, U8]
1719  swizzles: [W, Z, Y, X]
1720  big_endian:
1721    alias: RGBA8888_USCALED
1722- name: R8_SNORM
1723  layout: plain
1724  colorspace: RGB
1725  block: {width: 1, height: 1, depth: 1}
1726  channels: [SN8]
1727  swizzles: [X, 0, 0, 1]
1728- name: R8G8_SNORM
1729  layout: plain
1730  colorspace: RGB
1731  block: {width: 1, height: 1, depth: 1}
1732  channels: [SN8, SN8]
1733  swizzles: [X, Y, 0, 1]
1734  little_endian:
1735    alias: RG88_SNORM
1736  big_endian:
1737    alias: GR88_SNORM
1738- name: R8G8B8_SNORM
1739  layout: plain
1740  colorspace: RGB
1741  block: {width: 1, height: 1, depth: 1}
1742  channels: [SN8, SN8, SN8]
1743  swizzles: [X, Y, Z, 1]
1744- name: B8G8R8_SNORM
1745  layout: plain
1746  colorspace: RGB
1747  block: {width: 1, height: 1, depth: 1}
1748  channels: [SN8, SN8, SN8]
1749  swizzles: [Z, Y, X, 1]
1750- name: R8G8B8A8_SNORM
1751  layout: plain
1752  colorspace: RGB
1753  block: {width: 1, height: 1, depth: 1}
1754  channels: [SN8, SN8, SN8, SN8]
1755  swizzles: [X, Y, Z, W]
1756  little_endian:
1757    alias: RGBA8888_SNORM
1758  big_endian:
1759    alias: ABGR8888_SNORM
1760- name: B8G8R8A8_SNORM
1761  layout: plain
1762  colorspace: RGB
1763  block: {width: 1, height: 1, depth: 1}
1764  channels: [SN8, SN8, SN8, SN8]
1765  swizzles: [Z, Y, X, W]
1766- name: R8_SSCALED
1767  layout: plain
1768  colorspace: RGB
1769  block: {width: 1, height: 1, depth: 1}
1770  channels: [S8]
1771  swizzles: [X, 0, 0, 1]
1772- name: R8G8_SSCALED
1773  layout: plain
1774  colorspace: RGB
1775  block: {width: 1, height: 1, depth: 1}
1776  channels: [S8, S8]
1777  swizzles: [X, Y, 0, 1]
1778- name: R8G8B8_SSCALED
1779  layout: plain
1780  colorspace: RGB
1781  block: {width: 1, height: 1, depth: 1}
1782  channels: [S8, S8, S8]
1783  swizzles: [X, Y, Z, 1]
1784- name: B8G8R8_SSCALED
1785  layout: plain
1786  colorspace: RGB
1787  block: {width: 1, height: 1, depth: 1}
1788  channels: [S8, S8, S8]
1789  swizzles: [Z, Y, X, 1]
1790- name: R8G8B8A8_SSCALED
1791  layout: plain
1792  colorspace: RGB
1793  block: {width: 1, height: 1, depth: 1}
1794  channels: [S8, S8, S8, S8]
1795  swizzles: [X, Y, Z, W]
1796  little_endian:
1797    alias: RGBA8888_SSCALED
1798- name: B8G8R8A8_SSCALED
1799  layout: plain
1800  colorspace: RGB
1801  block: {width: 1, height: 1, depth: 1}
1802  channels: [S8, S8, S8, S8]
1803  swizzles: [Z, Y, X, W]
1804- name: A8B8G8R8_SSCALED
1805  layout: plain
1806  colorspace: RGB
1807  block: {width: 1, height: 1, depth: 1}
1808  channels: [S8, S8, S8, S8]
1809  swizzles: [W, Z, Y, X]
1810  big_endian:
1811    alias: RGBA8888_SSCALED
1812
1813
1814# GL-specific vertex buffer element formats
1815# A.k.a. GL_FIXED
1816- name: R32_FIXED
1817  layout: plain
1818  colorspace: RGB
1819  block: {width: 1, height: 1, depth: 1}
1820  channels: [H32]
1821  swizzles: [X, 0, 0, 1]
1822- name: R32G32_FIXED
1823  layout: plain
1824  colorspace: RGB
1825  block: {width: 1, height: 1, depth: 1}
1826  channels: [H32, H32]
1827  swizzles: [X, Y, 0, 1]
1828- name: R32G32B32_FIXED
1829  layout: plain
1830  colorspace: RGB
1831  block: {width: 1, height: 1, depth: 1}
1832  channels: [H32, H32, H32]
1833  swizzles: [X, Y, Z, 1]
1834- name: R32G32B32A32_FIXED
1835  layout: plain
1836  colorspace: RGB
1837  block: {width: 1, height: 1, depth: 1}
1838  channels: [H32, H32, H32, H32]
1839  swizzles: [X, Y, Z, W]
1840
1841
1842# D3D9-specific vertex buffer element formats
1843# See also:
1844# - http://msdn.microsoft.com/en-us/library/bb172533.aspx
1845# A.k.a. D3DDECLTYPE_UDEC3
1846- name: R10G10B10X2_USCALED
1847  layout: plain
1848  colorspace: RGB
1849  block: {width: 1, height: 1, depth: 1}
1850  channels: [U10, U10, U10, X2]
1851  swizzles: [X, Y, Z, 1]
1852# A.k.a. D3DDECLTYPE_DEC3N
1853- name: R10G10B10X2_SNORM
1854  layout: plain
1855  colorspace: RGB
1856  block: {width: 1, height: 1, depth: 1}
1857  channels: [SN10, SN10, SN10, X2]
1858  swizzles: [X, Y, Z, 1]
1859- name: R10G10B10X2_SINT
1860  layout: plain
1861  colorspace: RGB
1862  block: {width: 1, height: 1, depth: 1}
1863  channels: [SP10, SP10, SP10, X2]
1864  swizzles: [X, Y, Z, 1]
1865
1866
1867- name: YV12
1868  layout: planar3
1869  colorspace: YUV
1870  block: {width: 1, height: 1, depth: 1}
1871  channels: []
1872  swizzles: [X, Y, Z, W]
1873- name: YV16
1874  layout: planar3
1875  colorspace: YUV
1876  block: {width: 1, height: 1, depth: 1}
1877  channels: []
1878  swizzles: [X, Y, Z, W]
1879- name: IYUV
1880  layout: planar3
1881  colorspace: YUV
1882  block: {width: 1, height: 1, depth: 1}
1883  channels: []
1884  swizzles: [X, Y, Z, W]
1885- name: NV12
1886  layout: planar2
1887  colorspace: YUV
1888  block: {width: 1, height: 1, depth: 1}
1889  channels: []
1890  swizzles: [X, Y, Z, W]
1891- name: NV21
1892  layout: planar2
1893  colorspace: YUV
1894  block: {width: 1, height: 1, depth: 1}
1895  channels: []
1896  swizzles: [X, Y, Z, W]
1897- name: Y8_400_UNORM
1898  layout: other
1899  colorspace: YUV
1900  block: {width: 1, height: 1, depth: 1}
1901  channels: [UN8]
1902  swizzles: [X, 0, 0, 1]
1903
1904
1905# RGB version of NV12 and YV12 for hardware that supports sampling from
1906# multiplane textures but needs color-space conversion in the shader.
1907- name: R8_G8B8_420_UNORM
1908  layout: planar2
1909  colorspace: RGB
1910  block: {width: 1, height: 1, depth: 1}
1911  channels: [UN8]
1912  swizzles: [X, Y, Z, W]
1913- name: R8_B8G8_420_UNORM
1914  layout: planar2
1915  colorspace: RGB
1916  block: {width: 1, height: 1, depth: 1}
1917  channels: [UN8]
1918  swizzles: [X, Y, Z, W]
1919- name: G8_B8R8_420_UNORM
1920  layout: planar2
1921  colorspace: RGB
1922  block: {width: 1, height: 1, depth: 1}
1923  channels: [UN8]
1924  swizzles: [X, Y, Z, W]
1925- name: R8_G8_B8_420_UNORM
1926  layout: planar3
1927  colorspace: RGB
1928  block: {width: 1, height: 1, depth: 1}
1929  channels: [UN8]
1930  swizzles: [X, Y, Z, W]
1931- name: R8_B8_G8_420_UNORM
1932  layout: planar3
1933  colorspace: RGB
1934  block: {width: 1, height: 1, depth: 1}
1935  channels: [UN8]
1936  swizzles: [X, Y, Z, W]
1937- name: G8_B8_R8_420_UNORM
1938  layout: planar3
1939  colorspace: RGB
1940  block: {width: 1, height: 1, depth: 1}
1941  channels: [UN8]
1942  swizzles: [X, Y, Z, W]
1943- name: R8_G8_B8_UNORM
1944  layout: planar3
1945  colorspace: RGB
1946  block: {width: 1, height: 1, depth: 1}
1947  channels: [UN8]
1948  swizzles: [X, Y, Z, W]
1949
1950# While most of Mesa uses R8 for Y, U, and V planes, freedreno requires distinguishing
1951# between tiled Y8 data and tiled R8 data.
1952- name: Y8_UNORM
1953  layout: other
1954  colorspace: YUV
1955  block: {width: 1, height: 1, depth: 1}
1956  channels: [UN8]
1957  swizzles: [X, 0, 0, 1]
1958
1959- name: Y8_U8_V8_422_UNORM
1960  layout: planar3
1961  colorspace: YUV
1962  block: {width: 1, height: 1, depth: 1}
1963  channels: []
1964  swizzles: [X, Y, Z, W]
1965- name: Y8_U8V8_422_UNORM
1966  layout: planar2
1967  colorspace: YUV
1968  block: {width: 1, height: 1, depth: 1}
1969  channels: []
1970  swizzles: [X, Y, Z, W]
1971- name: Y8_U8_V8_444_UNORM
1972  layout: planar3
1973  colorspace: YUV
1974  block: {width: 1, height: 1, depth: 1}
1975  channels: []
1976  swizzles: [X, Y, Z, W]
1977- name: Y8_U8_V8_440_UNORM
1978  layout: planar3
1979  colorspace: YUV
1980  block: {width: 1, height: 1, depth: 1}
1981  channels: []
1982  swizzles: [X, Y, Z, W]
1983
1984
1985- name: Y16_U16_V16_420_UNORM
1986  layout: planar3
1987  colorspace: YUV
1988  block: {width: 1, height: 1, depth: 1}
1989  channels: []
1990  swizzles: [X, Y, Z, W]
1991- name: Y16_U16_V16_422_UNORM
1992  layout: planar3
1993  colorspace: YUV
1994  block: {width: 1, height: 1, depth: 1}
1995  channels: []
1996  swizzles: [X, Y, Z, W]
1997- name: Y16_U16V16_422_UNORM
1998  layout: planar2
1999  colorspace: YUV
2000  block: {width: 1, height: 1, depth: 1}
2001  channels: []
2002  swizzles: [X, Y, Z, W]
2003- name: Y16_U16_V16_444_UNORM
2004  layout: planar3
2005  colorspace: YUV
2006  block: {width: 1, height: 1, depth: 1}
2007  channels: []
2008  swizzles: [X, Y, Z, W]
2009
2010
2011- name: P010
2012  layout: planar2
2013  colorspace: YUV
2014  block: {width: 1, height: 1, depth: 1}
2015  channels: []
2016  swizzles: [X, Y, Z, W]
2017- name: P012
2018  layout: planar2
2019  colorspace: YUV
2020  block: {width: 1, height: 1, depth: 1}
2021  channels: []
2022  swizzles: [X, Y, Z, W]
2023- name: P016
2024  layout: planar2
2025  colorspace: YUV
2026  block: {width: 1, height: 1, depth: 1}
2027  channels: []
2028  swizzles: [X, Y, Z, W]
2029- name: P030
2030  layout: planar2
2031  colorspace: YUV
2032  block: {width: 1, height: 1, depth: 1}
2033  channels: []
2034  swizzles: [X, Y, Z, W]
2035
2036
2037- name: Y210
2038  layout: subsampled
2039  colorspace: YUV
2040  block: {width: 2, height: 1, depth: 1}
2041  channels: [X64]
2042  swizzles: [X, Y, Z, 1]
2043- name: Y212
2044  layout: subsampled
2045  colorspace: YUV
2046  block: {width: 2, height: 1, depth: 1}
2047  channels: [X64]
2048  swizzles: [X, Y, Z, 1]
2049- name: Y216
2050  layout: subsampled
2051  colorspace: YUV
2052  block: {width: 2, height: 1, depth: 1}
2053  channels: [X64]
2054  swizzles: [X, Y, Z, 1]
2055
2056
2057- name: Y410
2058  layout: other
2059  colorspace: YUV
2060  block: {width: 1, height: 1, depth: 1}
2061  channels: [UN10, UN10, UN10, UN2]
2062  swizzles: [Y, Z, X, W]
2063- name: Y412
2064  layout: other
2065  colorspace: YUV
2066  block: {width: 1, height: 1, depth: 1}
2067  channels: [UN16, UN16, UN16, UN16]
2068  swizzles: [Y, Z, X, W]
2069- name: Y416
2070  layout: other
2071  colorspace: YUV
2072  block: {width: 1, height: 1, depth: 1}
2073  channels: [UN16, UN16, UN16, UN16]
2074  swizzles: [Y, Z, X, W]
2075
2076
2077# Usually used to implement IA44 and AI44 formats in video decoding
2078- name: A4R4_UNORM
2079  layout: plain
2080  colorspace: RGB
2081  block: {width: 1, height: 1, depth: 1}
2082  channels: [UN4, UN4]
2083  swizzles: [Y, 0, 0, X]
2084- name: R4A4_UNORM
2085  layout: plain
2086  colorspace: RGB
2087  block: {width: 1, height: 1, depth: 1}
2088  channels: [UN4, UN4]
2089  swizzles: [X, 0, 0, Y]
2090- name: R8A8_UNORM
2091  layout: plain
2092  colorspace: RGB
2093  block: {width: 1, height: 1, depth: 1}
2094  channels: [UN8, UN8]
2095  swizzles: [X, 0, 0, Y]
2096- name: A8R8_UNORM
2097  layout: plain
2098  colorspace: RGB
2099  block: {width: 1, height: 1, depth: 1}
2100  channels: [UN8, UN8]
2101  swizzles: [Y, 0, 0, X]
2102
2103
2104# ARB_vertex_type_10_10_10_2_REV
2105- name: R10G10B10A2_USCALED
2106  layout: plain
2107  colorspace: RGB
2108  block: {width: 1, height: 1, depth: 1}
2109  channels: [U10, U10, U10, U2]
2110  swizzles: [X, Y, Z, W]
2111- name: R10G10B10A2_SSCALED
2112  layout: plain
2113  colorspace: RGB
2114  block: {width: 1, height: 1, depth: 1}
2115  channels: [S10, S10, S10, S2]
2116  swizzles: [X, Y, Z, W]
2117- name: R10G10B10A2_SNORM
2118  layout: plain
2119  colorspace: RGB
2120  block: {width: 1, height: 1, depth: 1}
2121  channels: [SN10, SN10, SN10, SN2]
2122  swizzles: [X, Y, Z, W]
2123- name: B10G10R10A2_USCALED
2124  layout: plain
2125  colorspace: RGB
2126  block: {width: 1, height: 1, depth: 1}
2127  channels: [U10, U10, U10, U2]
2128  swizzles: [Z, Y, X, W]
2129- name: B10G10R10A2_SSCALED
2130  layout: plain
2131  colorspace: RGB
2132  block: {width: 1, height: 1, depth: 1}
2133  channels: [S10, S10, S10, S2]
2134  swizzles: [Z, Y, X, W]
2135- name: B10G10R10A2_SNORM
2136  layout: plain
2137  colorspace: RGB
2138  block: {width: 1, height: 1, depth: 1}
2139  channels: [SN10, SN10, SN10, SN2]
2140  swizzles: [Z, Y, X, W]
2141
2142
2143- name: R8_UINT
2144  layout: plain
2145  colorspace: RGB
2146  block: {width: 1, height: 1, depth: 1}
2147  channels: [UP8]
2148  swizzles: [X, 0, 0, 1]
2149- name: R8G8_UINT
2150  layout: plain
2151  colorspace: RGB
2152  block: {width: 1, height: 1, depth: 1}
2153  channels: [UP8, UP8]
2154  swizzles: [X, Y, 0, 1]
2155- name: R8G8B8_UINT
2156  layout: plain
2157  colorspace: RGB
2158  block: {width: 1, height: 1, depth: 1}
2159  channels: [UP8, UP8, UP8]
2160  swizzles: [X, Y, Z, 1]
2161- name: R8G8B8A8_UINT
2162  layout: plain
2163  colorspace: RGB
2164  block: {width: 1, height: 1, depth: 1}
2165  channels: [UP8, UP8, UP8, UP8]
2166  swizzles: [X, Y, Z, W]
2167  little_endian:
2168    alias: RGBA8888_UINT
2169  big_endian:
2170    alias: ABGR8888_UINT
2171
2172
2173- name: R8_SINT
2174  layout: plain
2175  colorspace: RGB
2176  block: {width: 1, height: 1, depth: 1}
2177  channels: [SP8]
2178  swizzles: [X, 0, 0, 1]
2179- name: R8G8_SINT
2180  layout: plain
2181  colorspace: RGB
2182  block: {width: 1, height: 1, depth: 1}
2183  channels: [SP8, SP8]
2184  swizzles: [X, Y, 0, 1]
2185- name: R8G8B8_SINT
2186  layout: plain
2187  colorspace: RGB
2188  block: {width: 1, height: 1, depth: 1}
2189  channels: [SP8, SP8, SP8]
2190  swizzles: [X, Y, Z, 1]
2191- name: R8G8B8A8_SINT
2192  layout: plain
2193  colorspace: RGB
2194  block: {width: 1, height: 1, depth: 1}
2195  channels: [SP8, SP8, SP8, SP8]
2196  swizzles: [X, Y, Z, W]
2197  little_endian:
2198    alias: RGBA8888_SINT
2199
2200
2201- name: R16_UINT
2202  layout: plain
2203  colorspace: RGB
2204  block: {width: 1, height: 1, depth: 1}
2205  channels: [UP16]
2206  swizzles: [X, 0, 0, 1]
2207- name: R16G16_UINT
2208  layout: plain
2209  colorspace: RGB
2210  block: {width: 1, height: 1, depth: 1}
2211  channels: [UP16, UP16]
2212  swizzles: [X, Y, 0, 1]
2213- name: R16G16B16_UINT
2214  layout: plain
2215  colorspace: RGB
2216  block: {width: 1, height: 1, depth: 1}
2217  channels: [UP16, UP16, UP16]
2218  swizzles: [X, Y, Z, 1]
2219- name: R16G16B16A16_UINT
2220  layout: plain
2221  colorspace: RGB
2222  block: {width: 1, height: 1, depth: 1}
2223  channels: [UP16, UP16, UP16, UP16]
2224  swizzles: [X, Y, Z, W]
2225
2226
2227- name: R16_SINT
2228  layout: plain
2229  colorspace: RGB
2230  block: {width: 1, height: 1, depth: 1}
2231  channels: [SP16]
2232  swizzles: [X, 0, 0, 1]
2233- name: R16G16_SINT
2234  layout: plain
2235  colorspace: RGB
2236  block: {width: 1, height: 1, depth: 1}
2237  channels: [SP16, SP16]
2238  swizzles: [X, Y, 0, 1]
2239- name: R16G16B16_SINT
2240  layout: plain
2241  colorspace: RGB
2242  block: {width: 1, height: 1, depth: 1}
2243  channels: [SP16, SP16, SP16]
2244  swizzles: [X, Y, Z, 1]
2245- name: R16G16B16A16_SINT
2246  layout: plain
2247  colorspace: RGB
2248  block: {width: 1, height: 1, depth: 1}
2249  channels: [SP16, SP16, SP16, SP16]
2250  swizzles: [X, Y, Z, W]
2251
2252
2253- name: R32_UINT
2254  layout: plain
2255  colorspace: RGB
2256  block: {width: 1, height: 1, depth: 1}
2257  channels: [UP32]
2258  swizzles: [X, 0, 0, 1]
2259- name: R32G32_UINT
2260  layout: plain
2261  colorspace: RGB
2262  block: {width: 1, height: 1, depth: 1}
2263  channels: [UP32, UP32]
2264  swizzles: [X, Y, 0, 1]
2265- name: R32G32B32_UINT
2266  layout: plain
2267  colorspace: RGB
2268  block: {width: 1, height: 1, depth: 1}
2269  channels: [UP32, UP32, UP32]
2270  swizzles: [X, Y, Z, 1]
2271- name: R32G32B32A32_UINT
2272  layout: plain
2273  colorspace: RGB
2274  block: {width: 1, height: 1, depth: 1}
2275  channels: [UP32, UP32, UP32, UP32]
2276  swizzles: [X, Y, Z, W]
2277
2278
2279- name: R32_SINT
2280  layout: plain
2281  colorspace: RGB
2282  block: {width: 1, height: 1, depth: 1}
2283  channels: [SP32]
2284  swizzles: [X, 0, 0, 1]
2285- name: R32G32_SINT
2286  layout: plain
2287  colorspace: RGB
2288  block: {width: 1, height: 1, depth: 1}
2289  channels: [SP32, SP32]
2290  swizzles: [X, Y, 0, 1]
2291- name: R32G32B32_SINT
2292  layout: plain
2293  colorspace: RGB
2294  block: {width: 1, height: 1, depth: 1}
2295  channels: [SP32, SP32, SP32]
2296  swizzles: [X, Y, Z, 1]
2297- name: R32G32B32A32_SINT
2298  layout: plain
2299  colorspace: RGB
2300  block: {width: 1, height: 1, depth: 1}
2301  channels: [SP32, SP32, SP32, SP32]
2302  swizzles: [X, Y, Z, W]
2303
2304
2305- name: R64_UINT
2306  layout: plain
2307  colorspace: RGB
2308  block: {width: 1, height: 1, depth: 1}
2309  channels: [UP64]
2310  swizzles: [X, 0, 0, 1]
2311- name: R64G64_UINT
2312  layout: plain
2313  colorspace: RGB
2314  block: {width: 1, height: 1, depth: 1}
2315  channels: [UP64, UP64]
2316  swizzles: [X, Y, 0, 1]
2317- name: R64G64B64_UINT
2318  layout: plain
2319  colorspace: RGB
2320  block: {width: 1, height: 1, depth: 1}
2321  channels: [UP64, UP64, UP64]
2322  swizzles: [X, Y, Z, 1]
2323- name: R64G64B64A64_UINT
2324  layout: plain
2325  colorspace: RGB
2326  block: {width: 1, height: 1, depth: 1}
2327  channels: [UP64, UP64, UP64, UP64]
2328  swizzles: [X, Y, Z, W]
2329
2330
2331- name: R64_SINT
2332  layout: plain
2333  colorspace: RGB
2334  block: {width: 1, height: 1, depth: 1}
2335  channels: [SP64]
2336  swizzles: [X, 0, 0, 1]
2337- name: R64G64_SINT
2338  layout: plain
2339  colorspace: RGB
2340  block: {width: 1, height: 1, depth: 1}
2341  channels: [SP64, SP64]
2342  swizzles: [X, Y, 0, 1]
2343- name: R64G64B64_SINT
2344  layout: plain
2345  colorspace: RGB
2346  block: {width: 1, height: 1, depth: 1}
2347  channels: [SP64, SP64, SP64]
2348  swizzles: [X, Y, Z, 1]
2349- name: R64G64B64A64_SINT
2350  layout: plain
2351  colorspace: RGB
2352  block: {width: 1, height: 1, depth: 1}
2353  channels: [SP64, SP64, SP64, SP64]
2354  swizzles: [X, Y, Z, W]
2355
2356
2357- name: A8_UINT
2358  layout: plain
2359  colorspace: RGB
2360  block: {width: 1, height: 1, depth: 1}
2361  channels: [UP8]
2362  swizzles: [0, 0, 0, X]
2363- name: I8_UINT
2364  layout: plain
2365  colorspace: RGB
2366  block: {width: 1, height: 1, depth: 1}
2367  channels: [UP8]
2368  swizzles: [X, X, X, X]
2369- name: L8_UINT
2370  layout: plain
2371  colorspace: RGB
2372  block: {width: 1, height: 1, depth: 1}
2373  channels: [UP8]
2374  swizzles: [X, X, X, 1]
2375- name: L8A8_UINT
2376  layout: plain
2377  colorspace: RGB
2378  block: {width: 1, height: 1, depth: 1}
2379  channels: [UP8, UP8]
2380  swizzles: [X, X, X, Y]
2381
2382
2383- name: A8_SINT
2384  layout: plain
2385  colorspace: RGB
2386  block: {width: 1, height: 1, depth: 1}
2387  channels: [SP8]
2388  swizzles: [0, 0, 0, X]
2389- name: I8_SINT
2390  layout: plain
2391  colorspace: RGB
2392  block: {width: 1, height: 1, depth: 1}
2393  channels: [SP8]
2394  swizzles: [X, X, X, X]
2395- name: L8_SINT
2396  layout: plain
2397  colorspace: RGB
2398  block: {width: 1, height: 1, depth: 1}
2399  channels: [SP8]
2400  swizzles: [X, X, X, 1]
2401- name: L8A8_SINT
2402  layout: plain
2403  colorspace: RGB
2404  block: {width: 1, height: 1, depth: 1}
2405  channels: [SP8, SP8]
2406  swizzles: [X, X, X, Y]
2407
2408
2409- name: A16_UINT
2410  layout: plain
2411  colorspace: RGB
2412  block: {width: 1, height: 1, depth: 1}
2413  channels: [UP16]
2414  swizzles: [0, 0, 0, X]
2415- name: I16_UINT
2416  layout: plain
2417  colorspace: RGB
2418  block: {width: 1, height: 1, depth: 1}
2419  channels: [UP16]
2420  swizzles: [X, X, X, X]
2421- name: L16_UINT
2422  layout: plain
2423  colorspace: RGB
2424  block: {width: 1, height: 1, depth: 1}
2425  channels: [UP16]
2426  swizzles: [X, X, X, 1]
2427- name: L16A16_UINT
2428  layout: plain
2429  colorspace: RGB
2430  block: {width: 1, height: 1, depth: 1}
2431  channels: [UP16, UP16]
2432  swizzles: [X, X, X, Y]
2433
2434- name: A16_SINT
2435  layout: plain
2436  colorspace: RGB
2437  block: {width: 1, height: 1, depth: 1}
2438  channels: [SP16]
2439  swizzles: [0, 0, 0, X]
2440- name: I16_SINT
2441  layout: plain
2442  colorspace: RGB
2443  block: {width: 1, height: 1, depth: 1}
2444  channels: [SP16]
2445  swizzles: [X, X, X, X]
2446- name: L16_SINT
2447  layout: plain
2448  colorspace: RGB
2449  block: {width: 1, height: 1, depth: 1}
2450  channels: [SP16]
2451  swizzles: [X, X, X, 1]
2452- name: L16A16_SINT
2453  layout: plain
2454  colorspace: RGB
2455  block: {width: 1, height: 1, depth: 1}
2456  channels: [SP16, SP16]
2457  swizzles: [X, X, X, Y]
2458
2459
2460- name: A32_UINT
2461  layout: plain
2462  colorspace: RGB
2463  block: {width: 1, height: 1, depth: 1}
2464  channels: [UP32]
2465  swizzles: [0, 0, 0, X]
2466- name: I32_UINT
2467  layout: plain
2468  colorspace: RGB
2469  block: {width: 1, height: 1, depth: 1}
2470  channels: [UP32]
2471  swizzles: [X, X, X, X]
2472- name: L32_UINT
2473  layout: plain
2474  colorspace: RGB
2475  block: {width: 1, height: 1, depth: 1}
2476  channels: [UP32]
2477  swizzles: [X, X, X, 1]
2478- name: L32A32_UINT
2479  layout: plain
2480  colorspace: RGB
2481  block: {width: 1, height: 1, depth: 1}
2482  channels: [UP32, UP32]
2483  swizzles: [X, X, X, Y]
2484
2485
2486- name: A32_SINT
2487  layout: plain
2488  colorspace: RGB
2489  block: {width: 1, height: 1, depth: 1}
2490  channels: [SP32]
2491  swizzles: [0, 0, 0, X]
2492- name: I32_SINT
2493  layout: plain
2494  colorspace: RGB
2495  block: {width: 1, height: 1, depth: 1}
2496  channels: [SP32]
2497  swizzles: [X, X, X, X]
2498- name: L32_SINT
2499  layout: plain
2500  colorspace: RGB
2501  block: {width: 1, height: 1, depth: 1}
2502  channels: [SP32]
2503  swizzles: [X, X, X, 1]
2504- name: L32A32_SINT
2505  layout: plain
2506  colorspace: RGB
2507  block: {width: 1, height: 1, depth: 1}
2508  channels: [SP32, SP32]
2509  swizzles: [X, X, X, Y]
2510
2511
2512- name: B8G8R8_UINT
2513  layout: plain
2514  colorspace: RGB
2515  block: {width: 1, height: 1, depth: 1}
2516  channels: [UP8, UP8, UP8]
2517  swizzles: [Z, Y, X, 1]
2518- name: B8G8R8A8_UINT
2519  layout: plain
2520  colorspace: RGB
2521  block: {width: 1, height: 1, depth: 1}
2522  channels: [UP8, UP8, UP8, UP8]
2523  swizzles: [Z, Y, X, W]
2524  little_endian:
2525    alias: BGRA8888_UINT
2526  big_endian:
2527    alias: ARGB8888_UINT
2528
2529
2530- name: B8G8R8_SINT
2531  layout: plain
2532  colorspace: RGB
2533  block: {width: 1, height: 1, depth: 1}
2534  channels: [SP8, SP8, SP8]
2535  swizzles: [Z, Y, X, 1]
2536- name: B8G8R8A8_SINT
2537  layout: plain
2538  colorspace: RGB
2539  block: {width: 1, height: 1, depth: 1}
2540  channels: [SP8, SP8, SP8, SP8]
2541  swizzles: [Z, Y, X, W]
2542
2543
2544- name: A8R8G8B8_UINT
2545  layout: plain
2546  colorspace: RGB
2547  block: {width: 1, height: 1, depth: 1}
2548  channels: [UP8, UP8, UP8, UP8]
2549  swizzles: [Y, Z, W, X]
2550  little_endian:
2551    alias: ARGB8888_UINT
2552  big_endian:
2553    alias: BGRA8888_UINT
2554- name: A8B8G8R8_UINT
2555  layout: plain
2556  colorspace: RGB
2557  block: {width: 1, height: 1, depth: 1}
2558  channels: [UP8, UP8, UP8, UP8]
2559  swizzles: [W, Z, Y, X]
2560  little_endian:
2561    alias: ABGR8888_UINT
2562  big_endian:
2563    alias: RGBA8888_UINT
2564- name: A2R10G10B10_UINT
2565  layout: plain
2566  colorspace: RGB
2567  block: {width: 1, height: 1, depth: 1}
2568  channels: [UP2, UP10, UP10, UP10]
2569  swizzles: [Y, Z, W, X]
2570- name: A2B10G10R10_UINT
2571  layout: plain
2572  colorspace: RGB
2573  block: {width: 1, height: 1, depth: 1}
2574  channels: [UP2, UP10, UP10, UP10]
2575  swizzles: [W, Z, Y, X]
2576- name: B10G10R10A2_UINT
2577  layout: plain
2578  colorspace: RGB
2579  block: {width: 1, height: 1, depth: 1}
2580  channels: [UP10, UP10, UP10, UP2]
2581  swizzles: [Z, Y, X, W]
2582- name: B10G10R10A2_SINT
2583  layout: plain
2584  colorspace: RGB
2585  block: {width: 1, height: 1, depth: 1}
2586  channels: [SP10, SP10, SP10, SP2]
2587  swizzles: [Z, Y, X, W]
2588- name: R5G6B5_UINT
2589  layout: plain
2590  colorspace: RGB
2591  block: {width: 1, height: 1, depth: 1}
2592  channels: [UP5, UP6, UP5]
2593  swizzles: [X, Y, Z, 1]
2594- name: B5G6R5_UINT
2595  layout: plain
2596  colorspace: RGB
2597  block: {width: 1, height: 1, depth: 1}
2598  channels: [UP5, UP6, UP5]
2599  swizzles: [Z, Y, X, 1]
2600- name: R3G3B2_UINT
2601  layout: plain
2602  colorspace: RGB
2603  block: {width: 1, height: 1, depth: 1}
2604  channels: [UP3, UP3, UP2]
2605  swizzles: [X, Y, Z, 1]
2606- name: B2G3R3_UINT
2607  layout: plain
2608  colorspace: RGB
2609  block: {width: 1, height: 1, depth: 1}
2610  channels: [UP2, UP3, UP3]
2611  swizzles: [Z, Y, X, 1]
2612- name: R4G4B4A4_UINT
2613  layout: plain
2614  colorspace: RGB
2615  block: {width: 1, height: 1, depth: 1}
2616  channels: [UP4, UP4, UP4, UP4]
2617  swizzles: [X, Y, Z, W]
2618- name: B4G4R4A4_UINT
2619  layout: plain
2620  colorspace: RGB
2621  block: {width: 1, height: 1, depth: 1}
2622  channels: [UP4, UP4, UP4, UP4]
2623  swizzles: [Z, Y, X, W]
2624- name: A4R4G4B4_UINT
2625  layout: plain
2626  colorspace: RGB
2627  block: {width: 1, height: 1, depth: 1}
2628  channels: [UP4, UP4, UP4, UP4]
2629  swizzles: [Y, Z, W, X]
2630- name: A4B4G4R4_UINT
2631  layout: plain
2632  colorspace: RGB
2633  block: {width: 1, height: 1, depth: 1}
2634  channels: [UP4, UP4, UP4, UP4]
2635  swizzles: [W, Z, Y, X]
2636- name: A1R5G5B5_UINT
2637  layout: plain
2638  colorspace: RGB
2639  block: {width: 1, height: 1, depth: 1}
2640  channels: [UP1, UP5, UP5, UP5]
2641  swizzles: [Y, Z, W, X]
2642- name: A1B5G5R5_UINT
2643  layout: plain
2644  colorspace: RGB
2645  block: {width: 1, height: 1, depth: 1}
2646  channels: [UP1, UP5, UP5, UP5]
2647  swizzles: [W, Z, Y, X]
2648- name: R5G5B5A1_UINT
2649  layout: plain
2650  colorspace: RGB
2651  block: {width: 1, height: 1, depth: 1}
2652  channels: [UP5, UP5, UP5, UP1]
2653  swizzles: [X, Y, Z, W]
2654- name: B5G5R5A1_UINT
2655  layout: plain
2656  colorspace: RGB
2657  block: {width: 1, height: 1, depth: 1}
2658  channels: [UP5, UP5, UP5, UP1]
2659  swizzles: [Z, Y, X, W]
2660
2661
2662- name: R8G8B8X8_SNORM
2663  layout: plain
2664  colorspace: RGB
2665  block: {width: 1, height: 1, depth: 1}
2666  channels: [SN8, SN8, SN8, X8]
2667  swizzles: [X, Y, Z, 1]
2668  little_endian:
2669    alias: RGBX8888_SNORM
2670  big_endian:
2671    alias: XBGR8888_SNORM
2672- name: R8G8B8X8_SRGB
2673  layout: plain
2674  colorspace: SRGB
2675  block: {width: 1, height: 1, depth: 1}
2676  channels: [UN8, UN8, UN8, X8]
2677  swizzles: [X, Y, Z, 1]
2678  little_endian:
2679    alias: RGBX8888_SRGB
2680  big_endian:
2681    alias: XBGR8888_SRGB
2682- name: R8G8B8X8_UINT
2683  layout: plain
2684  colorspace: RGB
2685  block: {width: 1, height: 1, depth: 1}
2686  channels: [UP8, UP8, UP8, X8]
2687  swizzles: [X, Y, Z, 1]
2688- name: R8G8B8X8_SINT
2689  layout: plain
2690  colorspace: RGB
2691  block: {width: 1, height: 1, depth: 1}
2692  channels: [SP8, SP8, SP8, X8]
2693  swizzles: [X, Y, Z, 1]
2694- name: B10G10R10X2_UNORM
2695  layout: plain
2696  colorspace: RGB
2697  block: {width: 1, height: 1, depth: 1}
2698  channels: [UN10, UN10, UN10, X2]
2699  swizzles: [Z, Y, X, 1]
2700- name: B10G10R10X2_SNORM
2701  layout: plain
2702  colorspace: RGB
2703  block: {width: 1, height: 1, depth: 1}
2704  channels: [SN10, SN10, SN10, X2]
2705  swizzles: [Z, Y, X, 1]
2706- name: B10G10R10X2_SINT
2707  layout: plain
2708  colorspace: RGB
2709  block: {width: 1, height: 1, depth: 1}
2710  channels: [SP10, SP10, SP10, X2]
2711  swizzles: [Z, Y, X, 1]
2712- name: R16G16B16X16_UNORM
2713  layout: plain
2714  colorspace: RGB
2715  block: {width: 1, height: 1, depth: 1}
2716  channels: [UN16, UN16, UN16, X16]
2717  swizzles: [X, Y, Z, 1]
2718- name: R16G16B16X16_SNORM
2719  layout: plain
2720  colorspace: RGB
2721  block: {width: 1, height: 1, depth: 1}
2722  channels: [SN16, SN16, SN16, X16]
2723  swizzles: [X, Y, Z, 1]
2724- name: R16G16B16X16_FLOAT
2725  layout: plain
2726  colorspace: RGB
2727  block: {width: 1, height: 1, depth: 1}
2728  channels: [F16, F16, F16, X16]
2729  swizzles: [X, Y, Z, 1]
2730- name: R16G16B16X16_UINT
2731  layout: plain
2732  colorspace: RGB
2733  block: {width: 1, height: 1, depth: 1}
2734  channels: [UP16, UP16, UP16, X16]
2735  swizzles: [X, Y, Z, 1]
2736- name: R16G16B16X16_SINT
2737  layout: plain
2738  colorspace: RGB
2739  block: {width: 1, height: 1, depth: 1}
2740  channels: [SP16, SP16, SP16, X16]
2741  swizzles: [X, Y, Z, 1]
2742- name: R32G32B32X32_FLOAT
2743  layout: plain
2744  colorspace: RGB
2745  block: {width: 1, height: 1, depth: 1}
2746  channels: [F32, F32, F32, X32]
2747  swizzles: [X, Y, Z, 1]
2748- name: R32G32B32X32_UINT
2749  layout: plain
2750  colorspace: RGB
2751  block: {width: 1, height: 1, depth: 1}
2752  channels: [UP32, UP32, UP32, X32]
2753  swizzles: [X, Y, Z, 1]
2754- name: R32G32B32X32_SINT
2755  layout: plain
2756  colorspace: RGB
2757  block: {width: 1, height: 1, depth: 1}
2758  channels: [SP32, SP32, SP32, X32]
2759  swizzles: [X, Y, Z, 1]
2760
2761
2762- name: R8A8_SNORM
2763  layout: plain
2764  colorspace: RGB
2765  block: {width: 1, height: 1, depth: 1}
2766  channels: [SN8, SN8]
2767  swizzles: [X, 0, 0, Y]
2768- name: R16A16_UNORM
2769  layout: plain
2770  colorspace: RGB
2771  block: {width: 1, height: 1, depth: 1}
2772  channels: [UN16, UN16]
2773  swizzles: [X, 0, 0, Y]
2774- name: R16A16_SNORM
2775  layout: plain
2776  colorspace: RGB
2777  block: {width: 1, height: 1, depth: 1}
2778  channels: [SN16, SN16]
2779  swizzles: [X, 0, 0, Y]
2780- name: R16A16_FLOAT
2781  layout: plain
2782  colorspace: RGB
2783  block: {width: 1, height: 1, depth: 1}
2784  channels: [F16, F16]
2785  swizzles: [X, 0, 0, Y]
2786- name: R32A32_FLOAT
2787  layout: plain
2788  colorspace: RGB
2789  block: {width: 1, height: 1, depth: 1}
2790  channels: [F32, F32]
2791  swizzles: [X, 0, 0, Y]
2792- name: R8A8_UINT
2793  layout: plain
2794  colorspace: RGB
2795  block: {width: 1, height: 1, depth: 1}
2796  channels: [UP8, UP8]
2797  swizzles: [X, 0, 0, Y]
2798- name: R8A8_SINT
2799  layout: plain
2800  colorspace: RGB
2801  block: {width: 1, height: 1, depth: 1}
2802  channels: [SP8, SP8]
2803  swizzles: [X, 0, 0, Y]
2804- name: R16A16_UINT
2805  layout: plain
2806  colorspace: RGB
2807  block: {width: 1, height: 1, depth: 1}
2808  channels: [UP16, UP16]
2809  swizzles: [X, 0, 0, Y]
2810- name: R16A16_SINT
2811  layout: plain
2812  colorspace: RGB
2813  block: {width: 1, height: 1, depth: 1}
2814  channels: [SP16, SP16]
2815  swizzles: [X, 0, 0, Y]
2816- name: R32A32_UINT
2817  layout: plain
2818  colorspace: RGB
2819  block: {width: 1, height: 1, depth: 1}
2820  channels: [UP32, UP32]
2821  swizzles: [X, 0, 0, Y]
2822- name: R32A32_SINT
2823  layout: plain
2824  colorspace: RGB
2825  block: {width: 1, height: 1, depth: 1}
2826  channels: [SP32, SP32]
2827  swizzles: [X, 0, 0, Y]
2828- name: R10G10B10A2_UINT
2829  layout: plain
2830  colorspace: RGB
2831  block: {width: 1, height: 1, depth: 1}
2832  channels: [UP10, UP10, UP10, UP2]
2833  swizzles: [X, Y, Z, W]
2834- name: R10G10B10A2_SINT
2835  layout: plain
2836  colorspace: RGB
2837  block: {width: 1, height: 1, depth: 1}
2838  channels: [SP10, SP10, SP10, SP2]
2839  swizzles: [X, Y, Z, W]
2840
2841
2842- name: B5G6R5_SRGB
2843  layout: plain
2844  colorspace: SRGB
2845  block: {width: 1, height: 1, depth: 1}
2846  channels: [UN5, UN6, UN5]
2847  swizzles: [Z, Y, X, 1]
2848- name: R5G6B5_SRGB
2849  layout: plain
2850  colorspace: SRGB
2851  block: {width: 1, height: 1, depth: 1}
2852  channels: [UN5, UN6, UN5]
2853  swizzles: [X, Y, Z, 1]
2854
2855
2856- name: G8R8_UNORM
2857  layout: plain
2858  colorspace: RGB
2859  block: {width: 1, height: 1, depth: 1}
2860  channels: [UN8, UN8]
2861  swizzles: [Y, X, 0, 1]
2862  little_endian:
2863    alias: GR88_UNORM
2864  big_endian:
2865    alias: RG88_UNORM
2866- name: G8R8_SNORM
2867  layout: plain
2868  colorspace: RGB
2869  block: {width: 1, height: 1, depth: 1}
2870  channels: [SN8, SN8]
2871  swizzles: [Y, X, 0, 1]
2872  little_endian:
2873    alias: GR88_SNORM
2874  big_endian:
2875    alias: RG88_SNORM
2876- name: G8R8_SINT
2877  layout: plain
2878  colorspace: RGB
2879  block: {width: 1, height: 1, depth: 1}
2880  channels: [SP8, SP8]
2881  swizzles: [Y, X, 0, 1]
2882- name: G16R16_UNORM
2883  layout: plain
2884  colorspace: RGB
2885  block: {width: 1, height: 1, depth: 1}
2886  channels: [UN16, UN16]
2887  swizzles: [Y, X, 0, 1]
2888  little_endian:
2889    alias: GR1616_UNORM
2890  big_endian:
2891    alias: RG1616_UNORM
2892- name: G16R16_SNORM
2893  layout: plain
2894  colorspace: RGB
2895  block: {width: 1, height: 1, depth: 1}
2896  channels: [SN16, SN16]
2897  swizzles: [Y, X, 0, 1]
2898  little_endian:
2899    alias: GR1616_SNORM
2900  big_endian:
2901    alias: RG1616_SNORM
2902- name: G16R16_SINT
2903  layout: plain
2904  colorspace: RGB
2905  block: {width: 1, height: 1, depth: 1}
2906  channels: [SP16, SP16]
2907  swizzles: [Y, X, 0, 1]
2908
2909
2910- name: A8B8G8R8_SNORM
2911  layout: plain
2912  colorspace: RGB
2913  block: {width: 1, height: 1, depth: 1}
2914  channels: [SN8, SN8, SN8, SN8]
2915  swizzles: [W, Z, Y, X]
2916  little_endian:
2917    alias: ABGR8888_SNORM
2918  big_endian:
2919    alias: RGBA8888_SNORM
2920- name: A8B8G8R8_SINT
2921  layout: plain
2922  colorspace: RGB
2923  block: {width: 1, height: 1, depth: 1}
2924  channels: [SP8, SP8, SP8, SP8]
2925  swizzles: [W, Z, Y, X]
2926  big_endian:
2927    alias: RGBA8888_SINT
2928- name: X8B8G8R8_SNORM
2929  layout: plain
2930  colorspace: RGB
2931  block: {width: 1, height: 1, depth: 1}
2932  channels: [X8, SN8, SN8, SN8]
2933  swizzles: [W, Z, Y, 1]
2934  little_endian:
2935    alias: XBGR8888_SNORM
2936  big_endian:
2937    alias: RGBX8888_SNORM
2938- name: X8B8G8R8_SINT
2939  layout: plain
2940  colorspace: RGB
2941  block: {width: 1, height: 1, depth: 1}
2942  channels: [X8, SP8, SP8, SP8]
2943  swizzles: [W, Z, Y, 1]
2944