Path: blob/21.2-virgl/src/gallium/include/pipe/p_format.h
4566 views
/**************************************************************************1*2* Copyright 2007 VMware, Inc.3* Copyright (c) 2008 VMware, Inc.4* All Rights Reserved.5*6* Permission is hereby granted, free of charge, to any person obtaining a7* copy of this software and associated documentation files (the8* "Software"), to deal in the Software without restriction, including9* without limitation the rights to use, copy, modify, merge, publish,10* distribute, sub license, and/or sell copies of the Software, and to11* permit persons to whom the Software is furnished to do so, subject to12* the following conditions:13*14* The above copyright notice and this permission notice (including the15* next paragraph) shall be included in all copies or substantial portions16* of the Software.17*18* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS19* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF20* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.21* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR22* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,23* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE24* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.25*26**************************************************************************/2728#ifndef PIPE_FORMAT_H29#define PIPE_FORMAT_H3031#include "p_config.h"3233#ifdef __cplusplus34extern "C" {35#endif3637/**38* Formats for textures, surfaces and vertex data39*/40enum pipe_format {41PIPE_FORMAT_NONE,42PIPE_FORMAT_B8G8R8A8_UNORM,43PIPE_FORMAT_B8G8R8X8_UNORM,44PIPE_FORMAT_A8R8G8B8_UNORM,45PIPE_FORMAT_X8R8G8B8_UNORM,46PIPE_FORMAT_B5G5R5A1_UNORM,47PIPE_FORMAT_R4G4B4A4_UNORM,48PIPE_FORMAT_B4G4R4A4_UNORM,49PIPE_FORMAT_R5G6B5_UNORM,50PIPE_FORMAT_B5G6R5_UNORM,51PIPE_FORMAT_R10G10B10A2_UNORM,52PIPE_FORMAT_L8_UNORM, /**< ubyte luminance */53PIPE_FORMAT_A8_UNORM, /**< ubyte alpha */54PIPE_FORMAT_I8_UNORM, /**< ubyte intensity */55PIPE_FORMAT_L8A8_UNORM, /**< ubyte alpha, luminance */56PIPE_FORMAT_L16_UNORM, /**< ushort luminance */57PIPE_FORMAT_UYVY,58PIPE_FORMAT_YUYV,59PIPE_FORMAT_Z16_UNORM,60PIPE_FORMAT_Z16_UNORM_S8_UINT,61PIPE_FORMAT_Z32_UNORM,62PIPE_FORMAT_Z32_FLOAT,63PIPE_FORMAT_Z24_UNORM_S8_UINT,64PIPE_FORMAT_S8_UINT_Z24_UNORM,65PIPE_FORMAT_Z24X8_UNORM,66PIPE_FORMAT_X8Z24_UNORM,67PIPE_FORMAT_S8_UINT, /**< ubyte stencil */68PIPE_FORMAT_R64_FLOAT,69PIPE_FORMAT_R64G64_FLOAT,70PIPE_FORMAT_R64G64B64_FLOAT,71PIPE_FORMAT_R64G64B64A64_FLOAT,72PIPE_FORMAT_R32_FLOAT,73PIPE_FORMAT_R32G32_FLOAT,74PIPE_FORMAT_R32G32B32_FLOAT,75PIPE_FORMAT_R32G32B32A32_FLOAT,76PIPE_FORMAT_R32_UNORM,77PIPE_FORMAT_R32G32_UNORM,78PIPE_FORMAT_R32G32B32_UNORM,79PIPE_FORMAT_R32G32B32A32_UNORM,80PIPE_FORMAT_R32_USCALED,81PIPE_FORMAT_R32G32_USCALED,82PIPE_FORMAT_R32G32B32_USCALED,83PIPE_FORMAT_R32G32B32A32_USCALED,84PIPE_FORMAT_R32_SNORM,85PIPE_FORMAT_R32G32_SNORM,86PIPE_FORMAT_R32G32B32_SNORM,87PIPE_FORMAT_R32G32B32A32_SNORM,88PIPE_FORMAT_R32_SSCALED,89PIPE_FORMAT_R32G32_SSCALED,90PIPE_FORMAT_R32G32B32_SSCALED,91PIPE_FORMAT_R32G32B32A32_SSCALED,92PIPE_FORMAT_R16_UNORM,93PIPE_FORMAT_R16G16_UNORM,94PIPE_FORMAT_R16G16B16_UNORM,95PIPE_FORMAT_R16G16B16A16_UNORM,96PIPE_FORMAT_R16_USCALED,97PIPE_FORMAT_R16G16_USCALED,98PIPE_FORMAT_R16G16B16_USCALED,99PIPE_FORMAT_R16G16B16A16_USCALED,100PIPE_FORMAT_R16_SNORM,101PIPE_FORMAT_R16G16_SNORM,102PIPE_FORMAT_R16G16B16_SNORM,103PIPE_FORMAT_R16G16B16A16_SNORM,104PIPE_FORMAT_R16_SSCALED,105PIPE_FORMAT_R16G16_SSCALED,106PIPE_FORMAT_R16G16B16_SSCALED,107PIPE_FORMAT_R16G16B16A16_SSCALED,108PIPE_FORMAT_R8_UNORM,109PIPE_FORMAT_R8G8_UNORM,110PIPE_FORMAT_R8G8B8_UNORM,111PIPE_FORMAT_B8G8R8_UNORM,112PIPE_FORMAT_R8G8B8A8_UNORM,113PIPE_FORMAT_X8B8G8R8_UNORM,114PIPE_FORMAT_R8_USCALED,115PIPE_FORMAT_R8G8_USCALED,116PIPE_FORMAT_R8G8B8_USCALED,117PIPE_FORMAT_B8G8R8_USCALED,118PIPE_FORMAT_R8G8B8A8_USCALED,119PIPE_FORMAT_B8G8R8A8_USCALED,120PIPE_FORMAT_A8B8G8R8_USCALED,121PIPE_FORMAT_R8_SNORM,122PIPE_FORMAT_R8G8_SNORM,123PIPE_FORMAT_R8G8B8_SNORM,124PIPE_FORMAT_B8G8R8_SNORM,125PIPE_FORMAT_R8G8B8A8_SNORM,126PIPE_FORMAT_B8G8R8A8_SNORM,127PIPE_FORMAT_R8_SSCALED,128PIPE_FORMAT_R8G8_SSCALED,129PIPE_FORMAT_R8G8B8_SSCALED,130PIPE_FORMAT_B8G8R8_SSCALED,131PIPE_FORMAT_R8G8B8A8_SSCALED,132PIPE_FORMAT_B8G8R8A8_SSCALED,133PIPE_FORMAT_A8B8G8R8_SSCALED,134PIPE_FORMAT_R32_FIXED,135PIPE_FORMAT_R32G32_FIXED,136PIPE_FORMAT_R32G32B32_FIXED,137PIPE_FORMAT_R32G32B32A32_FIXED,138PIPE_FORMAT_R16_FLOAT,139PIPE_FORMAT_R16G16_FLOAT,140PIPE_FORMAT_R16G16B16_FLOAT,141PIPE_FORMAT_R16G16B16A16_FLOAT,142143/* sRGB formats */144PIPE_FORMAT_L8_SRGB,145PIPE_FORMAT_R8_SRGB,146PIPE_FORMAT_L8A8_SRGB,147PIPE_FORMAT_R8G8_SRGB,148PIPE_FORMAT_R8G8B8_SRGB,149PIPE_FORMAT_B8G8R8_SRGB,150PIPE_FORMAT_A8B8G8R8_SRGB,151PIPE_FORMAT_X8B8G8R8_SRGB,152PIPE_FORMAT_B8G8R8A8_SRGB,153PIPE_FORMAT_B8G8R8X8_SRGB,154PIPE_FORMAT_A8R8G8B8_SRGB,155PIPE_FORMAT_X8R8G8B8_SRGB,156PIPE_FORMAT_R8G8B8A8_SRGB,157158/* compressed formats */159PIPE_FORMAT_DXT1_RGB,160PIPE_FORMAT_DXT1_RGBA,161PIPE_FORMAT_DXT3_RGBA,162PIPE_FORMAT_DXT5_RGBA,163164/* sRGB, compressed */165PIPE_FORMAT_DXT1_SRGB,166PIPE_FORMAT_DXT1_SRGBA,167PIPE_FORMAT_DXT3_SRGBA,168PIPE_FORMAT_DXT5_SRGBA,169170/* rgtc compressed */171PIPE_FORMAT_RGTC1_UNORM,172PIPE_FORMAT_RGTC1_SNORM,173PIPE_FORMAT_RGTC2_UNORM,174PIPE_FORMAT_RGTC2_SNORM,175176PIPE_FORMAT_R8G8_B8G8_UNORM,177PIPE_FORMAT_G8R8_G8B8_UNORM,178179/* mixed formats */180PIPE_FORMAT_R8SG8SB8UX8U_NORM,181PIPE_FORMAT_R5SG5SB6U_NORM,182183/* TODO: re-order these */184PIPE_FORMAT_A8B8G8R8_UNORM,185PIPE_FORMAT_B5G5R5X1_UNORM,186PIPE_FORMAT_R10G10B10A2_USCALED,187PIPE_FORMAT_R11G11B10_FLOAT,188PIPE_FORMAT_R9G9B9E5_FLOAT,189PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,190PIPE_FORMAT_R1_UNORM,191PIPE_FORMAT_R10G10B10X2_USCALED,192PIPE_FORMAT_R10G10B10X2_SNORM,193PIPE_FORMAT_L4A4_UNORM,194PIPE_FORMAT_A2R10G10B10_UNORM,195PIPE_FORMAT_A2B10G10R10_UNORM,196PIPE_FORMAT_B10G10R10A2_UNORM,197PIPE_FORMAT_R10SG10SB10SA2U_NORM,198PIPE_FORMAT_R8G8Bx_SNORM,199PIPE_FORMAT_R8G8B8X8_UNORM,200PIPE_FORMAT_B4G4R4X4_UNORM,201202/* some stencil samplers formats */203PIPE_FORMAT_X24S8_UINT,204PIPE_FORMAT_S8X24_UINT,205PIPE_FORMAT_X32_S8X24_UINT,206207PIPE_FORMAT_R3G3B2_UNORM,208PIPE_FORMAT_B2G3R3_UNORM,209PIPE_FORMAT_L16A16_UNORM,210PIPE_FORMAT_A16_UNORM,211PIPE_FORMAT_I16_UNORM,212213PIPE_FORMAT_LATC1_UNORM,214PIPE_FORMAT_LATC1_SNORM,215PIPE_FORMAT_LATC2_UNORM,216PIPE_FORMAT_LATC2_SNORM,217218PIPE_FORMAT_A8_SNORM,219PIPE_FORMAT_L8_SNORM,220PIPE_FORMAT_L8A8_SNORM,221PIPE_FORMAT_I8_SNORM,222PIPE_FORMAT_A16_SNORM,223PIPE_FORMAT_L16_SNORM,224PIPE_FORMAT_L16A16_SNORM,225PIPE_FORMAT_I16_SNORM,226227PIPE_FORMAT_A16_FLOAT,228PIPE_FORMAT_L16_FLOAT,229PIPE_FORMAT_L16A16_FLOAT,230PIPE_FORMAT_I16_FLOAT,231PIPE_FORMAT_A32_FLOAT,232PIPE_FORMAT_L32_FLOAT,233PIPE_FORMAT_L32A32_FLOAT,234PIPE_FORMAT_I32_FLOAT,235236PIPE_FORMAT_YV12,237PIPE_FORMAT_YV16,238PIPE_FORMAT_IYUV, /**< aka I420 */239PIPE_FORMAT_NV12,240PIPE_FORMAT_NV21,241242/* PIPE_FORMAT_Y8_U8_V8_420_UNORM = IYUV */243/* PIPE_FORMAT_Y8_U8V8_420_UNORM = NV12 */244PIPE_FORMAT_Y8_U8_V8_422_UNORM,245PIPE_FORMAT_Y8_U8V8_422_UNORM,246PIPE_FORMAT_Y8_U8_V8_444_UNORM,247248PIPE_FORMAT_Y16_U16_V16_420_UNORM,249/* PIPE_FORMAT_Y16_U16V16_420_UNORM */250PIPE_FORMAT_Y16_U16_V16_422_UNORM,251PIPE_FORMAT_Y16_U16V16_422_UNORM,252PIPE_FORMAT_Y16_U16_V16_444_UNORM,253254PIPE_FORMAT_A4R4_UNORM,255PIPE_FORMAT_R4A4_UNORM,256PIPE_FORMAT_R8A8_UNORM,257PIPE_FORMAT_A8R8_UNORM,258259PIPE_FORMAT_R10G10B10A2_SSCALED,260PIPE_FORMAT_R10G10B10A2_SNORM,261262PIPE_FORMAT_B10G10R10A2_USCALED,263PIPE_FORMAT_B10G10R10A2_SSCALED,264PIPE_FORMAT_B10G10R10A2_SNORM,265266PIPE_FORMAT_R8_UINT,267PIPE_FORMAT_R8G8_UINT,268PIPE_FORMAT_R8G8B8_UINT,269PIPE_FORMAT_R8G8B8A8_UINT,270271PIPE_FORMAT_R8_SINT,272PIPE_FORMAT_R8G8_SINT,273PIPE_FORMAT_R8G8B8_SINT,274PIPE_FORMAT_R8G8B8A8_SINT,275276PIPE_FORMAT_R16_UINT,277PIPE_FORMAT_R16G16_UINT,278PIPE_FORMAT_R16G16B16_UINT,279PIPE_FORMAT_R16G16B16A16_UINT,280281PIPE_FORMAT_R16_SINT,282PIPE_FORMAT_R16G16_SINT,283PIPE_FORMAT_R16G16B16_SINT,284PIPE_FORMAT_R16G16B16A16_SINT,285286PIPE_FORMAT_R32_UINT,287PIPE_FORMAT_R32G32_UINT,288PIPE_FORMAT_R32G32B32_UINT,289PIPE_FORMAT_R32G32B32A32_UINT,290291PIPE_FORMAT_R32_SINT,292PIPE_FORMAT_R32G32_SINT,293PIPE_FORMAT_R32G32B32_SINT,294PIPE_FORMAT_R32G32B32A32_SINT,295296PIPE_FORMAT_R64_UINT,297PIPE_FORMAT_R64_SINT,298299PIPE_FORMAT_A8_UINT,300PIPE_FORMAT_I8_UINT,301PIPE_FORMAT_L8_UINT,302PIPE_FORMAT_L8A8_UINT,303304PIPE_FORMAT_A8_SINT,305PIPE_FORMAT_I8_SINT,306PIPE_FORMAT_L8_SINT,307PIPE_FORMAT_L8A8_SINT,308309PIPE_FORMAT_A16_UINT,310PIPE_FORMAT_I16_UINT,311PIPE_FORMAT_L16_UINT,312PIPE_FORMAT_L16A16_UINT,313314PIPE_FORMAT_A16_SINT,315PIPE_FORMAT_I16_SINT,316PIPE_FORMAT_L16_SINT,317PIPE_FORMAT_L16A16_SINT,318319PIPE_FORMAT_A32_UINT,320PIPE_FORMAT_I32_UINT,321PIPE_FORMAT_L32_UINT,322PIPE_FORMAT_L32A32_UINT,323324PIPE_FORMAT_A32_SINT,325PIPE_FORMAT_I32_SINT,326PIPE_FORMAT_L32_SINT,327PIPE_FORMAT_L32A32_SINT,328329PIPE_FORMAT_B8G8R8_UINT,330PIPE_FORMAT_B8G8R8A8_UINT,331332PIPE_FORMAT_B8G8R8_SINT,333PIPE_FORMAT_B8G8R8A8_SINT,334335PIPE_FORMAT_A8R8G8B8_UINT,336PIPE_FORMAT_A8B8G8R8_UINT,337PIPE_FORMAT_A2R10G10B10_UINT,338PIPE_FORMAT_A2B10G10R10_UINT,339PIPE_FORMAT_B10G10R10A2_UINT,340PIPE_FORMAT_B10G10R10A2_SINT,341PIPE_FORMAT_R5G6B5_UINT,342PIPE_FORMAT_B5G6R5_UINT,343PIPE_FORMAT_R5G5B5A1_UINT,344PIPE_FORMAT_B5G5R5A1_UINT,345PIPE_FORMAT_A1R5G5B5_UINT,346PIPE_FORMAT_A1B5G5R5_UINT,347PIPE_FORMAT_R4G4B4A4_UINT,348PIPE_FORMAT_B4G4R4A4_UINT,349PIPE_FORMAT_A4R4G4B4_UINT,350PIPE_FORMAT_A4B4G4R4_UINT,351PIPE_FORMAT_R3G3B2_UINT,352PIPE_FORMAT_B2G3R3_UINT,353354PIPE_FORMAT_ETC1_RGB8,355356PIPE_FORMAT_R8G8_R8B8_UNORM,357PIPE_FORMAT_G8R8_B8R8_UNORM,358359PIPE_FORMAT_R8G8B8X8_SNORM,360PIPE_FORMAT_R8G8B8X8_SRGB,361PIPE_FORMAT_R8G8B8X8_UINT,362PIPE_FORMAT_R8G8B8X8_SINT,363PIPE_FORMAT_B10G10R10X2_UNORM,364PIPE_FORMAT_R16G16B16X16_UNORM,365PIPE_FORMAT_R16G16B16X16_SNORM,366PIPE_FORMAT_R16G16B16X16_FLOAT,367PIPE_FORMAT_R16G16B16X16_UINT,368PIPE_FORMAT_R16G16B16X16_SINT,369PIPE_FORMAT_R32G32B32X32_FLOAT,370PIPE_FORMAT_R32G32B32X32_UINT,371PIPE_FORMAT_R32G32B32X32_SINT,372373PIPE_FORMAT_R8A8_SNORM,374PIPE_FORMAT_R16A16_UNORM,375PIPE_FORMAT_R16A16_SNORM,376PIPE_FORMAT_R16A16_FLOAT,377PIPE_FORMAT_R32A32_FLOAT,378PIPE_FORMAT_R8A8_UINT,379PIPE_FORMAT_R8A8_SINT,380PIPE_FORMAT_R16A16_UINT,381PIPE_FORMAT_R16A16_SINT,382PIPE_FORMAT_R32A32_UINT,383PIPE_FORMAT_R32A32_SINT,384PIPE_FORMAT_R10G10B10A2_UINT,385PIPE_FORMAT_R10G10B10A2_SINT,386387PIPE_FORMAT_B5G6R5_SRGB,388389PIPE_FORMAT_BPTC_RGBA_UNORM,390PIPE_FORMAT_BPTC_SRGBA,391PIPE_FORMAT_BPTC_RGB_FLOAT,392PIPE_FORMAT_BPTC_RGB_UFLOAT,393394PIPE_FORMAT_G8R8_UNORM,395PIPE_FORMAT_G8R8_SNORM,396PIPE_FORMAT_G16R16_UNORM,397PIPE_FORMAT_G16R16_SNORM,398399PIPE_FORMAT_A8B8G8R8_SNORM,400PIPE_FORMAT_X8B8G8R8_SNORM,401402PIPE_FORMAT_ETC2_RGB8,403PIPE_FORMAT_ETC2_SRGB8,404PIPE_FORMAT_ETC2_RGB8A1,405PIPE_FORMAT_ETC2_SRGB8A1,406PIPE_FORMAT_ETC2_RGBA8,407PIPE_FORMAT_ETC2_SRGBA8,408PIPE_FORMAT_ETC2_R11_UNORM,409PIPE_FORMAT_ETC2_R11_SNORM,410PIPE_FORMAT_ETC2_RG11_UNORM,411PIPE_FORMAT_ETC2_RG11_SNORM,412413PIPE_FORMAT_ASTC_4x4,414PIPE_FORMAT_ASTC_5x4,415PIPE_FORMAT_ASTC_5x5,416PIPE_FORMAT_ASTC_6x5,417PIPE_FORMAT_ASTC_6x6,418PIPE_FORMAT_ASTC_8x5,419PIPE_FORMAT_ASTC_8x6,420PIPE_FORMAT_ASTC_8x8,421PIPE_FORMAT_ASTC_10x5,422PIPE_FORMAT_ASTC_10x6,423PIPE_FORMAT_ASTC_10x8,424PIPE_FORMAT_ASTC_10x10,425PIPE_FORMAT_ASTC_12x10,426PIPE_FORMAT_ASTC_12x12,427428PIPE_FORMAT_ASTC_4x4_SRGB,429PIPE_FORMAT_ASTC_5x4_SRGB,430PIPE_FORMAT_ASTC_5x5_SRGB,431PIPE_FORMAT_ASTC_6x5_SRGB,432PIPE_FORMAT_ASTC_6x6_SRGB,433PIPE_FORMAT_ASTC_8x5_SRGB,434PIPE_FORMAT_ASTC_8x6_SRGB,435PIPE_FORMAT_ASTC_8x8_SRGB,436PIPE_FORMAT_ASTC_10x5_SRGB,437PIPE_FORMAT_ASTC_10x6_SRGB,438PIPE_FORMAT_ASTC_10x8_SRGB,439PIPE_FORMAT_ASTC_10x10_SRGB,440PIPE_FORMAT_ASTC_12x10_SRGB,441PIPE_FORMAT_ASTC_12x12_SRGB,442443PIPE_FORMAT_ASTC_3x3x3,444PIPE_FORMAT_ASTC_4x3x3,445PIPE_FORMAT_ASTC_4x4x3,446PIPE_FORMAT_ASTC_4x4x4,447PIPE_FORMAT_ASTC_5x4x4,448PIPE_FORMAT_ASTC_5x5x4,449PIPE_FORMAT_ASTC_5x5x5,450PIPE_FORMAT_ASTC_6x5x5,451PIPE_FORMAT_ASTC_6x6x5,452PIPE_FORMAT_ASTC_6x6x6,453454PIPE_FORMAT_ASTC_3x3x3_SRGB,455PIPE_FORMAT_ASTC_4x3x3_SRGB,456PIPE_FORMAT_ASTC_4x4x3_SRGB,457PIPE_FORMAT_ASTC_4x4x4_SRGB,458PIPE_FORMAT_ASTC_5x4x4_SRGB,459PIPE_FORMAT_ASTC_5x5x4_SRGB,460PIPE_FORMAT_ASTC_5x5x5_SRGB,461PIPE_FORMAT_ASTC_6x5x5_SRGB,462PIPE_FORMAT_ASTC_6x6x5_SRGB,463PIPE_FORMAT_ASTC_6x6x6_SRGB,464465PIPE_FORMAT_FXT1_RGB,466PIPE_FORMAT_FXT1_RGBA,467468PIPE_FORMAT_P010,469PIPE_FORMAT_P012,470PIPE_FORMAT_P016,471472PIPE_FORMAT_Y210,473PIPE_FORMAT_Y212,474PIPE_FORMAT_Y216,475476PIPE_FORMAT_Y410,477PIPE_FORMAT_Y412,478PIPE_FORMAT_Y416,479480PIPE_FORMAT_R10G10B10X2_UNORM,481PIPE_FORMAT_A1R5G5B5_UNORM,482PIPE_FORMAT_A1B5G5R5_UNORM,483PIPE_FORMAT_X1B5G5R5_UNORM,484PIPE_FORMAT_R5G5B5A1_UNORM,485PIPE_FORMAT_A4R4G4B4_UNORM,486PIPE_FORMAT_A4B4G4R4_UNORM,487488PIPE_FORMAT_G8R8_SINT,489PIPE_FORMAT_A8B8G8R8_SINT,490PIPE_FORMAT_X8B8G8R8_SINT,491492PIPE_FORMAT_ATC_RGB,493PIPE_FORMAT_ATC_RGBA_EXPLICIT,494PIPE_FORMAT_ATC_RGBA_INTERPOLATED,495496PIPE_FORMAT_Z24_UNORM_S8_UINT_AS_R8G8B8A8,497498PIPE_FORMAT_AYUV,499PIPE_FORMAT_XYUV,500501PIPE_FORMAT_R8_G8B8_420_UNORM,502503PIPE_FORMAT_B8G8R8X8_SNORM,504PIPE_FORMAT_B8G8R8X8_UINT,505PIPE_FORMAT_B8G8R8X8_SINT,506PIPE_FORMAT_A8R8G8B8_SNORM,507PIPE_FORMAT_A8R8G8B8_SINT,508PIPE_FORMAT_X8R8G8B8_SNORM,509PIPE_FORMAT_X8R8G8B8_SINT,510PIPE_FORMAT_R5G5B5X1_UNORM,511PIPE_FORMAT_X1R5G5B5_UNORM,512PIPE_FORMAT_R4G4B4X4_UNORM,513PIPE_FORMAT_B10G10R10X2_SNORM,514PIPE_FORMAT_R5G6B5_SRGB,515516PIPE_FORMAT_COUNT517};518519#if UTIL_ARCH_LITTLE_ENDIAN520#define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM521#define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM522#define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM523#define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM524#define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM525#define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM526#define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM527#define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM528#define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM529#define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM530#define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM531#define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM532#define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB533#define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB534#define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB535#define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB536#define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB537#define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB538#define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB539#define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB540#define PIPE_FORMAT_RGBA8888_USCALED PIPE_FORMAT_R8G8B8A8_USCALED541#define PIPE_FORMAT_RGBA8888_SSCALED PIPE_FORMAT_R8G8B8A8_SSCALED542#define PIPE_FORMAT_RGBA8888_UINT PIPE_FORMAT_R8G8B8A8_UINT543#define PIPE_FORMAT_BGRA8888_UINT PIPE_FORMAT_B8G8R8A8_UINT544#define PIPE_FORMAT_ARGB8888_UINT PIPE_FORMAT_A8R8G8B8_UINT545#define PIPE_FORMAT_ABGR8888_UINT PIPE_FORMAT_A8B8G8R8_UINT546#define PIPE_FORMAT_RGBA8888_SINT PIPE_FORMAT_R8G8B8A8_SINT547#define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_R8G8_UNORM548#define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_G8R8_UNORM549#define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_R8G8_SNORM550#define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_G8R8_SNORM551#define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_R16G16_UNORM552#define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_G16R16_UNORM553#define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_R16G16_SNORM554#define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_G16R16_SNORM555#elif UTIL_ARCH_BIG_ENDIAN556#define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM557#define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM558#define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM559#define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM560#define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM561#define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM562#define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM563#define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM564#define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM565#define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM566#define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM567#define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM568#define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB569#define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB570#define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB571#define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB572#define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB573#define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB574#define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB575#define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB576#define PIPE_FORMAT_RGBA8888_USCALED PIPE_FORMAT_A8B8G8R8_USCALED577#define PIPE_FORMAT_RGBA8888_SSCALED PIPE_FORMAT_A8B8G8R8_SSCALED578#define PIPE_FORMAT_RGBA8888_UINT PIPE_FORMAT_A8B8G8R8_UINT579#define PIPE_FORMAT_BGRA8888_UINT PIPE_FORMAT_A8R8G8B8_UINT580#define PIPE_FORMAT_ARGB8888_UINT PIPE_FORMAT_B8G8R8A8_UINT581#define PIPE_FORMAT_ABGR8888_UINT PIPE_FORMAT_R8G8B8A8_UINT582#define PIPE_FORMAT_RGBA8888_SINT PIPE_FORMAT_A8B8G8R8_SINT583#define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_G8R8_UNORM584#define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_R8G8_UNORM585#define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_G8R8_SNORM586#define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_R8G8_SNORM587#define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_G16R16_UNORM588#define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_R16G16_UNORM589#define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_G16R16_SNORM590#define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_R16G16_SNORM591#endif592593enum pipe_video_chroma_format594{595PIPE_VIDEO_CHROMA_FORMAT_400,596PIPE_VIDEO_CHROMA_FORMAT_420,597PIPE_VIDEO_CHROMA_FORMAT_422,598PIPE_VIDEO_CHROMA_FORMAT_444,599PIPE_VIDEO_CHROMA_FORMAT_NONE600};601602static inline enum pipe_video_chroma_format603pipe_format_to_chroma_format(enum pipe_format format)604{605switch (format) {606case PIPE_FORMAT_NV12:607case PIPE_FORMAT_NV21:608case PIPE_FORMAT_YV12:609case PIPE_FORMAT_IYUV:610case PIPE_FORMAT_P010:611case PIPE_FORMAT_P012:612case PIPE_FORMAT_P016:613case PIPE_FORMAT_Y16_U16_V16_420_UNORM:614return PIPE_VIDEO_CHROMA_FORMAT_420;615case PIPE_FORMAT_UYVY:616case PIPE_FORMAT_YUYV:617case PIPE_FORMAT_YV16:618case PIPE_FORMAT_Y8_U8_V8_422_UNORM:619case PIPE_FORMAT_Y8_U8V8_422_UNORM:620case PIPE_FORMAT_Y16_U16_V16_422_UNORM:621case PIPE_FORMAT_Y16_U16V16_422_UNORM:622return PIPE_VIDEO_CHROMA_FORMAT_422;623case PIPE_FORMAT_Y8_U8_V8_444_UNORM:624case PIPE_FORMAT_Y16_U16_V16_444_UNORM:625return PIPE_VIDEO_CHROMA_FORMAT_444;626default:627return PIPE_VIDEO_CHROMA_FORMAT_NONE;628}629}630631#ifdef __cplusplus632}633#endif634635#endif636637638