• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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- name: NV15
1904  layout: planar2
1905  colorspace: YUV
1906  block: {width: 1, height: 1, depth: 1}
1907  channels: []
1908  swizzles: [X, Y, Z, W]
1909- name: NV20
1910  layout: planar2
1911  colorspace: YUV
1912  block: {width: 1, height: 1, depth: 1}
1913  channels: []
1914  swizzles: [X, Y, Z, W]
1915
1916# RGB versions of NV12, YV12, P010, and P012 for hardware that supports sampling
1917# from multiplane textures but needs color-space conversion in the shader.
1918- name: R8_G8B8_420_UNORM
1919  layout: planar2
1920  colorspace: RGB
1921  block: {width: 1, height: 1, depth: 1}
1922  channels: [UN8]
1923  swizzles: [X, Y, Z, W]
1924- name: R8_B8G8_420_UNORM
1925  layout: planar2
1926  colorspace: RGB
1927  block: {width: 1, height: 1, depth: 1}
1928  channels: [UN8]
1929  swizzles: [X, Y, Z, W]
1930- name: G8_B8R8_420_UNORM
1931  layout: planar2
1932  colorspace: RGB
1933  block: {width: 1, height: 1, depth: 1}
1934  channels: [UN8]
1935  swizzles: [X, Y, Z, W]
1936- name: R8_G8B8_422_UNORM
1937  layout: planar2
1938  colorspace: RGB
1939  block: {width: 1, height: 1, depth: 1}
1940  channels: [UN8]
1941  swizzles: [X, Y, Z, W]
1942- name: R10_G10B10_420_UNORM
1943  layout: planar2
1944  colorspace: RGB
1945  block: {width: 4, height: 1, depth: 1}
1946  channels: [UN40]
1947  swizzles: [X, Y, Z, W]
1948- name: R10_G10B10_422_UNORM
1949  layout: planar2
1950  colorspace: RGB
1951  block: {width: 4, height: 1, depth: 1}
1952  channels: [UN40]
1953  swizzles: [X, Y, Z, W]
1954- name: R8_G8_B8_420_UNORM
1955  layout: planar3
1956  colorspace: RGB
1957  block: {width: 1, height: 1, depth: 1}
1958  channels: [UN8]
1959  swizzles: [X, Y, Z, W]
1960- name: R8_B8_G8_420_UNORM
1961  layout: planar3
1962  colorspace: RGB
1963  block: {width: 1, height: 1, depth: 1}
1964  channels: [UN8]
1965  swizzles: [X, Y, Z, W]
1966- name: G8_B8_R8_420_UNORM
1967  layout: planar3
1968  colorspace: RGB
1969  block: {width: 1, height: 1, depth: 1}
1970  channels: [UN8]
1971  swizzles: [X, Y, Z, W]
1972- name: R8_G8_B8_UNORM
1973  layout: planar3
1974  colorspace: RGB
1975  block: {width: 1, height: 1, depth: 1}
1976  channels: [UN8]
1977  swizzles: [X, Y, Z, W]
1978- name: X6G10_X6B10X6R10_420_UNORM
1979  layout: planar2
1980  colorspace: RGB
1981  block: {width: 1, height: 1, depth: 1}
1982  channels: [X6, UN10]
1983  swizzles: [X, Y, Z, W]
1984- name: X4G12_X4B12X4R12_420_UNORM
1985  layout: planar2
1986  colorspace: RGB
1987  block: {width: 1, height: 1, depth: 1}
1988  channels: [X4, UN12]
1989  swizzles: [X, Y, Z, W]
1990
1991# While most of Mesa uses R8 for Y, U, and V planes, freedreno requires
1992# distinguishing between tiled Y8 data and tiled R8 data.
1993- name: Y8_UNORM
1994  layout: other
1995  colorspace: YUV
1996  block: {width: 1, height: 1, depth: 1}
1997  channels: [UN8]
1998  swizzles: [X, 0, 0, 1]
1999
2000# Formats for plane 0/plane 1 of P010
2001- name: X6R10_UNORM
2002  layout: plain
2003  colorspace: RGB
2004  block: {width: 1, height: 1, depth: 1}
2005  channels: [X6, UN10]
2006  swizzles: [Y, 0, 0, 1]
2007- name: X6R10X6G10_UNORM
2008  layout: plain
2009  colorspace: RGB
2010  block: {width: 1, height: 1, depth: 1}
2011  channels: [X6, UN10, X6, UN10]
2012  swizzles: [Y, W, 0, 1]
2013
2014# Formats for plane 0/plane 1 of P012
2015- name: X4R12_UNORM
2016  layout: plain
2017  colorspace: RGB
2018  block: {width: 1, height: 1, depth: 1}
2019  channels: [X4, UN12]
2020  swizzles: [Y, 0, 0, 1]
2021- name: X4R12X4G12_UNORM
2022  layout: plain
2023  colorspace: RGB
2024  block: {width: 1, height: 1, depth: 1}
2025  channels: [X4, UN12, X4, UN12]
2026  swizzles: [Y, W, 0, 1]
2027
2028
2029- name: Y8_U8_V8_422_UNORM
2030  layout: planar3
2031  colorspace: YUV
2032  block: {width: 1, height: 1, depth: 1}
2033  channels: []
2034  swizzles: [X, Y, Z, W]
2035- name: NV16
2036  layout: planar2
2037  colorspace: YUV
2038  block: {width: 1, height: 1, depth: 1}
2039  channels: []
2040  swizzles: [X, Y, Z, W]
2041- name: Y8_U8_V8_444_UNORM
2042  layout: planar3
2043  colorspace: YUV
2044  block: {width: 1, height: 1, depth: 1}
2045  channels: []
2046  swizzles: [X, Y, Z, W]
2047- name: Y8_U8_V8_440_UNORM
2048  layout: planar3
2049  colorspace: YUV
2050  block: {width: 1, height: 1, depth: 1}
2051  channels: []
2052  swizzles: [X, Y, Z, W]
2053
2054
2055- name: Y16_U16_V16_420_UNORM
2056  layout: planar3
2057  colorspace: YUV
2058  block: {width: 1, height: 1, depth: 1}
2059  channels: []
2060  swizzles: [X, Y, Z, W]
2061- name: Y16_U16_V16_422_UNORM
2062  layout: planar3
2063  colorspace: YUV
2064  block: {width: 1, height: 1, depth: 1}
2065  channels: []
2066  swizzles: [X, Y, Z, W]
2067- name: Y16_U16V16_422_UNORM
2068  layout: planar2
2069  colorspace: YUV
2070  block: {width: 1, height: 1, depth: 1}
2071  channels: []
2072  swizzles: [X, Y, Z, W]
2073- name: Y16_U16_V16_444_UNORM
2074  layout: planar3
2075  colorspace: YUV
2076  block: {width: 1, height: 1, depth: 1}
2077  channels: []
2078  swizzles: [X, Y, Z, W]
2079
2080
2081- name: P010
2082  layout: planar2
2083  colorspace: YUV
2084  block: {width: 1, height: 1, depth: 1}
2085  channels: []
2086  swizzles: [X, Y, Z, W]
2087- name: P012
2088  layout: planar2
2089  colorspace: YUV
2090  block: {width: 1, height: 1, depth: 1}
2091  channels: []
2092  swizzles: [X, Y, Z, W]
2093- name: P016
2094  layout: planar2
2095  colorspace: YUV
2096  block: {width: 1, height: 1, depth: 1}
2097  channels: []
2098  swizzles: [X, Y, Z, W]
2099- name: P030
2100  layout: planar2
2101  colorspace: YUV
2102  block: {width: 1, height: 1, depth: 1}
2103  channels: []
2104  swizzles: [X, Y, Z, W]
2105
2106
2107- name: Y210
2108  layout: subsampled
2109  colorspace: YUV
2110  block: {width: 2, height: 1, depth: 1}
2111  channels: [X64]
2112  swizzles: [X, Y, Z, 1]
2113- name: Y212
2114  layout: subsampled
2115  colorspace: YUV
2116  block: {width: 2, height: 1, depth: 1}
2117  channels: [X64]
2118  swizzles: [X, Y, Z, 1]
2119- name: Y216
2120  layout: subsampled
2121  colorspace: YUV
2122  block: {width: 2, height: 1, depth: 1}
2123  channels: [X64]
2124  swizzles: [X, Y, Z, 1]
2125
2126
2127- name: Y410
2128  layout: other
2129  colorspace: YUV
2130  block: {width: 1, height: 1, depth: 1}
2131  channels: [UN10, UN10, UN10, UN2]
2132  swizzles: [Y, Z, X, W]
2133- name: Y412
2134  layout: other
2135  colorspace: YUV
2136  block: {width: 1, height: 1, depth: 1}
2137  channels: [UN16, UN16, UN16, UN16]
2138  swizzles: [Y, Z, X, W]
2139- name: Y416
2140  layout: other
2141  colorspace: YUV
2142  block: {width: 1, height: 1, depth: 1}
2143  channels: [UN16, UN16, UN16, UN16]
2144  swizzles: [Y, Z, X, W]
2145
2146
2147# Usually used to implement IA44 and AI44 formats in video decoding
2148- name: A4R4_UNORM
2149  layout: plain
2150  colorspace: RGB
2151  block: {width: 1, height: 1, depth: 1}
2152  channels: [UN4, UN4]
2153  swizzles: [Y, 0, 0, X]
2154- name: R4A4_UNORM
2155  layout: plain
2156  colorspace: RGB
2157  block: {width: 1, height: 1, depth: 1}
2158  channels: [UN4, UN4]
2159  swizzles: [X, 0, 0, Y]
2160- name: R8A8_UNORM
2161  layout: plain
2162  colorspace: RGB
2163  block: {width: 1, height: 1, depth: 1}
2164  channels: [UN8, UN8]
2165  swizzles: [X, 0, 0, Y]
2166- name: A8R8_UNORM
2167  layout: plain
2168  colorspace: RGB
2169  block: {width: 1, height: 1, depth: 1}
2170  channels: [UN8, UN8]
2171  swizzles: [Y, 0, 0, X]
2172
2173
2174# ARB_vertex_type_10_10_10_2_REV
2175- name: R10G10B10A2_USCALED
2176  layout: plain
2177  colorspace: RGB
2178  block: {width: 1, height: 1, depth: 1}
2179  channels: [U10, U10, U10, U2]
2180  swizzles: [X, Y, Z, W]
2181- name: R10G10B10A2_SSCALED
2182  layout: plain
2183  colorspace: RGB
2184  block: {width: 1, height: 1, depth: 1}
2185  channels: [S10, S10, S10, S2]
2186  swizzles: [X, Y, Z, W]
2187- name: R10G10B10A2_SNORM
2188  layout: plain
2189  colorspace: RGB
2190  block: {width: 1, height: 1, depth: 1}
2191  channels: [SN10, SN10, SN10, SN2]
2192  swizzles: [X, Y, Z, W]
2193- name: B10G10R10A2_USCALED
2194  layout: plain
2195  colorspace: RGB
2196  block: {width: 1, height: 1, depth: 1}
2197  channels: [U10, U10, U10, U2]
2198  swizzles: [Z, Y, X, W]
2199- name: B10G10R10A2_SSCALED
2200  layout: plain
2201  colorspace: RGB
2202  block: {width: 1, height: 1, depth: 1}
2203  channels: [S10, S10, S10, S2]
2204  swizzles: [Z, Y, X, W]
2205- name: B10G10R10A2_SNORM
2206  layout: plain
2207  colorspace: RGB
2208  block: {width: 1, height: 1, depth: 1}
2209  channels: [SN10, SN10, SN10, SN2]
2210  swizzles: [Z, Y, X, W]
2211
2212
2213- name: R8_UINT
2214  layout: plain
2215  colorspace: RGB
2216  block: {width: 1, height: 1, depth: 1}
2217  channels: [UP8]
2218  swizzles: [X, 0, 0, 1]
2219- name: R8G8_UINT
2220  layout: plain
2221  colorspace: RGB
2222  block: {width: 1, height: 1, depth: 1}
2223  channels: [UP8, UP8]
2224  swizzles: [X, Y, 0, 1]
2225- name: R8G8B8_UINT
2226  layout: plain
2227  colorspace: RGB
2228  block: {width: 1, height: 1, depth: 1}
2229  channels: [UP8, UP8, UP8]
2230  swizzles: [X, Y, Z, 1]
2231- name: R8G8B8A8_UINT
2232  layout: plain
2233  colorspace: RGB
2234  block: {width: 1, height: 1, depth: 1}
2235  channels: [UP8, UP8, UP8, UP8]
2236  swizzles: [X, Y, Z, W]
2237  little_endian:
2238    alias: RGBA8888_UINT
2239  big_endian:
2240    alias: ABGR8888_UINT
2241
2242
2243- name: R8_SINT
2244  layout: plain
2245  colorspace: RGB
2246  block: {width: 1, height: 1, depth: 1}
2247  channels: [SP8]
2248  swizzles: [X, 0, 0, 1]
2249- name: R8G8_SINT
2250  layout: plain
2251  colorspace: RGB
2252  block: {width: 1, height: 1, depth: 1}
2253  channels: [SP8, SP8]
2254  swizzles: [X, Y, 0, 1]
2255- name: R8G8B8_SINT
2256  layout: plain
2257  colorspace: RGB
2258  block: {width: 1, height: 1, depth: 1}
2259  channels: [SP8, SP8, SP8]
2260  swizzles: [X, Y, Z, 1]
2261- name: R8G8B8A8_SINT
2262  layout: plain
2263  colorspace: RGB
2264  block: {width: 1, height: 1, depth: 1}
2265  channels: [SP8, SP8, SP8, SP8]
2266  swizzles: [X, Y, Z, W]
2267  little_endian:
2268    alias: RGBA8888_SINT
2269
2270
2271- name: R16_UINT
2272  layout: plain
2273  colorspace: RGB
2274  block: {width: 1, height: 1, depth: 1}
2275  channels: [UP16]
2276  swizzles: [X, 0, 0, 1]
2277- name: R16G16_UINT
2278  layout: plain
2279  colorspace: RGB
2280  block: {width: 1, height: 1, depth: 1}
2281  channels: [UP16, UP16]
2282  swizzles: [X, Y, 0, 1]
2283- name: R16G16B16_UINT
2284  layout: plain
2285  colorspace: RGB
2286  block: {width: 1, height: 1, depth: 1}
2287  channels: [UP16, UP16, UP16]
2288  swizzles: [X, Y, Z, 1]
2289- name: R16G16B16A16_UINT
2290  layout: plain
2291  colorspace: RGB
2292  block: {width: 1, height: 1, depth: 1}
2293  channels: [UP16, UP16, UP16, UP16]
2294  swizzles: [X, Y, Z, W]
2295
2296
2297- name: R16_SINT
2298  layout: plain
2299  colorspace: RGB
2300  block: {width: 1, height: 1, depth: 1}
2301  channels: [SP16]
2302  swizzles: [X, 0, 0, 1]
2303- name: R16G16_SINT
2304  layout: plain
2305  colorspace: RGB
2306  block: {width: 1, height: 1, depth: 1}
2307  channels: [SP16, SP16]
2308  swizzles: [X, Y, 0, 1]
2309- name: R16G16B16_SINT
2310  layout: plain
2311  colorspace: RGB
2312  block: {width: 1, height: 1, depth: 1}
2313  channels: [SP16, SP16, SP16]
2314  swizzles: [X, Y, Z, 1]
2315- name: R16G16B16A16_SINT
2316  layout: plain
2317  colorspace: RGB
2318  block: {width: 1, height: 1, depth: 1}
2319  channels: [SP16, SP16, SP16, SP16]
2320  swizzles: [X, Y, Z, W]
2321
2322
2323- name: R32_UINT
2324  layout: plain
2325  colorspace: RGB
2326  block: {width: 1, height: 1, depth: 1}
2327  channels: [UP32]
2328  swizzles: [X, 0, 0, 1]
2329- name: R32G32_UINT
2330  layout: plain
2331  colorspace: RGB
2332  block: {width: 1, height: 1, depth: 1}
2333  channels: [UP32, UP32]
2334  swizzles: [X, Y, 0, 1]
2335- name: R32G32B32_UINT
2336  layout: plain
2337  colorspace: RGB
2338  block: {width: 1, height: 1, depth: 1}
2339  channels: [UP32, UP32, UP32]
2340  swizzles: [X, Y, Z, 1]
2341- name: R32G32B32A32_UINT
2342  layout: plain
2343  colorspace: RGB
2344  block: {width: 1, height: 1, depth: 1}
2345  channels: [UP32, UP32, UP32, UP32]
2346  swizzles: [X, Y, Z, W]
2347
2348
2349- name: R32_SINT
2350  layout: plain
2351  colorspace: RGB
2352  block: {width: 1, height: 1, depth: 1}
2353  channels: [SP32]
2354  swizzles: [X, 0, 0, 1]
2355- name: R32G32_SINT
2356  layout: plain
2357  colorspace: RGB
2358  block: {width: 1, height: 1, depth: 1}
2359  channels: [SP32, SP32]
2360  swizzles: [X, Y, 0, 1]
2361- name: R32G32B32_SINT
2362  layout: plain
2363  colorspace: RGB
2364  block: {width: 1, height: 1, depth: 1}
2365  channels: [SP32, SP32, SP32]
2366  swizzles: [X, Y, Z, 1]
2367- name: R32G32B32A32_SINT
2368  layout: plain
2369  colorspace: RGB
2370  block: {width: 1, height: 1, depth: 1}
2371  channels: [SP32, SP32, SP32, SP32]
2372  swizzles: [X, Y, Z, W]
2373
2374
2375- name: R64_UINT
2376  layout: plain
2377  colorspace: RGB
2378  block: {width: 1, height: 1, depth: 1}
2379  channels: [UP64]
2380  swizzles: [X, 0, 0, 1]
2381- name: R64G64_UINT
2382  layout: plain
2383  colorspace: RGB
2384  block: {width: 1, height: 1, depth: 1}
2385  channels: [UP64, UP64]
2386  swizzles: [X, Y, 0, 1]
2387- name: R64G64B64_UINT
2388  layout: plain
2389  colorspace: RGB
2390  block: {width: 1, height: 1, depth: 1}
2391  channels: [UP64, UP64, UP64]
2392  swizzles: [X, Y, Z, 1]
2393- name: R64G64B64A64_UINT
2394  layout: plain
2395  colorspace: RGB
2396  block: {width: 1, height: 1, depth: 1}
2397  channels: [UP64, UP64, UP64, UP64]
2398  swizzles: [X, Y, Z, W]
2399
2400
2401- name: R64_SINT
2402  layout: plain
2403  colorspace: RGB
2404  block: {width: 1, height: 1, depth: 1}
2405  channels: [SP64]
2406  swizzles: [X, 0, 0, 1]
2407- name: R64G64_SINT
2408  layout: plain
2409  colorspace: RGB
2410  block: {width: 1, height: 1, depth: 1}
2411  channels: [SP64, SP64]
2412  swizzles: [X, Y, 0, 1]
2413- name: R64G64B64_SINT
2414  layout: plain
2415  colorspace: RGB
2416  block: {width: 1, height: 1, depth: 1}
2417  channels: [SP64, SP64, SP64]
2418  swizzles: [X, Y, Z, 1]
2419- name: R64G64B64A64_SINT
2420  layout: plain
2421  colorspace: RGB
2422  block: {width: 1, height: 1, depth: 1}
2423  channels: [SP64, SP64, SP64, SP64]
2424  swizzles: [X, Y, Z, W]
2425
2426
2427- name: A8_UINT
2428  layout: plain
2429  colorspace: RGB
2430  block: {width: 1, height: 1, depth: 1}
2431  channels: [UP8]
2432  swizzles: [0, 0, 0, X]
2433- name: I8_UINT
2434  layout: plain
2435  colorspace: RGB
2436  block: {width: 1, height: 1, depth: 1}
2437  channels: [UP8]
2438  swizzles: [X, X, X, X]
2439- name: L8_UINT
2440  layout: plain
2441  colorspace: RGB
2442  block: {width: 1, height: 1, depth: 1}
2443  channels: [UP8]
2444  swizzles: [X, X, X, 1]
2445- name: L8A8_UINT
2446  layout: plain
2447  colorspace: RGB
2448  block: {width: 1, height: 1, depth: 1}
2449  channels: [UP8, UP8]
2450  swizzles: [X, X, X, Y]
2451
2452
2453- name: A8_SINT
2454  layout: plain
2455  colorspace: RGB
2456  block: {width: 1, height: 1, depth: 1}
2457  channels: [SP8]
2458  swizzles: [0, 0, 0, X]
2459- name: I8_SINT
2460  layout: plain
2461  colorspace: RGB
2462  block: {width: 1, height: 1, depth: 1}
2463  channels: [SP8]
2464  swizzles: [X, X, X, X]
2465- name: L8_SINT
2466  layout: plain
2467  colorspace: RGB
2468  block: {width: 1, height: 1, depth: 1}
2469  channels: [SP8]
2470  swizzles: [X, X, X, 1]
2471- name: L8A8_SINT
2472  layout: plain
2473  colorspace: RGB
2474  block: {width: 1, height: 1, depth: 1}
2475  channels: [SP8, SP8]
2476  swizzles: [X, X, X, Y]
2477
2478
2479- name: A16_UINT
2480  layout: plain
2481  colorspace: RGB
2482  block: {width: 1, height: 1, depth: 1}
2483  channels: [UP16]
2484  swizzles: [0, 0, 0, X]
2485- name: I16_UINT
2486  layout: plain
2487  colorspace: RGB
2488  block: {width: 1, height: 1, depth: 1}
2489  channels: [UP16]
2490  swizzles: [X, X, X, X]
2491- name: L16_UINT
2492  layout: plain
2493  colorspace: RGB
2494  block: {width: 1, height: 1, depth: 1}
2495  channels: [UP16]
2496  swizzles: [X, X, X, 1]
2497- name: L16A16_UINT
2498  layout: plain
2499  colorspace: RGB
2500  block: {width: 1, height: 1, depth: 1}
2501  channels: [UP16, UP16]
2502  swizzles: [X, X, X, Y]
2503
2504- name: A16_SINT
2505  layout: plain
2506  colorspace: RGB
2507  block: {width: 1, height: 1, depth: 1}
2508  channels: [SP16]
2509  swizzles: [0, 0, 0, X]
2510- name: I16_SINT
2511  layout: plain
2512  colorspace: RGB
2513  block: {width: 1, height: 1, depth: 1}
2514  channels: [SP16]
2515  swizzles: [X, X, X, X]
2516- name: L16_SINT
2517  layout: plain
2518  colorspace: RGB
2519  block: {width: 1, height: 1, depth: 1}
2520  channels: [SP16]
2521  swizzles: [X, X, X, 1]
2522- name: L16A16_SINT
2523  layout: plain
2524  colorspace: RGB
2525  block: {width: 1, height: 1, depth: 1}
2526  channels: [SP16, SP16]
2527  swizzles: [X, X, X, Y]
2528
2529
2530- name: A32_UINT
2531  layout: plain
2532  colorspace: RGB
2533  block: {width: 1, height: 1, depth: 1}
2534  channels: [UP32]
2535  swizzles: [0, 0, 0, X]
2536- name: I32_UINT
2537  layout: plain
2538  colorspace: RGB
2539  block: {width: 1, height: 1, depth: 1}
2540  channels: [UP32]
2541  swizzles: [X, X, X, X]
2542- name: L32_UINT
2543  layout: plain
2544  colorspace: RGB
2545  block: {width: 1, height: 1, depth: 1}
2546  channels: [UP32]
2547  swizzles: [X, X, X, 1]
2548- name: L32A32_UINT
2549  layout: plain
2550  colorspace: RGB
2551  block: {width: 1, height: 1, depth: 1}
2552  channels: [UP32, UP32]
2553  swizzles: [X, X, X, Y]
2554
2555
2556- name: A32_SINT
2557  layout: plain
2558  colorspace: RGB
2559  block: {width: 1, height: 1, depth: 1}
2560  channels: [SP32]
2561  swizzles: [0, 0, 0, X]
2562- name: I32_SINT
2563  layout: plain
2564  colorspace: RGB
2565  block: {width: 1, height: 1, depth: 1}
2566  channels: [SP32]
2567  swizzles: [X, X, X, X]
2568- name: L32_SINT
2569  layout: plain
2570  colorspace: RGB
2571  block: {width: 1, height: 1, depth: 1}
2572  channels: [SP32]
2573  swizzles: [X, X, X, 1]
2574- name: L32A32_SINT
2575  layout: plain
2576  colorspace: RGB
2577  block: {width: 1, height: 1, depth: 1}
2578  channels: [SP32, SP32]
2579  swizzles: [X, X, X, Y]
2580
2581
2582- name: B8G8R8_UINT
2583  layout: plain
2584  colorspace: RGB
2585  block: {width: 1, height: 1, depth: 1}
2586  channels: [UP8, UP8, UP8]
2587  swizzles: [Z, Y, X, 1]
2588- name: B8G8R8A8_UINT
2589  layout: plain
2590  colorspace: RGB
2591  block: {width: 1, height: 1, depth: 1}
2592  channels: [UP8, UP8, UP8, UP8]
2593  swizzles: [Z, Y, X, W]
2594  little_endian:
2595    alias: BGRA8888_UINT
2596  big_endian:
2597    alias: ARGB8888_UINT
2598
2599
2600- name: B8G8R8_SINT
2601  layout: plain
2602  colorspace: RGB
2603  block: {width: 1, height: 1, depth: 1}
2604  channels: [SP8, SP8, SP8]
2605  swizzles: [Z, Y, X, 1]
2606- name: B8G8R8A8_SINT
2607  layout: plain
2608  colorspace: RGB
2609  block: {width: 1, height: 1, depth: 1}
2610  channels: [SP8, SP8, SP8, SP8]
2611  swizzles: [Z, Y, X, W]
2612
2613
2614- name: A8R8G8B8_UINT
2615  layout: plain
2616  colorspace: RGB
2617  block: {width: 1, height: 1, depth: 1}
2618  channels: [UP8, UP8, UP8, UP8]
2619  swizzles: [Y, Z, W, X]
2620  little_endian:
2621    alias: ARGB8888_UINT
2622  big_endian:
2623    alias: BGRA8888_UINT
2624- name: A8B8G8R8_UINT
2625  layout: plain
2626  colorspace: RGB
2627  block: {width: 1, height: 1, depth: 1}
2628  channels: [UP8, UP8, UP8, UP8]
2629  swizzles: [W, Z, Y, X]
2630  little_endian:
2631    alias: ABGR8888_UINT
2632  big_endian:
2633    alias: RGBA8888_UINT
2634- name: A2R10G10B10_UINT
2635  layout: plain
2636  colorspace: RGB
2637  block: {width: 1, height: 1, depth: 1}
2638  channels: [UP2, UP10, UP10, UP10]
2639  swizzles: [Y, Z, W, X]
2640- name: A2B10G10R10_UINT
2641  layout: plain
2642  colorspace: RGB
2643  block: {width: 1, height: 1, depth: 1}
2644  channels: [UP2, UP10, UP10, UP10]
2645  swizzles: [W, Z, Y, X]
2646- name: B10G10R10A2_UINT
2647  layout: plain
2648  colorspace: RGB
2649  block: {width: 1, height: 1, depth: 1}
2650  channels: [UP10, UP10, UP10, UP2]
2651  swizzles: [Z, Y, X, W]
2652- name: B10G10R10A2_SINT
2653  layout: plain
2654  colorspace: RGB
2655  block: {width: 1, height: 1, depth: 1}
2656  channels: [SP10, SP10, SP10, SP2]
2657  swizzles: [Z, Y, X, W]
2658- name: R5G6B5_UINT
2659  layout: plain
2660  colorspace: RGB
2661  block: {width: 1, height: 1, depth: 1}
2662  channels: [UP5, UP6, UP5]
2663  swizzles: [X, Y, Z, 1]
2664- name: B5G6R5_UINT
2665  layout: plain
2666  colorspace: RGB
2667  block: {width: 1, height: 1, depth: 1}
2668  channels: [UP5, UP6, UP5]
2669  swizzles: [Z, Y, X, 1]
2670- name: R3G3B2_UINT
2671  layout: plain
2672  colorspace: RGB
2673  block: {width: 1, height: 1, depth: 1}
2674  channels: [UP3, UP3, UP2]
2675  swizzles: [X, Y, Z, 1]
2676- name: B2G3R3_UINT
2677  layout: plain
2678  colorspace: RGB
2679  block: {width: 1, height: 1, depth: 1}
2680  channels: [UP2, UP3, UP3]
2681  swizzles: [Z, Y, X, 1]
2682- name: R4G4B4A4_UINT
2683  layout: plain
2684  colorspace: RGB
2685  block: {width: 1, height: 1, depth: 1}
2686  channels: [UP4, UP4, UP4, UP4]
2687  swizzles: [X, Y, Z, W]
2688- name: B4G4R4A4_UINT
2689  layout: plain
2690  colorspace: RGB
2691  block: {width: 1, height: 1, depth: 1}
2692  channels: [UP4, UP4, UP4, UP4]
2693  swizzles: [Z, Y, X, W]
2694- name: A4R4G4B4_UINT
2695  layout: plain
2696  colorspace: RGB
2697  block: {width: 1, height: 1, depth: 1}
2698  channels: [UP4, UP4, UP4, UP4]
2699  swizzles: [Y, Z, W, X]
2700- name: A4B4G4R4_UINT
2701  layout: plain
2702  colorspace: RGB
2703  block: {width: 1, height: 1, depth: 1}
2704  channels: [UP4, UP4, UP4, UP4]
2705  swizzles: [W, Z, Y, X]
2706- name: A1R5G5B5_UINT
2707  layout: plain
2708  colorspace: RGB
2709  block: {width: 1, height: 1, depth: 1}
2710  channels: [UP1, UP5, UP5, UP5]
2711  swizzles: [Y, Z, W, X]
2712- name: A1B5G5R5_UINT
2713  layout: plain
2714  colorspace: RGB
2715  block: {width: 1, height: 1, depth: 1}
2716  channels: [UP1, UP5, UP5, UP5]
2717  swizzles: [W, Z, Y, X]
2718- name: R5G5B5A1_UINT
2719  layout: plain
2720  colorspace: RGB
2721  block: {width: 1, height: 1, depth: 1}
2722  channels: [UP5, UP5, UP5, UP1]
2723  swizzles: [X, Y, Z, W]
2724- name: B5G5R5A1_UINT
2725  layout: plain
2726  colorspace: RGB
2727  block: {width: 1, height: 1, depth: 1}
2728  channels: [UP5, UP5, UP5, UP1]
2729  swizzles: [Z, Y, X, W]
2730
2731
2732- name: R8G8B8X8_SNORM
2733  layout: plain
2734  colorspace: RGB
2735  block: {width: 1, height: 1, depth: 1}
2736  channels: [SN8, SN8, SN8, X8]
2737  swizzles: [X, Y, Z, 1]
2738  little_endian:
2739    alias: RGBX8888_SNORM
2740  big_endian:
2741    alias: XBGR8888_SNORM
2742- name: R8G8B8X8_SRGB
2743  layout: plain
2744  colorspace: SRGB
2745  block: {width: 1, height: 1, depth: 1}
2746  channels: [UN8, UN8, UN8, X8]
2747  swizzles: [X, Y, Z, 1]
2748  little_endian:
2749    alias: RGBX8888_SRGB
2750  big_endian:
2751    alias: XBGR8888_SRGB
2752- name: R8G8B8X8_UINT
2753  layout: plain
2754  colorspace: RGB
2755  block: {width: 1, height: 1, depth: 1}
2756  channels: [UP8, UP8, UP8, X8]
2757  swizzles: [X, Y, Z, 1]
2758- name: R8G8B8X8_SINT
2759  layout: plain
2760  colorspace: RGB
2761  block: {width: 1, height: 1, depth: 1}
2762  channels: [SP8, SP8, SP8, X8]
2763  swizzles: [X, Y, Z, 1]
2764- name: B10G10R10X2_UNORM
2765  layout: plain
2766  colorspace: RGB
2767  block: {width: 1, height: 1, depth: 1}
2768  channels: [UN10, UN10, UN10, X2]
2769  swizzles: [Z, Y, X, 1]
2770- name: B10G10R10X2_SNORM
2771  layout: plain
2772  colorspace: RGB
2773  block: {width: 1, height: 1, depth: 1}
2774  channels: [SN10, SN10, SN10, X2]
2775  swizzles: [Z, Y, X, 1]
2776- name: B10G10R10X2_SINT
2777  layout: plain
2778  colorspace: RGB
2779  block: {width: 1, height: 1, depth: 1}
2780  channels: [SP10, SP10, SP10, X2]
2781  swizzles: [Z, Y, X, 1]
2782- name: R16G16B16X16_UNORM
2783  layout: plain
2784  colorspace: RGB
2785  block: {width: 1, height: 1, depth: 1}
2786  channels: [UN16, UN16, UN16, X16]
2787  swizzles: [X, Y, Z, 1]
2788- name: R16G16B16X16_SNORM
2789  layout: plain
2790  colorspace: RGB
2791  block: {width: 1, height: 1, depth: 1}
2792  channels: [SN16, SN16, SN16, X16]
2793  swizzles: [X, Y, Z, 1]
2794- name: R16G16B16X16_FLOAT
2795  layout: plain
2796  colorspace: RGB
2797  block: {width: 1, height: 1, depth: 1}
2798  channels: [F16, F16, F16, X16]
2799  swizzles: [X, Y, Z, 1]
2800- name: R16G16B16X16_UINT
2801  layout: plain
2802  colorspace: RGB
2803  block: {width: 1, height: 1, depth: 1}
2804  channels: [UP16, UP16, UP16, X16]
2805  swizzles: [X, Y, Z, 1]
2806- name: R16G16B16X16_SINT
2807  layout: plain
2808  colorspace: RGB
2809  block: {width: 1, height: 1, depth: 1}
2810  channels: [SP16, SP16, SP16, X16]
2811  swizzles: [X, Y, Z, 1]
2812- name: R32G32B32X32_FLOAT
2813  layout: plain
2814  colorspace: RGB
2815  block: {width: 1, height: 1, depth: 1}
2816  channels: [F32, F32, F32, X32]
2817  swizzles: [X, Y, Z, 1]
2818- name: R32G32B32X32_UINT
2819  layout: plain
2820  colorspace: RGB
2821  block: {width: 1, height: 1, depth: 1}
2822  channels: [UP32, UP32, UP32, X32]
2823  swizzles: [X, Y, Z, 1]
2824- name: R32G32B32X32_SINT
2825  layout: plain
2826  colorspace: RGB
2827  block: {width: 1, height: 1, depth: 1}
2828  channels: [SP32, SP32, SP32, X32]
2829  swizzles: [X, Y, Z, 1]
2830
2831
2832- name: R8A8_SNORM
2833  layout: plain
2834  colorspace: RGB
2835  block: {width: 1, height: 1, depth: 1}
2836  channels: [SN8, SN8]
2837  swizzles: [X, 0, 0, Y]
2838- name: R16A16_UNORM
2839  layout: plain
2840  colorspace: RGB
2841  block: {width: 1, height: 1, depth: 1}
2842  channels: [UN16, UN16]
2843  swizzles: [X, 0, 0, Y]
2844- name: R16A16_SNORM
2845  layout: plain
2846  colorspace: RGB
2847  block: {width: 1, height: 1, depth: 1}
2848  channels: [SN16, SN16]
2849  swizzles: [X, 0, 0, Y]
2850- name: R16A16_FLOAT
2851  layout: plain
2852  colorspace: RGB
2853  block: {width: 1, height: 1, depth: 1}
2854  channels: [F16, F16]
2855  swizzles: [X, 0, 0, Y]
2856- name: R32A32_FLOAT
2857  layout: plain
2858  colorspace: RGB
2859  block: {width: 1, height: 1, depth: 1}
2860  channels: [F32, F32]
2861  swizzles: [X, 0, 0, Y]
2862- name: R8A8_UINT
2863  layout: plain
2864  colorspace: RGB
2865  block: {width: 1, height: 1, depth: 1}
2866  channels: [UP8, UP8]
2867  swizzles: [X, 0, 0, Y]
2868- name: R8A8_SINT
2869  layout: plain
2870  colorspace: RGB
2871  block: {width: 1, height: 1, depth: 1}
2872  channels: [SP8, SP8]
2873  swizzles: [X, 0, 0, Y]
2874- name: R16A16_UINT
2875  layout: plain
2876  colorspace: RGB
2877  block: {width: 1, height: 1, depth: 1}
2878  channels: [UP16, UP16]
2879  swizzles: [X, 0, 0, Y]
2880- name: R16A16_SINT
2881  layout: plain
2882  colorspace: RGB
2883  block: {width: 1, height: 1, depth: 1}
2884  channels: [SP16, SP16]
2885  swizzles: [X, 0, 0, Y]
2886- name: R32A32_UINT
2887  layout: plain
2888  colorspace: RGB
2889  block: {width: 1, height: 1, depth: 1}
2890  channels: [UP32, UP32]
2891  swizzles: [X, 0, 0, Y]
2892- name: R32A32_SINT
2893  layout: plain
2894  colorspace: RGB
2895  block: {width: 1, height: 1, depth: 1}
2896  channels: [SP32, SP32]
2897  swizzles: [X, 0, 0, Y]
2898- name: R10G10B10A2_UINT
2899  layout: plain
2900  colorspace: RGB
2901  block: {width: 1, height: 1, depth: 1}
2902  channels: [UP10, UP10, UP10, UP2]
2903  swizzles: [X, Y, Z, W]
2904- name: R10G10B10A2_SINT
2905  layout: plain
2906  colorspace: RGB
2907  block: {width: 1, height: 1, depth: 1}
2908  channels: [SP10, SP10, SP10, SP2]
2909  swizzles: [X, Y, Z, W]
2910
2911
2912- name: B5G6R5_SRGB
2913  layout: plain
2914  colorspace: SRGB
2915  block: {width: 1, height: 1, depth: 1}
2916  channels: [UN5, UN6, UN5]
2917  swizzles: [Z, Y, X, 1]
2918- name: R5G6B5_SRGB
2919  layout: plain
2920  colorspace: SRGB
2921  block: {width: 1, height: 1, depth: 1}
2922  channels: [UN5, UN6, UN5]
2923  swizzles: [X, Y, Z, 1]
2924
2925
2926- name: G8R8_UNORM
2927  layout: plain
2928  colorspace: RGB
2929  block: {width: 1, height: 1, depth: 1}
2930  channels: [UN8, UN8]
2931  swizzles: [Y, X, 0, 1]
2932  little_endian:
2933    alias: GR88_UNORM
2934  big_endian:
2935    alias: RG88_UNORM
2936- name: G8R8_SNORM
2937  layout: plain
2938  colorspace: RGB
2939  block: {width: 1, height: 1, depth: 1}
2940  channels: [SN8, SN8]
2941  swizzles: [Y, X, 0, 1]
2942  little_endian:
2943    alias: GR88_SNORM
2944  big_endian:
2945    alias: RG88_SNORM
2946- name: G8R8_SINT
2947  layout: plain
2948  colorspace: RGB
2949  block: {width: 1, height: 1, depth: 1}
2950  channels: [SP8, SP8]
2951  swizzles: [Y, X, 0, 1]
2952- name: G16R16_UNORM
2953  layout: plain
2954  colorspace: RGB
2955  block: {width: 1, height: 1, depth: 1}
2956  channels: [UN16, UN16]
2957  swizzles: [Y, X, 0, 1]
2958  little_endian:
2959    alias: GR1616_UNORM
2960  big_endian:
2961    alias: RG1616_UNORM
2962- name: G16R16_SNORM
2963  layout: plain
2964  colorspace: RGB
2965  block: {width: 1, height: 1, depth: 1}
2966  channels: [SN16, SN16]
2967  swizzles: [Y, X, 0, 1]
2968  little_endian:
2969    alias: GR1616_SNORM
2970  big_endian:
2971    alias: RG1616_SNORM
2972- name: G16R16_SINT
2973  layout: plain
2974  colorspace: RGB
2975  block: {width: 1, height: 1, depth: 1}
2976  channels: [SP16, SP16]
2977  swizzles: [Y, X, 0, 1]
2978
2979
2980- name: A8B8G8R8_SNORM
2981  layout: plain
2982  colorspace: RGB
2983  block: {width: 1, height: 1, depth: 1}
2984  channels: [SN8, SN8, SN8, SN8]
2985  swizzles: [W, Z, Y, X]
2986  little_endian:
2987    alias: ABGR8888_SNORM
2988  big_endian:
2989    alias: RGBA8888_SNORM
2990- name: A8B8G8R8_SINT
2991  layout: plain
2992  colorspace: RGB
2993  block: {width: 1, height: 1, depth: 1}
2994  channels: [SP8, SP8, SP8, SP8]
2995  swizzles: [W, Z, Y, X]
2996  big_endian:
2997    alias: RGBA8888_SINT
2998- name: X8B8G8R8_SNORM
2999  layout: plain
3000  colorspace: RGB
3001  block: {width: 1, height: 1, depth: 1}
3002  channels: [X8, SN8, SN8, SN8]
3003  swizzles: [W, Z, Y, 1]
3004  little_endian:
3005    alias: XBGR8888_SNORM
3006  big_endian:
3007    alias: RGBX8888_SNORM
3008- name: X8B8G8R8_SINT
3009  layout: plain
3010  colorspace: RGB
3011  block: {width: 1, height: 1, depth: 1}
3012  channels: [X8, SP8, SP8, SP8]
3013  swizzles: [W, Z, Y, 1]
3014