X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Finclude%2Fpipe%2Fp_format.h;h=a4401658f5fa3f41decd1673addaa005c53d527f;hb=34810f42373639ee811885d251b97e56e8695e72;hp=c9f75c019ef1df8bd4beb52d5ed9d2799877d3bd;hpb=f919547f3785b1d8839b9fc5c00ac397e30896a1;p=mesa.git diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h index c9f75c019ef..a4401658f5f 100644 --- a/src/gallium/include/pipe/p_format.h +++ b/src/gallium/include/pipe/p_format.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2007 VMware, Inc. * Copyright (c) 2008 VMware, Inc. * All Rights Reserved. * @@ -19,7 +19,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -29,28 +29,15 @@ #ifndef PIPE_FORMAT_H #define PIPE_FORMAT_H +#include "p_config.h" + #ifdef __cplusplus extern "C" { #endif - -enum pipe_type { - PIPE_TYPE_UNORM = 0, - PIPE_TYPE_SNORM, - PIPE_TYPE_SINT, - PIPE_TYPE_UINT, - PIPE_TYPE_FLOAT, - PIPE_TYPE_COUNT -}; - /** - * Texture/surface image formats (preliminary) - */ - -/* KW: Added lots of surface formats to support vertex element layout - * definitions, and eventually render-to-vertex-buffer. + * Formats for textures, surfaces and vertex data */ - enum pipe_format { PIPE_FORMAT_NONE = 0, PIPE_FORMAT_B8G8R8A8_UNORM = 1, @@ -71,11 +58,11 @@ enum pipe_format { PIPE_FORMAT_Z16_UNORM = 16, PIPE_FORMAT_Z32_UNORM = 17, PIPE_FORMAT_Z32_FLOAT = 18, - PIPE_FORMAT_Z24_UNORM_S8_USCALED = 19, - PIPE_FORMAT_S8_USCALED_Z24_UNORM = 20, + PIPE_FORMAT_Z24_UNORM_S8_UINT = 19, + PIPE_FORMAT_S8_UINT_Z24_UNORM = 20, PIPE_FORMAT_Z24X8_UNORM = 21, PIPE_FORMAT_X8Z24_UNORM = 22, - PIPE_FORMAT_S8_USCALED = 23, /**< ubyte stencil */ + PIPE_FORMAT_S8_UINT = 23, /**< ubyte stencil */ PIPE_FORMAT_R64_FLOAT = 24, PIPE_FORMAT_R64G64_FLOAT = 25, PIPE_FORMAT_R64G64B64_FLOAT = 26, @@ -185,7 +172,7 @@ enum pipe_format { PIPE_FORMAT_R10G10B10A2_USCALED = 123, PIPE_FORMAT_R11G11B10_FLOAT = 124, PIPE_FORMAT_R9G9B9E5_FLOAT = 125, - PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED = 126, + PIPE_FORMAT_Z32_FLOAT_S8X24_UINT = 126, PIPE_FORMAT_R1_UNORM = 127, PIPE_FORMAT_R10G10B10X2_USCALED = 128, PIPE_FORMAT_R10G10B10X2_SNORM = 129, @@ -197,9 +184,9 @@ enum pipe_format { PIPE_FORMAT_B4G4R4X4_UNORM = 135, /* some stencil samplers formats */ - PIPE_FORMAT_X24S8_USCALED = 136, - PIPE_FORMAT_S8X24_USCALED = 137, - PIPE_FORMAT_X32_S8X24_USCALED = 138, + PIPE_FORMAT_X24S8_UINT = 136, + PIPE_FORMAT_S8X24_UINT = 137, + PIPE_FORMAT_X32_S8X24_UINT = 138, PIPE_FORMAT_B2G3R3_UNORM = 139, PIPE_FORMAT_L16A16_UNORM = 140, @@ -234,21 +221,278 @@ enum pipe_format { PIPE_FORMAT_IYUV = 165, /**< aka I420 */ PIPE_FORMAT_NV12 = 166, PIPE_FORMAT_NV21 = 167, - PIPE_FORMAT_AYUV = PIPE_FORMAT_A8R8G8B8_UNORM, - PIPE_FORMAT_VUYA = PIPE_FORMAT_B8G8R8A8_UNORM, - PIPE_FORMAT_XYUV = PIPE_FORMAT_X8R8G8B8_UNORM, - PIPE_FORMAT_VUYX = PIPE_FORMAT_B8G8R8X8_UNORM, - PIPE_FORMAT_IA44 = 168, - PIPE_FORMAT_AI44 = 169, + + PIPE_FORMAT_A4R4_UNORM = 168, + PIPE_FORMAT_R4A4_UNORM = 169, + PIPE_FORMAT_R8A8_UNORM = 170, + PIPE_FORMAT_A8R8_UNORM = 171, + + PIPE_FORMAT_R10G10B10A2_SSCALED = 172, + PIPE_FORMAT_R10G10B10A2_SNORM = 173, + + PIPE_FORMAT_B10G10R10A2_USCALED = 174, + PIPE_FORMAT_B10G10R10A2_SSCALED = 175, + PIPE_FORMAT_B10G10R10A2_SNORM = 176, + + PIPE_FORMAT_R8_UINT = 177, + PIPE_FORMAT_R8G8_UINT = 178, + PIPE_FORMAT_R8G8B8_UINT = 179, + PIPE_FORMAT_R8G8B8A8_UINT = 180, + + PIPE_FORMAT_R8_SINT = 181, + PIPE_FORMAT_R8G8_SINT = 182, + PIPE_FORMAT_R8G8B8_SINT = 183, + PIPE_FORMAT_R8G8B8A8_SINT = 184, + + PIPE_FORMAT_R16_UINT = 185, + PIPE_FORMAT_R16G16_UINT = 186, + PIPE_FORMAT_R16G16B16_UINT = 187, + PIPE_FORMAT_R16G16B16A16_UINT = 188, + + PIPE_FORMAT_R16_SINT = 189, + PIPE_FORMAT_R16G16_SINT = 190, + PIPE_FORMAT_R16G16B16_SINT = 191, + PIPE_FORMAT_R16G16B16A16_SINT = 192, + + PIPE_FORMAT_R32_UINT = 193, + PIPE_FORMAT_R32G32_UINT = 194, + PIPE_FORMAT_R32G32B32_UINT = 195, + PIPE_FORMAT_R32G32B32A32_UINT = 196, + + PIPE_FORMAT_R32_SINT = 197, + PIPE_FORMAT_R32G32_SINT = 198, + PIPE_FORMAT_R32G32B32_SINT = 199, + PIPE_FORMAT_R32G32B32A32_SINT = 200, + + PIPE_FORMAT_A8_UINT = 201, + PIPE_FORMAT_I8_UINT = 202, + PIPE_FORMAT_L8_UINT = 203, + PIPE_FORMAT_L8A8_UINT = 204, + + PIPE_FORMAT_A8_SINT = 205, + PIPE_FORMAT_I8_SINT = 206, + PIPE_FORMAT_L8_SINT = 207, + PIPE_FORMAT_L8A8_SINT = 208, + + PIPE_FORMAT_A16_UINT = 209, + PIPE_FORMAT_I16_UINT = 210, + PIPE_FORMAT_L16_UINT = 211, + PIPE_FORMAT_L16A16_UINT = 212, + + PIPE_FORMAT_A16_SINT = 213, + PIPE_FORMAT_I16_SINT = 214, + PIPE_FORMAT_L16_SINT = 215, + PIPE_FORMAT_L16A16_SINT = 216, + + PIPE_FORMAT_A32_UINT = 217, + PIPE_FORMAT_I32_UINT = 218, + PIPE_FORMAT_L32_UINT = 219, + PIPE_FORMAT_L32A32_UINT = 220, + + PIPE_FORMAT_A32_SINT = 221, + PIPE_FORMAT_I32_SINT = 222, + PIPE_FORMAT_L32_SINT = 223, + PIPE_FORMAT_L32A32_SINT = 224, + + PIPE_FORMAT_B10G10R10A2_UINT = 225, + + PIPE_FORMAT_ETC1_RGB8 = 226, + + PIPE_FORMAT_R8G8_R8B8_UNORM = 227, + PIPE_FORMAT_G8R8_B8R8_UNORM = 228, + + PIPE_FORMAT_R8G8B8X8_SNORM = 229, + PIPE_FORMAT_R8G8B8X8_SRGB = 230, + PIPE_FORMAT_R8G8B8X8_UINT = 231, + PIPE_FORMAT_R8G8B8X8_SINT = 232, + PIPE_FORMAT_B10G10R10X2_UNORM = 233, + PIPE_FORMAT_R16G16B16X16_UNORM = 234, + PIPE_FORMAT_R16G16B16X16_SNORM = 235, + PIPE_FORMAT_R16G16B16X16_FLOAT = 236, + PIPE_FORMAT_R16G16B16X16_UINT = 237, + PIPE_FORMAT_R16G16B16X16_SINT = 238, + PIPE_FORMAT_R32G32B32X32_FLOAT = 239, + PIPE_FORMAT_R32G32B32X32_UINT = 240, + PIPE_FORMAT_R32G32B32X32_SINT = 241, + + PIPE_FORMAT_R8A8_SNORM = 242, + PIPE_FORMAT_R16A16_UNORM = 243, + PIPE_FORMAT_R16A16_SNORM = 244, + PIPE_FORMAT_R16A16_FLOAT = 245, + PIPE_FORMAT_R32A32_FLOAT = 246, + PIPE_FORMAT_R8A8_UINT = 247, + PIPE_FORMAT_R8A8_SINT = 248, + PIPE_FORMAT_R16A16_UINT = 249, + PIPE_FORMAT_R16A16_SINT = 250, + PIPE_FORMAT_R32A32_UINT = 251, + PIPE_FORMAT_R32A32_SINT = 252, + PIPE_FORMAT_R10G10B10A2_UINT = 253, + + PIPE_FORMAT_B5G6R5_SRGB = 254, + + PIPE_FORMAT_BPTC_RGBA_UNORM = 255, + PIPE_FORMAT_BPTC_SRGBA = 256, + PIPE_FORMAT_BPTC_RGB_FLOAT = 257, + PIPE_FORMAT_BPTC_RGB_UFLOAT = 258, + + PIPE_FORMAT_A8L8_UNORM = 259, + PIPE_FORMAT_A8L8_SNORM = 260, + PIPE_FORMAT_A8L8_SRGB = 261, + PIPE_FORMAT_A16L16_UNORM = 262, + + PIPE_FORMAT_G8R8_UNORM = 263, + PIPE_FORMAT_G8R8_SNORM = 264, + PIPE_FORMAT_G16R16_UNORM = 265, + PIPE_FORMAT_G16R16_SNORM = 266, + + PIPE_FORMAT_A8B8G8R8_SNORM = 267, + PIPE_FORMAT_X8B8G8R8_SNORM = 268, + + PIPE_FORMAT_ETC2_RGB8 = 269, + PIPE_FORMAT_ETC2_SRGB8 = 270, + PIPE_FORMAT_ETC2_RGB8A1 = 271, + PIPE_FORMAT_ETC2_SRGB8A1 = 272, + PIPE_FORMAT_ETC2_RGBA8 = 273, + PIPE_FORMAT_ETC2_SRGBA8 = 274, + PIPE_FORMAT_ETC2_R11_UNORM = 275, + PIPE_FORMAT_ETC2_R11_SNORM = 276, + PIPE_FORMAT_ETC2_RG11_UNORM = 277, + PIPE_FORMAT_ETC2_RG11_SNORM = 278, + + PIPE_FORMAT_ASTC_4x4 = 279, + PIPE_FORMAT_ASTC_5x4 = 280, + PIPE_FORMAT_ASTC_5x5 = 281, + PIPE_FORMAT_ASTC_6x5 = 282, + PIPE_FORMAT_ASTC_6x6 = 283, + PIPE_FORMAT_ASTC_8x5 = 284, + PIPE_FORMAT_ASTC_8x6 = 285, + PIPE_FORMAT_ASTC_8x8 = 286, + PIPE_FORMAT_ASTC_10x5 = 287, + PIPE_FORMAT_ASTC_10x6 = 288, + PIPE_FORMAT_ASTC_10x8 = 289, + PIPE_FORMAT_ASTC_10x10 = 290, + PIPE_FORMAT_ASTC_12x10 = 291, + PIPE_FORMAT_ASTC_12x12 = 292, + + PIPE_FORMAT_ASTC_4x4_SRGB = 293, + PIPE_FORMAT_ASTC_5x4_SRGB = 294, + PIPE_FORMAT_ASTC_5x5_SRGB = 295, + PIPE_FORMAT_ASTC_6x5_SRGB = 296, + PIPE_FORMAT_ASTC_6x6_SRGB = 297, + PIPE_FORMAT_ASTC_8x5_SRGB = 298, + PIPE_FORMAT_ASTC_8x6_SRGB = 299, + PIPE_FORMAT_ASTC_8x8_SRGB = 300, + PIPE_FORMAT_ASTC_10x5_SRGB = 301, + PIPE_FORMAT_ASTC_10x6_SRGB = 302, + PIPE_FORMAT_ASTC_10x8_SRGB = 303, + PIPE_FORMAT_ASTC_10x10_SRGB = 304, + PIPE_FORMAT_ASTC_12x10_SRGB = 305, + PIPE_FORMAT_ASTC_12x12_SRGB = 306, + + PIPE_FORMAT_P016 = 307, + + PIPE_FORMAT_R10G10B10X2_UNORM = 308, + PIPE_FORMAT_A1B5G5R5_UNORM = 309, + PIPE_FORMAT_X1B5G5R5_UNORM = 310, + PIPE_FORMAT_A4B4G4R4_UNORM = 311, + + PIPE_FORMAT_R8_SRGB = 312, + + PIPE_FORMAT_A8L8_SINT = 313, + PIPE_FORMAT_G8R8_SINT = 314, + PIPE_FORMAT_A8B8G8R8_SINT = 315, + PIPE_FORMAT_X8B8G8R8_SINT = 316, + + PIPE_FORMAT_ATC_RGB = 317, + PIPE_FORMAT_ATC_RGBA_EXPLICIT = 318, + PIPE_FORMAT_ATC_RGBA_INTERPOLATED = 319, PIPE_FORMAT_COUNT }; +#if defined(PIPE_ARCH_LITTLE_ENDIAN) +#define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM +#define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM +#define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM +#define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM +#define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM +#define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM +#define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM +#define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM +#define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM +#define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM +#define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM +#define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM +#define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB +#define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB +#define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB +#define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB +#define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB +#define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB +#define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB +#define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB +#define PIPE_FORMAT_LA88_UNORM PIPE_FORMAT_L8A8_UNORM +#define PIPE_FORMAT_AL88_UNORM PIPE_FORMAT_A8L8_UNORM +#define PIPE_FORMAT_LA88_SNORM PIPE_FORMAT_L8A8_SNORM +#define PIPE_FORMAT_AL88_SNORM PIPE_FORMAT_A8L8_SNORM +#define PIPE_FORMAT_LA88_SRGB PIPE_FORMAT_L8A8_SRGB +#define PIPE_FORMAT_AL88_SRGB PIPE_FORMAT_A8L8_SRGB +#define PIPE_FORMAT_LA1616_UNORM PIPE_FORMAT_L16A16_UNORM +#define PIPE_FORMAT_AL1616_UNORM PIPE_FORMAT_A16L16_UNORM +#define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_R8G8_UNORM +#define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_G8R8_UNORM +#define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_R8G8_SNORM +#define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_G8R8_SNORM +#define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_R16G16_UNORM +#define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_G16R16_UNORM +#define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_R16G16_SNORM +#define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_G16R16_SNORM +#elif defined(PIPE_ARCH_BIG_ENDIAN) +#define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM +#define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM +#define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM +#define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM +#define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM +#define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM +#define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM +#define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM +#define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM +#define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM +#define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM +#define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM +#define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB +#define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB +#define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB +#define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB +#define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB +#define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB +#define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB +#define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB +#define PIPE_FORMAT_LA88_UNORM PIPE_FORMAT_A8L8_UNORM +#define PIPE_FORMAT_AL88_UNORM PIPE_FORMAT_L8A8_UNORM +#define PIPE_FORMAT_LA88_SNORM PIPE_FORMAT_A8L8_SNORM +#define PIPE_FORMAT_AL88_SNORM PIPE_FORMAT_L8A8_SNORM +#define PIPE_FORMAT_LA88_SRGB PIPE_FORMAT_A8L8_SRGB +#define PIPE_FORMAT_AL88_SRGB PIPE_FORMAT_L8A8_SRGB +#define PIPE_FORMAT_LA1616_UNORM PIPE_FORMAT_A16L16_UNORM +#define PIPE_FORMAT_AL1616_UNORM PIPE_FORMAT_L16A16_UNORM +#define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_G8R8_UNORM +#define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_R8G8_UNORM +#define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_G8R8_SNORM +#define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_R8G8_SNORM +#define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_G16R16_UNORM +#define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_R16G16_UNORM +#define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_G16R16_SNORM +#define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_R16G16_SNORM +#endif + enum pipe_video_chroma_format { + PIPE_VIDEO_CHROMA_FORMAT_400, PIPE_VIDEO_CHROMA_FORMAT_420, PIPE_VIDEO_CHROMA_FORMAT_422, - PIPE_VIDEO_CHROMA_FORMAT_444 + PIPE_VIDEO_CHROMA_FORMAT_444, + PIPE_VIDEO_CHROMA_FORMAT_NONE }; #ifdef __cplusplus