u_format.csv revision a5b56c815328c0227926323c40896426bb66d227
1########################################################################### 2# 3# Copyright 2009-2010 VMware, Inc. 4# All Rights Reserved. 5# 6# Permission is hereby granted, free of charge, to any person obtaining a 7# copy of this software and associated documentation files (the 8# "Software"), to deal in the Software without restriction, including 9# without limitation the rights to use, copy, modify, merge, publish, 10# distribute, sub license, and/or sell copies of the Software, and to 11# permit persons to whom the Software is furnished to do so, subject to 12# the following conditions: 13# 14# The above copyright notice and this permission notice (including the 15# next paragraph) shall be included in all copies or substantial portions 16# of the Software. 17# 18# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21# IN NO EVENT SHALL THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR 22# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25# 26########################################################################### 27 28# This CSV file has the input data for u_format.h's struct 29# util_format_description. 30# 31# Each format entry contains: 32# - name, per enum pipe_format 33# - layout, per enum util_format_layout, in shortened lower caps 34# - pixel block's width 35# - pixel block's height 36# - channel encoding (only meaningful for plain layout), containing for each 37# channel the following information: 38# - type, one of 39# - 'x': void 40# - 'u': unsigned 41# - 's': signed 42# - 'h': fixed 43# - 'f': FLOAT 44# - optionally followed by 'n' if it is normalized 45# - number of bits 46# - channel swizzle 47# - color space: rgb, yub, sz 48# 49# See also: 50# - http://msdn.microsoft.com/en-us/library/ee416489.aspx (D3D9) 51# - http://msdn.microsoft.com/en-us/library/ee415668.aspx (D3D9 -> D3D10) 52# - http://msdn.microsoft.com/en-us/library/ee418116.aspx (D3D10) 53# 54# Note that GL doesn't really specify the layout of internal formats. See 55# OpenGL 2.1 specification, Table 3.16, on the "Correspondence of sized 56# internal formats to base in- ternal formats, and desired component 57# resolutions for each sized internal format." 58 59# Typical rendertarget formats 60PIPE_FORMAT_B8G8R8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, rgb 61PIPE_FORMAT_B8G8R8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyx1, rgb 62PIPE_FORMAT_A8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, rgb 63PIPE_FORMAT_X8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzw1, rgb 64PIPE_FORMAT_A8B8G8R8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, rgb 65PIPE_FORMAT_X8B8G8R8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, rgb 66PIPE_FORMAT_B5G5R5A1_UNORM , plain, 1, 1, un5 , un5 , un5 , un1 , zyxw, rgb 67PIPE_FORMAT_B4G4R4A4_UNORM , plain, 1, 1, un4 , un4 , un4 , un4 , zyxw, rgb 68PIPE_FORMAT_B5G6R5_UNORM , plain, 1, 1, un5 , un6 , un5 , , zyx1, rgb 69PIPE_FORMAT_R10G10B10A2_UNORM , plain, 1, 1, un10, un10, un10, un2 , xyzw, rgb 70 71# Luminance/Intensity/Alpha formats 72PIPE_FORMAT_L8_UNORM , plain, 1, 1, un8 , , , , xxx1, rgb 73PIPE_FORMAT_A8_UNORM , plain, 1, 1, un8 , , , , 000x, rgb 74PIPE_FORMAT_I8_UNORM , plain, 1, 1, un8 , , , , xxxx, rgb 75PIPE_FORMAT_L8A8_UNORM , plain, 1, 1, un8 , un8 , , , xxxy, rgb 76PIPE_FORMAT_L16_UNORM , plain, 1, 1, un16, , , , xxx1, rgb 77 78# SRGB formats 79PIPE_FORMAT_L8_SRGB , plain, 1, 1, un8 , , , , xxx1, srgb 80PIPE_FORMAT_L8A8_SRGB , plain, 1, 1, un8 , un8 , , , xxxy, srgb 81PIPE_FORMAT_R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , , xyz1, srgb 82PIPE_FORMAT_A8B8G8R8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, srgb 83PIPE_FORMAT_X8B8G8R8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, srgb 84PIPE_FORMAT_B8G8R8A8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, srgb 85PIPE_FORMAT_B8G8R8X8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , zyx1, srgb 86PIPE_FORMAT_A8R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, srgb 87PIPE_FORMAT_X8R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , yzw1, srgb 88 89# Mixed-sign formats (typically used for bump map textures) 90PIPE_FORMAT_R8SG8SB8UX8U_NORM , plain, 1, 1, sn8 , sn8 , un8 , x8 , xyz1, rgb 91PIPE_FORMAT_R5SG5SB6U_NORM , plain, 1, 1, sn5 , sn5 , un6 , , xyz1, rgb 92 93# Depth-stencil formats 94PIPE_FORMAT_S8_UNORM , plain, 1, 1, un8 , , , , _x__, zs 95PIPE_FORMAT_Z16_UNORM , plain, 1, 1, un16, , , , x___, zs 96PIPE_FORMAT_Z32_UNORM , plain, 1, 1, un32, , , , x___, zs 97PIPE_FORMAT_Z32_FLOAT , plain, 1, 1, f32 , , , , x___, zs 98PIPE_FORMAT_Z24S8_UNORM , plain, 1, 1, un24, un8 , , , xy__, zs 99PIPE_FORMAT_S8Z24_UNORM , plain, 1, 1, un8 , un24, , , yx__, zs 100PIPE_FORMAT_Z24X8_UNORM , plain, 1, 1, un24, un8 , , , x___, zs 101PIPE_FORMAT_X8Z24_UNORM , plain, 1, 1, un8 , un24, , , y___, zs 102 103# YUV formats 104# http://www.fourcc.org/yuv.php#UYVY 105PIPE_FORMAT_UYVY , subsampled, 2, 1, x32 , , , , xyz1, yuv 106# http://www.fourcc.org/yuv.php#YUYV (a.k.a http://www.fourcc.org/yuv.php#YUY2) 107# XXX: u_tile.c's ycbcr_get_tile_rgba actually interprets it as VYUY but the 108# intent should be to match D3DFMT_YUY2 109PIPE_FORMAT_YUYV , subsampled, 2, 1, x32 , , , , xyz1, yuv 110 111# Compressed formats 112PIPE_FORMAT_DXT1_RGB , compressed, 4, 4, x64 , , , , xyz1, rgb 113PIPE_FORMAT_DXT1_RGBA , compressed, 4, 4, x64 , , , , xyzw, rgb 114PIPE_FORMAT_DXT3_RGBA , compressed, 4, 4, x128, , , , xyzw, rgb 115PIPE_FORMAT_DXT5_RGBA , compressed, 4, 4, x128, , , , xyzw, rgb 116PIPE_FORMAT_DXT1_SRGB , compressed, 4, 4, x64 , , , , xyz1, srgb 117PIPE_FORMAT_DXT1_SRGBA , compressed, 4, 4, x64 , , , , xyzw, srgb 118PIPE_FORMAT_DXT3_SRGBA , compressed, 4, 4, x128, , , , xyzw, srgb 119PIPE_FORMAT_DXT5_SRGBA , compressed, 4, 4, x128, , , , xyzw, srgb 120 121# Straightforward D3D10-like formats (also used for 122# vertex buffer element description) 123# 124# See also: 125# - src/gallium/auxiliary/translate/translate_generic.c 126# - src/mesa/state_tracker/st_draw.c 127PIPE_FORMAT_R64_FLOAT , plain, 1, 1, f64 , , , , x001, rgb 128PIPE_FORMAT_R64G64_FLOAT , plain, 1, 1, f64 , f64 , , , xy01, rgb 129PIPE_FORMAT_R64G64B64_FLOAT , plain, 1, 1, f64 , f64 , f64 , , xyz1, rgb 130PIPE_FORMAT_R64G64B64A64_FLOAT , plain, 1, 1, f64 , f64 , f64 , f64 , xyzw, rgb 131PIPE_FORMAT_R32_FLOAT , plain, 1, 1, f32 , , , , x001, rgb 132PIPE_FORMAT_R32G32_FLOAT , plain, 1, 1, f32 , f32 , , , xy01, rgb 133PIPE_FORMAT_R32G32B32_FLOAT , plain, 1, 1, f32 , f32 , f32 , , xyz1, rgb 134PIPE_FORMAT_R32G32B32A32_FLOAT , plain, 1, 1, f32 , f32 , f32 , f32 , xyzw, rgb 135PIPE_FORMAT_R32_UNORM , plain, 1, 1, un32, , , , x001, rgb 136PIPE_FORMAT_R32G32_UNORM , plain, 1, 1, un32, un32, , , xy01, rgb 137PIPE_FORMAT_R32G32B32_UNORM , plain, 1, 1, un32, un32, un32, , xyz1, rgb 138PIPE_FORMAT_R32G32B32A32_UNORM , plain, 1, 1, un32, un32, un32, un32, xyzw, rgb 139PIPE_FORMAT_R32_USCALED , plain, 1, 1, u32 , , , , x001, rgb 140PIPE_FORMAT_R32G32_USCALED , plain, 1, 1, u32 , u32 , , , xy01, rgb 141PIPE_FORMAT_R32G32B32_USCALED , plain, 1, 1, u32 , u32 , u32 , , xyz1, rgb 142PIPE_FORMAT_R32G32B32A32_USCALED , plain, 1, 1, u32 , u32 , u32 , u32 , xyzw, rgb 143PIPE_FORMAT_R32_SNORM , plain, 1, 1, sn32, , , , x001, rgb 144PIPE_FORMAT_R32G32_SNORM , plain, 1, 1, sn32, sn32, , , xy01, rgb 145PIPE_FORMAT_R32G32B32_SNORM , plain, 1, 1, sn32, sn32, sn32, , xyz1, rgb 146PIPE_FORMAT_R32G32B32A32_SNORM , plain, 1, 1, sn32, sn32, sn32, sn32, xyzw, rgb 147PIPE_FORMAT_R32_SSCALED , plain, 1, 1, s32 , , , , x001, rgb 148PIPE_FORMAT_R32G32_SSCALED , plain, 1, 1, s32 , s32 , , , xy01, rgb 149PIPE_FORMAT_R32G32B32_SSCALED , plain, 1, 1, s32 , s32 , s32 , , xyz1, rgb 150PIPE_FORMAT_R32G32B32A32_SSCALED , plain, 1, 1, s32 , s32 , s32 , s32 , xyzw, rgb 151PIPE_FORMAT_R32_FIXED , plain, 1, 1, h32 , , , , x001, rgb 152PIPE_FORMAT_R32G32_FIXED , plain, 1, 1, h32 , h32 , , , xy01, rgb 153PIPE_FORMAT_R32G32B32_FIXED , plain, 1, 1, h32 , h32 , h32 , , xyz1, rgb 154PIPE_FORMAT_R32G32B32A32_FIXED , plain, 1, 1, h32 , h32 , h32 , h32 , xyzw, rgb 155PIPE_FORMAT_R16_UNORM , plain, 1, 1, un16, , , , x001, rgb 156PIPE_FORMAT_R16G16_UNORM , plain, 1, 1, un16, un16, , , xy01, rgb 157PIPE_FORMAT_R16G16B16_UNORM , plain, 1, 1, un16, un16, un16, , xyz1, rgb 158PIPE_FORMAT_R16G16B16A16_UNORM , plain, 1, 1, un16, un16, un16, un16, xyzw, rgb 159PIPE_FORMAT_R16_USCALED , plain, 1, 1, u16 , , , , x001, rgb 160PIPE_FORMAT_R16G16_USCALED , plain, 1, 1, u16 , u16 , , , xy01, rgb 161PIPE_FORMAT_R16G16B16_USCALED , plain, 1, 1, u16 , u16 , u16 , , xyz1, rgb 162PIPE_FORMAT_R16G16B16A16_USCALED , plain, 1, 1, u16 , u16 , u16 , u16 , xyzw, rgb 163PIPE_FORMAT_R16_SNORM , plain, 1, 1, sn16, , , , x001, rgb 164PIPE_FORMAT_R16G16_SNORM , plain, 1, 1, sn16, sn16, , , xy01, rgb 165PIPE_FORMAT_R16G16B16_SNORM , plain, 1, 1, sn16, sn16, sn16, , xyz1, rgb 166PIPE_FORMAT_R16G16B16A16_SNORM , plain, 1, 1, sn16, sn16, sn16, sn16, xyzw, rgb 167PIPE_FORMAT_R16_SSCALED , plain, 1, 1, s16 , , , , x001, rgb 168PIPE_FORMAT_R16G16_SSCALED , plain, 1, 1, s16 , s16 , , , xy01, rgb 169PIPE_FORMAT_R16G16B16_SSCALED , plain, 1, 1, s16 , s16 , s16 , , xyz1, rgb 170PIPE_FORMAT_R16G16B16A16_SSCALED , plain, 1, 1, s16 , s16 , s16 , s16 , xyzw, rgb 171PIPE_FORMAT_R8_UNORM , plain, 1, 1, un8 , , , , x001, rgb 172PIPE_FORMAT_R8G8_UNORM , plain, 1, 1, un8 , un8 , , , xy01, rgb 173PIPE_FORMAT_R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , , xyz1, rgb 174PIPE_FORMAT_R8G8B8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , xyzw, rgb 175PIPE_FORMAT_R8_USCALED , plain, 1, 1, u8 , , , , x001, rgb 176PIPE_FORMAT_R8G8_USCALED , plain, 1, 1, u8 , u8 , , , xy01, rgb 177PIPE_FORMAT_R8G8B8_USCALED , plain, 1, 1, u8 , u8 , u8 , , xyz1, rgb 178PIPE_FORMAT_R8G8B8A8_USCALED , plain, 1, 1, u8 , u8 , u8 , u8 , xyzw, rgb 179PIPE_FORMAT_R8_SNORM , plain, 1, 1, sn8 , , , , x001, rgb 180PIPE_FORMAT_R8G8_SNORM , plain, 1, 1, sn8 , sn8 , , , xy01, rgb 181PIPE_FORMAT_R8G8B8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , , xyz1, rgb 182PIPE_FORMAT_R8G8B8A8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , xyzw, rgb 183PIPE_FORMAT_R8_SSCALED , plain, 1, 1, s8 , , , , x001, rgb 184PIPE_FORMAT_R8G8_SSCALED , plain, 1, 1, s8 , s8 , , , xy01, rgb 185PIPE_FORMAT_R8G8B8_SSCALED , plain, 1, 1, s8 , s8 , s8 , , xyz1, rgb 186PIPE_FORMAT_R8G8B8A8_SSCALED , plain, 1, 1, s8 , s8 , s8 , s8 , xyzw, rgb 187