1
/**************************************************************************
3
* Copyright 2007 VMware, Inc.
4
* Copyright (c) 2008 VMware, Inc.
7
* Permission is hereby granted, free of charge, to any person obtaining a
8
* copy of this software and associated documentation files (the
9
* "Software"), to deal in the Software without restriction, including
10
* without limitation the rights to use, copy, modify, merge, publish,
11
* distribute, sub license, and/or sell copies of the Software, and to
12
* permit persons to whom the Software is furnished to do so, subject to
13
* the following conditions:
15
* The above copyright notice and this permission notice (including the
16
* next paragraph) shall be included in all copies or substantial portions
19
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
22
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
23
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
**************************************************************************/
39
* Formats for textures, surfaces and vertex data
43
/* Vertex formats must be first and must be <= 255. */
44
PIPE_FORMAT_R64_UINT, /**< raw doubles (ARB_vertex_attrib_64bit) */
45
PIPE_FORMAT_R64G64_UINT,
46
PIPE_FORMAT_R64G64B64_UINT,
47
PIPE_FORMAT_R64G64B64A64_UINT,
48
PIPE_FORMAT_R64_FLOAT, /**< doubles converted to float */
49
PIPE_FORMAT_R64G64_FLOAT,
50
PIPE_FORMAT_R64G64B64_FLOAT,
51
PIPE_FORMAT_R64G64B64A64_FLOAT,
52
PIPE_FORMAT_R32_FLOAT,
53
PIPE_FORMAT_R32G32_FLOAT,
54
PIPE_FORMAT_R32G32B32_FLOAT,
55
PIPE_FORMAT_R32G32B32A32_FLOAT,
56
PIPE_FORMAT_R32_UNORM,
57
PIPE_FORMAT_R32G32_UNORM,
58
PIPE_FORMAT_R32G32B32_UNORM,
59
PIPE_FORMAT_R32G32B32A32_UNORM,
60
PIPE_FORMAT_R32_USCALED,
61
PIPE_FORMAT_R32G32_USCALED,
62
PIPE_FORMAT_R32G32B32_USCALED,
63
PIPE_FORMAT_R32G32B32A32_USCALED,
64
PIPE_FORMAT_R32_SNORM,
65
PIPE_FORMAT_R32G32_SNORM,
66
PIPE_FORMAT_R32G32B32_SNORM,
67
PIPE_FORMAT_R32G32B32A32_SNORM,
68
PIPE_FORMAT_R32_SSCALED,
69
PIPE_FORMAT_R32G32_SSCALED,
70
PIPE_FORMAT_R32G32B32_SSCALED,
71
PIPE_FORMAT_R32G32B32A32_SSCALED,
72
PIPE_FORMAT_R16_UNORM,
73
PIPE_FORMAT_R16G16_UNORM,
74
PIPE_FORMAT_R16G16B16_UNORM,
75
PIPE_FORMAT_R16G16B16A16_UNORM,
76
PIPE_FORMAT_R16_USCALED,
77
PIPE_FORMAT_R16G16_USCALED,
78
PIPE_FORMAT_R16G16B16_USCALED,
79
PIPE_FORMAT_R16G16B16A16_USCALED,
80
PIPE_FORMAT_R16_SNORM,
81
PIPE_FORMAT_R16G16_SNORM,
82
PIPE_FORMAT_R16G16B16_SNORM,
83
PIPE_FORMAT_R16G16B16A16_SNORM,
84
PIPE_FORMAT_R16_SSCALED,
85
PIPE_FORMAT_R16G16_SSCALED,
86
PIPE_FORMAT_R16G16B16_SSCALED,
87
PIPE_FORMAT_R16G16B16A16_SSCALED,
89
PIPE_FORMAT_R8G8_UNORM,
90
PIPE_FORMAT_R8G8B8_UNORM,
91
PIPE_FORMAT_R8G8B8A8_UNORM,
92
PIPE_FORMAT_B8G8R8A8_UNORM,
93
PIPE_FORMAT_R8_USCALED,
94
PIPE_FORMAT_R8G8_USCALED,
95
PIPE_FORMAT_R8G8B8_USCALED,
96
PIPE_FORMAT_B8G8R8_USCALED,
97
PIPE_FORMAT_R8G8B8A8_USCALED,
98
PIPE_FORMAT_B8G8R8A8_USCALED,
99
PIPE_FORMAT_A8B8G8R8_USCALED,
100
PIPE_FORMAT_R8_SNORM,
101
PIPE_FORMAT_R8G8_SNORM,
102
PIPE_FORMAT_R8G8B8_SNORM,
103
PIPE_FORMAT_B8G8R8_SNORM,
104
PIPE_FORMAT_R8G8B8A8_SNORM,
105
PIPE_FORMAT_B8G8R8A8_SNORM,
106
PIPE_FORMAT_R8_SSCALED,
107
PIPE_FORMAT_R8G8_SSCALED,
108
PIPE_FORMAT_R8G8B8_SSCALED,
109
PIPE_FORMAT_B8G8R8_SSCALED,
110
PIPE_FORMAT_R8G8B8A8_SSCALED,
111
PIPE_FORMAT_B8G8R8A8_SSCALED,
112
PIPE_FORMAT_A8B8G8R8_SSCALED,
113
PIPE_FORMAT_A8R8G8B8_UNORM,
114
PIPE_FORMAT_R32_FIXED,
115
PIPE_FORMAT_R32G32_FIXED,
116
PIPE_FORMAT_R32G32B32_FIXED,
117
PIPE_FORMAT_R32G32B32A32_FIXED,
118
PIPE_FORMAT_R16_FLOAT,
119
PIPE_FORMAT_R16G16_FLOAT,
120
PIPE_FORMAT_R16G16B16_FLOAT,
121
PIPE_FORMAT_R16G16B16A16_FLOAT,
123
PIPE_FORMAT_R8G8_UINT,
124
PIPE_FORMAT_R8G8B8_UINT,
125
PIPE_FORMAT_R8G8B8A8_UINT,
127
PIPE_FORMAT_R8G8_SINT,
128
PIPE_FORMAT_R8G8B8_SINT,
129
PIPE_FORMAT_R8G8B8A8_SINT,
130
PIPE_FORMAT_R16_UINT,
131
PIPE_FORMAT_R16G16_UINT,
132
PIPE_FORMAT_R16G16B16_UINT,
133
PIPE_FORMAT_R16G16B16A16_UINT,
134
PIPE_FORMAT_R16_SINT,
135
PIPE_FORMAT_R16G16_SINT,
136
PIPE_FORMAT_R16G16B16_SINT,
137
PIPE_FORMAT_R16G16B16A16_SINT,
138
PIPE_FORMAT_R32_UINT,
139
PIPE_FORMAT_R32G32_UINT,
140
PIPE_FORMAT_R32G32B32_UINT,
141
PIPE_FORMAT_R32G32B32A32_UINT,
142
PIPE_FORMAT_R32_SINT,
143
PIPE_FORMAT_R32G32_SINT,
144
PIPE_FORMAT_R32G32B32_SINT,
145
PIPE_FORMAT_R32G32B32A32_SINT,
147
PIPE_FORMAT_R10G10B10A2_UNORM,
148
PIPE_FORMAT_R10G10B10A2_SNORM,
149
PIPE_FORMAT_R10G10B10A2_USCALED,
150
PIPE_FORMAT_R10G10B10A2_SSCALED,
152
PIPE_FORMAT_B10G10R10A2_UNORM,
153
PIPE_FORMAT_B10G10R10A2_SNORM,
154
PIPE_FORMAT_B10G10R10A2_USCALED,
155
PIPE_FORMAT_B10G10R10A2_SSCALED,
157
PIPE_FORMAT_R11G11B10_FLOAT,
159
PIPE_FORMAT_B10G10R10A2_UINT,
160
PIPE_FORMAT_B10G10R10A2_SINT,
162
/* End of vertex formats. */
164
/* Texture-only formats are below. */
165
PIPE_FORMAT_B8G8R8_UNORM,
166
PIPE_FORMAT_B8G8R8X8_UNORM,
167
PIPE_FORMAT_X8B8G8R8_UNORM,
168
PIPE_FORMAT_X8R8G8B8_UNORM,
169
PIPE_FORMAT_B5G5R5A1_UNORM,
170
PIPE_FORMAT_R4G4B4A4_UNORM,
171
PIPE_FORMAT_B4G4R4A4_UNORM,
172
PIPE_FORMAT_R5G6B5_UNORM,
173
PIPE_FORMAT_B5G6R5_UNORM,
174
PIPE_FORMAT_L8_UNORM, /**< ubyte luminance */
175
PIPE_FORMAT_A8_UNORM, /**< ubyte alpha */
176
PIPE_FORMAT_I8_UNORM, /**< ubyte intensity */
177
PIPE_FORMAT_L8A8_UNORM, /**< ubyte alpha, luminance */
178
PIPE_FORMAT_L16_UNORM, /**< ushort luminance */
181
PIPE_FORMAT_Z16_UNORM,
182
PIPE_FORMAT_Z16_UNORM_S8_UINT,
183
PIPE_FORMAT_Z32_UNORM,
184
PIPE_FORMAT_Z32_FLOAT,
185
PIPE_FORMAT_Z24_UNORM_S8_UINT,
186
PIPE_FORMAT_S8_UINT_Z24_UNORM,
187
PIPE_FORMAT_Z24X8_UNORM,
188
PIPE_FORMAT_X8Z24_UNORM,
189
PIPE_FORMAT_S8_UINT, /**< ubyte stencil */
194
PIPE_FORMAT_L8A8_SRGB,
195
PIPE_FORMAT_R8G8_SRGB,
196
PIPE_FORMAT_R8G8B8_SRGB,
197
PIPE_FORMAT_B8G8R8_SRGB,
198
PIPE_FORMAT_A8B8G8R8_SRGB,
199
PIPE_FORMAT_X8B8G8R8_SRGB,
200
PIPE_FORMAT_B8G8R8A8_SRGB,
201
PIPE_FORMAT_B8G8R8X8_SRGB,
202
PIPE_FORMAT_A8R8G8B8_SRGB,
203
PIPE_FORMAT_X8R8G8B8_SRGB,
204
PIPE_FORMAT_R8G8B8A8_SRGB,
206
/* compressed formats */
207
PIPE_FORMAT_DXT1_RGB,
208
PIPE_FORMAT_DXT1_RGBA,
209
PIPE_FORMAT_DXT3_RGBA,
210
PIPE_FORMAT_DXT5_RGBA,
212
/* sRGB, compressed */
213
PIPE_FORMAT_DXT1_SRGB,
214
PIPE_FORMAT_DXT1_SRGBA,
215
PIPE_FORMAT_DXT3_SRGBA,
216
PIPE_FORMAT_DXT5_SRGBA,
218
/* rgtc compressed */
219
PIPE_FORMAT_RGTC1_UNORM,
220
PIPE_FORMAT_RGTC1_SNORM,
221
PIPE_FORMAT_RGTC2_UNORM,
222
PIPE_FORMAT_RGTC2_SNORM,
224
PIPE_FORMAT_R8G8_B8G8_UNORM,
225
PIPE_FORMAT_G8R8_G8B8_UNORM,
228
PIPE_FORMAT_R8SG8SB8UX8U_NORM,
229
PIPE_FORMAT_R5SG5SB6U_NORM,
231
/* TODO: re-order these */
232
PIPE_FORMAT_A8B8G8R8_UNORM,
233
PIPE_FORMAT_B5G5R5X1_UNORM,
234
PIPE_FORMAT_R9G9B9E5_FLOAT,
235
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
236
PIPE_FORMAT_R1_UNORM,
237
PIPE_FORMAT_R10G10B10X2_USCALED,
238
PIPE_FORMAT_R10G10B10X2_SNORM,
239
PIPE_FORMAT_L4A4_UNORM,
240
PIPE_FORMAT_A2R10G10B10_UNORM,
241
PIPE_FORMAT_A2B10G10R10_UNORM,
242
PIPE_FORMAT_R10SG10SB10SA2U_NORM,
243
PIPE_FORMAT_R8G8Bx_SNORM,
244
PIPE_FORMAT_R8G8B8X8_UNORM,
245
PIPE_FORMAT_B4G4R4X4_UNORM,
247
/* some stencil samplers formats */
248
PIPE_FORMAT_X24S8_UINT,
249
PIPE_FORMAT_S8X24_UINT,
250
PIPE_FORMAT_X32_S8X24_UINT,
252
PIPE_FORMAT_R3G3B2_UNORM,
253
PIPE_FORMAT_B2G3R3_UNORM,
254
PIPE_FORMAT_L16A16_UNORM,
255
PIPE_FORMAT_A16_UNORM,
256
PIPE_FORMAT_I16_UNORM,
258
PIPE_FORMAT_LATC1_UNORM,
259
PIPE_FORMAT_LATC1_SNORM,
260
PIPE_FORMAT_LATC2_UNORM,
261
PIPE_FORMAT_LATC2_SNORM,
263
PIPE_FORMAT_A8_SNORM,
264
PIPE_FORMAT_L8_SNORM,
265
PIPE_FORMAT_L8A8_SNORM,
266
PIPE_FORMAT_I8_SNORM,
267
PIPE_FORMAT_A16_SNORM,
268
PIPE_FORMAT_L16_SNORM,
269
PIPE_FORMAT_L16A16_SNORM,
270
PIPE_FORMAT_I16_SNORM,
272
PIPE_FORMAT_A16_FLOAT,
273
PIPE_FORMAT_L16_FLOAT,
274
PIPE_FORMAT_L16A16_FLOAT,
275
PIPE_FORMAT_I16_FLOAT,
276
PIPE_FORMAT_A32_FLOAT,
277
PIPE_FORMAT_L32_FLOAT,
278
PIPE_FORMAT_L32A32_FLOAT,
279
PIPE_FORMAT_I32_FLOAT,
283
PIPE_FORMAT_IYUV, /**< aka I420 */
287
/* PIPE_FORMAT_Y8_U8_V8_420_UNORM = IYUV */
288
/* PIPE_FORMAT_Y8_U8V8_420_UNORM = NV12 */
289
PIPE_FORMAT_Y8_U8_V8_422_UNORM,
290
PIPE_FORMAT_Y8_U8V8_422_UNORM,
291
PIPE_FORMAT_Y8_U8_V8_444_UNORM,
293
PIPE_FORMAT_Y16_U16_V16_420_UNORM,
294
/* PIPE_FORMAT_Y16_U16V16_420_UNORM */
295
PIPE_FORMAT_Y16_U16_V16_422_UNORM,
296
PIPE_FORMAT_Y16_U16V16_422_UNORM,
297
PIPE_FORMAT_Y16_U16_V16_444_UNORM,
299
PIPE_FORMAT_A4R4_UNORM,
300
PIPE_FORMAT_R4A4_UNORM,
301
PIPE_FORMAT_R8A8_UNORM,
302
PIPE_FORMAT_A8R8_UNORM,
304
PIPE_FORMAT_R64_SINT,
309
PIPE_FORMAT_L8A8_UINT,
314
PIPE_FORMAT_L8A8_SINT,
316
PIPE_FORMAT_A16_UINT,
317
PIPE_FORMAT_I16_UINT,
318
PIPE_FORMAT_L16_UINT,
319
PIPE_FORMAT_L16A16_UINT,
321
PIPE_FORMAT_A16_SINT,
322
PIPE_FORMAT_I16_SINT,
323
PIPE_FORMAT_L16_SINT,
324
PIPE_FORMAT_L16A16_SINT,
326
PIPE_FORMAT_A32_UINT,
327
PIPE_FORMAT_I32_UINT,
328
PIPE_FORMAT_L32_UINT,
329
PIPE_FORMAT_L32A32_UINT,
331
PIPE_FORMAT_A32_SINT,
332
PIPE_FORMAT_I32_SINT,
333
PIPE_FORMAT_L32_SINT,
334
PIPE_FORMAT_L32A32_SINT,
336
PIPE_FORMAT_B8G8R8_UINT,
337
PIPE_FORMAT_B8G8R8A8_UINT,
339
PIPE_FORMAT_B8G8R8_SINT,
340
PIPE_FORMAT_B8G8R8A8_SINT,
342
PIPE_FORMAT_A8R8G8B8_UINT,
343
PIPE_FORMAT_A8B8G8R8_UINT,
344
PIPE_FORMAT_A2R10G10B10_UINT,
345
PIPE_FORMAT_A2B10G10R10_UINT,
346
PIPE_FORMAT_R5G6B5_UINT,
347
PIPE_FORMAT_B5G6R5_UINT,
348
PIPE_FORMAT_R5G5B5A1_UINT,
349
PIPE_FORMAT_B5G5R5A1_UINT,
350
PIPE_FORMAT_A1R5G5B5_UINT,
351
PIPE_FORMAT_A1B5G5R5_UINT,
352
PIPE_FORMAT_R4G4B4A4_UINT,
353
PIPE_FORMAT_B4G4R4A4_UINT,
354
PIPE_FORMAT_A4R4G4B4_UINT,
355
PIPE_FORMAT_A4B4G4R4_UINT,
356
PIPE_FORMAT_R3G3B2_UINT,
357
PIPE_FORMAT_B2G3R3_UINT,
359
PIPE_FORMAT_ETC1_RGB8,
361
PIPE_FORMAT_R8G8_R8B8_UNORM,
362
PIPE_FORMAT_G8R8_B8R8_UNORM,
364
PIPE_FORMAT_R8G8B8X8_SNORM,
365
PIPE_FORMAT_R8G8B8X8_SRGB,
366
PIPE_FORMAT_R8G8B8X8_UINT,
367
PIPE_FORMAT_R8G8B8X8_SINT,
368
PIPE_FORMAT_B10G10R10X2_UNORM,
369
PIPE_FORMAT_R16G16B16X16_UNORM,
370
PIPE_FORMAT_R16G16B16X16_SNORM,
371
PIPE_FORMAT_R16G16B16X16_FLOAT,
372
PIPE_FORMAT_R16G16B16X16_UINT,
373
PIPE_FORMAT_R16G16B16X16_SINT,
374
PIPE_FORMAT_R32G32B32X32_FLOAT,
375
PIPE_FORMAT_R32G32B32X32_UINT,
376
PIPE_FORMAT_R32G32B32X32_SINT,
378
PIPE_FORMAT_R8A8_SNORM,
379
PIPE_FORMAT_R16A16_UNORM,
380
PIPE_FORMAT_R16A16_SNORM,
381
PIPE_FORMAT_R16A16_FLOAT,
382
PIPE_FORMAT_R32A32_FLOAT,
383
PIPE_FORMAT_R8A8_UINT,
384
PIPE_FORMAT_R8A8_SINT,
385
PIPE_FORMAT_R16A16_UINT,
386
PIPE_FORMAT_R16A16_SINT,
387
PIPE_FORMAT_R32A32_UINT,
388
PIPE_FORMAT_R32A32_SINT,
389
PIPE_FORMAT_R10G10B10A2_UINT,
390
PIPE_FORMAT_R10G10B10A2_SINT,
392
PIPE_FORMAT_B5G6R5_SRGB,
394
PIPE_FORMAT_BPTC_RGBA_UNORM,
395
PIPE_FORMAT_BPTC_SRGBA,
396
PIPE_FORMAT_BPTC_RGB_FLOAT,
397
PIPE_FORMAT_BPTC_RGB_UFLOAT,
399
PIPE_FORMAT_G8R8_UNORM,
400
PIPE_FORMAT_G8R8_SNORM,
401
PIPE_FORMAT_G16R16_UNORM,
402
PIPE_FORMAT_G16R16_SNORM,
404
PIPE_FORMAT_A8B8G8R8_SNORM,
405
PIPE_FORMAT_X8B8G8R8_SNORM,
407
PIPE_FORMAT_ETC2_RGB8,
408
PIPE_FORMAT_ETC2_SRGB8,
409
PIPE_FORMAT_ETC2_RGB8A1,
410
PIPE_FORMAT_ETC2_SRGB8A1,
411
PIPE_FORMAT_ETC2_RGBA8,
412
PIPE_FORMAT_ETC2_SRGBA8,
413
PIPE_FORMAT_ETC2_R11_UNORM,
414
PIPE_FORMAT_ETC2_R11_SNORM,
415
PIPE_FORMAT_ETC2_RG11_UNORM,
416
PIPE_FORMAT_ETC2_RG11_SNORM,
418
PIPE_FORMAT_ASTC_4x4,
419
PIPE_FORMAT_ASTC_5x4,
420
PIPE_FORMAT_ASTC_5x5,
421
PIPE_FORMAT_ASTC_6x5,
422
PIPE_FORMAT_ASTC_6x6,
423
PIPE_FORMAT_ASTC_8x5,
424
PIPE_FORMAT_ASTC_8x6,
425
PIPE_FORMAT_ASTC_8x8,
426
PIPE_FORMAT_ASTC_10x5,
427
PIPE_FORMAT_ASTC_10x6,
428
PIPE_FORMAT_ASTC_10x8,
429
PIPE_FORMAT_ASTC_10x10,
430
PIPE_FORMAT_ASTC_12x10,
431
PIPE_FORMAT_ASTC_12x12,
433
PIPE_FORMAT_ASTC_4x4_SRGB,
434
PIPE_FORMAT_ASTC_5x4_SRGB,
435
PIPE_FORMAT_ASTC_5x5_SRGB,
436
PIPE_FORMAT_ASTC_6x5_SRGB,
437
PIPE_FORMAT_ASTC_6x6_SRGB,
438
PIPE_FORMAT_ASTC_8x5_SRGB,
439
PIPE_FORMAT_ASTC_8x6_SRGB,
440
PIPE_FORMAT_ASTC_8x8_SRGB,
441
PIPE_FORMAT_ASTC_10x5_SRGB,
442
PIPE_FORMAT_ASTC_10x6_SRGB,
443
PIPE_FORMAT_ASTC_10x8_SRGB,
444
PIPE_FORMAT_ASTC_10x10_SRGB,
445
PIPE_FORMAT_ASTC_12x10_SRGB,
446
PIPE_FORMAT_ASTC_12x12_SRGB,
448
PIPE_FORMAT_ASTC_3x3x3,
449
PIPE_FORMAT_ASTC_4x3x3,
450
PIPE_FORMAT_ASTC_4x4x3,
451
PIPE_FORMAT_ASTC_4x4x4,
452
PIPE_FORMAT_ASTC_5x4x4,
453
PIPE_FORMAT_ASTC_5x5x4,
454
PIPE_FORMAT_ASTC_5x5x5,
455
PIPE_FORMAT_ASTC_6x5x5,
456
PIPE_FORMAT_ASTC_6x6x5,
457
PIPE_FORMAT_ASTC_6x6x6,
459
PIPE_FORMAT_ASTC_3x3x3_SRGB,
460
PIPE_FORMAT_ASTC_4x3x3_SRGB,
461
PIPE_FORMAT_ASTC_4x4x3_SRGB,
462
PIPE_FORMAT_ASTC_4x4x4_SRGB,
463
PIPE_FORMAT_ASTC_5x4x4_SRGB,
464
PIPE_FORMAT_ASTC_5x5x4_SRGB,
465
PIPE_FORMAT_ASTC_5x5x5_SRGB,
466
PIPE_FORMAT_ASTC_6x5x5_SRGB,
467
PIPE_FORMAT_ASTC_6x6x5_SRGB,
468
PIPE_FORMAT_ASTC_6x6x6_SRGB,
470
PIPE_FORMAT_FXT1_RGB,
471
PIPE_FORMAT_FXT1_RGBA,
485
PIPE_FORMAT_R10G10B10X2_UNORM,
486
PIPE_FORMAT_A1R5G5B5_UNORM,
487
PIPE_FORMAT_A1B5G5R5_UNORM,
488
PIPE_FORMAT_X1B5G5R5_UNORM,
489
PIPE_FORMAT_R5G5B5A1_UNORM,
490
PIPE_FORMAT_A4R4G4B4_UNORM,
491
PIPE_FORMAT_A4B4G4R4_UNORM,
493
PIPE_FORMAT_G8R8_SINT,
494
PIPE_FORMAT_A8B8G8R8_SINT,
495
PIPE_FORMAT_X8B8G8R8_SINT,
498
PIPE_FORMAT_ATC_RGBA_EXPLICIT,
499
PIPE_FORMAT_ATC_RGBA_INTERPOLATED,
501
PIPE_FORMAT_Z24_UNORM_S8_UINT_AS_R8G8B8A8,
506
PIPE_FORMAT_R8_G8B8_420_UNORM,
507
PIPE_FORMAT_G8_B8R8_420_UNORM,
508
PIPE_FORMAT_G8_B8_R8_420_UNORM,
509
PIPE_FORMAT_Y8_UNORM,
511
PIPE_FORMAT_B8G8R8X8_SNORM,
512
PIPE_FORMAT_B8G8R8X8_UINT,
513
PIPE_FORMAT_B8G8R8X8_SINT,
514
PIPE_FORMAT_A8R8G8B8_SNORM,
515
PIPE_FORMAT_A8R8G8B8_SINT,
516
PIPE_FORMAT_X8R8G8B8_SNORM,
517
PIPE_FORMAT_X8R8G8B8_SINT,
518
PIPE_FORMAT_R5G5B5X1_UNORM,
519
PIPE_FORMAT_X1R5G5B5_UNORM,
520
PIPE_FORMAT_R4G4B4X4_UNORM,
521
PIPE_FORMAT_B10G10R10X2_SNORM,
522
PIPE_FORMAT_R5G6B5_SRGB,
527
#if UTIL_ARCH_LITTLE_ENDIAN
528
#define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM
529
#define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM
530
#define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM
531
#define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM
532
#define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM
533
#define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM
534
#define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM
535
#define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM
536
#define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM
537
#define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM
538
#define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM
539
#define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM
540
#define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB
541
#define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB
542
#define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB
543
#define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB
544
#define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB
545
#define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB
546
#define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB
547
#define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB
548
#define PIPE_FORMAT_RGBA8888_USCALED PIPE_FORMAT_R8G8B8A8_USCALED
549
#define PIPE_FORMAT_RGBA8888_SSCALED PIPE_FORMAT_R8G8B8A8_SSCALED
550
#define PIPE_FORMAT_RGBA8888_UINT PIPE_FORMAT_R8G8B8A8_UINT
551
#define PIPE_FORMAT_BGRA8888_UINT PIPE_FORMAT_B8G8R8A8_UINT
552
#define PIPE_FORMAT_ARGB8888_UINT PIPE_FORMAT_A8R8G8B8_UINT
553
#define PIPE_FORMAT_ABGR8888_UINT PIPE_FORMAT_A8B8G8R8_UINT
554
#define PIPE_FORMAT_RGBA8888_SINT PIPE_FORMAT_R8G8B8A8_SINT
555
#define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_R8G8_UNORM
556
#define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_G8R8_UNORM
557
#define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_R8G8_SNORM
558
#define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_G8R8_SNORM
559
#define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_R16G16_UNORM
560
#define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_G16R16_UNORM
561
#define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_R16G16_SNORM
562
#define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_G16R16_SNORM
563
#elif UTIL_ARCH_BIG_ENDIAN
564
#define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM
565
#define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM
566
#define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM
567
#define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM
568
#define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM
569
#define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM
570
#define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM
571
#define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM
572
#define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM
573
#define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM
574
#define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM
575
#define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM
576
#define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB
577
#define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB
578
#define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB
579
#define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB
580
#define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB
581
#define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB
582
#define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB
583
#define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB
584
#define PIPE_FORMAT_RGBA8888_USCALED PIPE_FORMAT_A8B8G8R8_USCALED
585
#define PIPE_FORMAT_RGBA8888_SSCALED PIPE_FORMAT_A8B8G8R8_SSCALED
586
#define PIPE_FORMAT_RGBA8888_UINT PIPE_FORMAT_A8B8G8R8_UINT
587
#define PIPE_FORMAT_BGRA8888_UINT PIPE_FORMAT_A8R8G8B8_UINT
588
#define PIPE_FORMAT_ARGB8888_UINT PIPE_FORMAT_B8G8R8A8_UINT
589
#define PIPE_FORMAT_ABGR8888_UINT PIPE_FORMAT_R8G8B8A8_UINT
590
#define PIPE_FORMAT_RGBA8888_SINT PIPE_FORMAT_A8B8G8R8_SINT
591
#define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_G8R8_UNORM
592
#define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_R8G8_UNORM
593
#define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_G8R8_SNORM
594
#define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_R8G8_SNORM
595
#define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_G16R16_UNORM
596
#define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_R16G16_UNORM
597
#define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_G16R16_SNORM
598
#define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_R16G16_SNORM
601
enum pipe_video_chroma_format
603
PIPE_VIDEO_CHROMA_FORMAT_400,
604
PIPE_VIDEO_CHROMA_FORMAT_420,
605
PIPE_VIDEO_CHROMA_FORMAT_422,
606
PIPE_VIDEO_CHROMA_FORMAT_444,
607
PIPE_VIDEO_CHROMA_FORMAT_NONE
610
static inline enum pipe_video_chroma_format
611
pipe_format_to_chroma_format(enum pipe_format format)
614
case PIPE_FORMAT_NV12:
615
case PIPE_FORMAT_NV21:
616
case PIPE_FORMAT_YV12:
617
case PIPE_FORMAT_IYUV:
618
case PIPE_FORMAT_P010:
619
case PIPE_FORMAT_P012:
620
case PIPE_FORMAT_P016:
621
case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
622
return PIPE_VIDEO_CHROMA_FORMAT_420;
623
case PIPE_FORMAT_UYVY:
624
case PIPE_FORMAT_YUYV:
625
case PIPE_FORMAT_YV16:
626
case PIPE_FORMAT_Y8_U8_V8_422_UNORM:
627
case PIPE_FORMAT_Y8_U8V8_422_UNORM:
628
case PIPE_FORMAT_Y16_U16_V16_422_UNORM:
629
case PIPE_FORMAT_Y16_U16V16_422_UNORM:
630
return PIPE_VIDEO_CHROMA_FORMAT_422;
631
case PIPE_FORMAT_Y8_U8_V8_444_UNORM:
632
case PIPE_FORMAT_Y16_U16_V16_444_UNORM:
633
return PIPE_VIDEO_CHROMA_FORMAT_444;
635
return PIPE_VIDEO_CHROMA_FORMAT_NONE;