2010-03-01 14:49:18 +00:00
|
|
|
###########################################################################
|
|
|
|
#
|
|
|
|
# Copyright 2009-2010 VMware, Inc.
|
|
|
|
# All Rights Reserved.
|
|
|
|
#
|
|
|
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
# copy of this software and associated documentation files (the
|
|
|
|
# "Software"), to deal in the Software without restriction, including
|
|
|
|
# without limitation the rights to use, copy, modify, merge, publish,
|
|
|
|
# distribute, sub license, and/or sell copies of the Software, and to
|
|
|
|
# permit persons to whom the Software is furnished to do so, subject to
|
|
|
|
# the following conditions:
|
|
|
|
#
|
|
|
|
# The above copyright notice and this permission notice (including the
|
|
|
|
# next paragraph) shall be included in all copies or substantial portions
|
|
|
|
# of the Software.
|
|
|
|
#
|
|
|
|
# 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 THE AUTHORS 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.
|
|
|
|
#
|
|
|
|
###########################################################################
|
|
|
|
|
|
|
|
# This CSV file has the input data for u_format.h's struct
|
|
|
|
# util_format_description.
|
|
|
|
#
|
|
|
|
# Each format entry contains:
|
|
|
|
# - name, per enum pipe_format
|
|
|
|
# - layout, per enum util_format_layout, in shortened lower caps
|
|
|
|
# - pixel block's width
|
|
|
|
# - pixel block's height
|
|
|
|
# - channel encoding (only meaningful for plain layout), containing for each
|
|
|
|
# channel the following information:
|
|
|
|
# - type, one of
|
|
|
|
# - 'x': void
|
|
|
|
# - 'u': unsigned
|
|
|
|
# - 's': signed
|
|
|
|
# - 'h': fixed
|
|
|
|
# - 'f': FLOAT
|
|
|
|
# - optionally followed by 'n' if it is normalized
|
|
|
|
# - number of bits
|
|
|
|
# - channel swizzle
|
|
|
|
# - color space: rgb, yub, sz
|
|
|
|
#
|
|
|
|
# See also:
|
2010-03-01 15:14:30 +00:00
|
|
|
# - http://msdn.microsoft.com/en-us/library/ee416489.aspx (D3D9)
|
|
|
|
# - http://msdn.microsoft.com/en-us/library/ee415668.aspx (D3D9 -> D3D10)
|
|
|
|
# - http://msdn.microsoft.com/en-us/library/ee418116.aspx (D3D10)
|
2010-03-01 14:49:18 +00:00
|
|
|
#
|
|
|
|
# Note that GL doesn't really specify the layout of internal formats. See
|
|
|
|
# OpenGL 2.1 specification, Table 3.16, on the "Correspondence of sized
|
|
|
|
# internal formats to base in- ternal formats, and desired component
|
|
|
|
# resolutions for each sized internal format."
|
|
|
|
|
2010-02-24 14:15:09 +00:00
|
|
|
# Typical rendertarget formats
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_A8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, rgb
|
|
|
|
PIPE_FORMAT_X8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyx1, rgb
|
|
|
|
PIPE_FORMAT_B8G8R8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, rgb
|
|
|
|
PIPE_FORMAT_B8G8R8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzw1, rgb
|
2010-03-01 16:24:48 +00:00
|
|
|
PIPE_FORMAT_R8G8B8A8_UNORM_REV , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, rgb
|
2010-03-01 14:24:41 +00:00
|
|
|
PIPE_FORMAT_R8G8B8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, rgb
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_A1R5G5B5_UNORM , plain, 1, 1, un5 , un5 , un5 , un1 , zyxw, rgb
|
|
|
|
PIPE_FORMAT_A4R4G4B4_UNORM , plain, 1, 1, un4 , un4 , un4 , un4 , zyxw, rgb
|
|
|
|
PIPE_FORMAT_R5G6B5_UNORM , plain, 1, 1, un5 , un6 , un5 , , zyx1, rgb
|
|
|
|
PIPE_FORMAT_A2B10G10R10_UNORM , plain, 1, 1, un10, un10, un10, un2 , xyzw, rgb
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# Luminance/Intensity/Alpha formats
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_L8_UNORM , plain, 1, 1, un8 , , , , xxx1, rgb
|
|
|
|
PIPE_FORMAT_A8_UNORM , plain, 1, 1, un8 , , , , 000x, rgb
|
|
|
|
PIPE_FORMAT_I8_UNORM , plain, 1, 1, un8 , , , , xxxx, rgb
|
|
|
|
PIPE_FORMAT_A8L8_UNORM , plain, 1, 1, un8 , un8 , , , xxxy, rgb
|
|
|
|
PIPE_FORMAT_L16_UNORM , plain, 1, 1, un16, , , , xxx1, rgb
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# SRGB formats
|
2010-02-26 16:46:09 +00:00
|
|
|
PIPE_FORMAT_L8_SRGB , plain, 1, 1, un8 , , , , xxx1, srgb
|
|
|
|
PIPE_FORMAT_A8L8_SRGB , plain, 1, 1, un8 , un8 , , , xxxy, srgb
|
2010-03-01 16:42:54 +00:00
|
|
|
PIPE_FORMAT_R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , , xyz1, srgb
|
2010-02-26 16:46:09 +00:00
|
|
|
PIPE_FORMAT_R8G8B8A8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, srgb
|
|
|
|
PIPE_FORMAT_R8G8B8X8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, srgb
|
|
|
|
PIPE_FORMAT_A8R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, srgb
|
|
|
|
PIPE_FORMAT_X8R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , zyx1, srgb
|
|
|
|
PIPE_FORMAT_B8G8R8A8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, srgb
|
|
|
|
PIPE_FORMAT_B8G8R8X8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , yzw1, srgb
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# Signed formats (typically used for bump map textures)
|
2010-02-27 20:28:53 +00:00
|
|
|
PIPE_FORMAT_X8B8G8R8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , xyz1, rgb
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_X8UB8UG8SR8S_NORM , plain, 1, 1, sn8 , sn8 , un8 , x8 , xyz1, rgb
|
|
|
|
PIPE_FORMAT_B6UG5SR5S_NORM , plain, 1, 1, sn5 , sn5 , un6 , , xyz1, rgb
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# Depth-stencil formats
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_S8_UNORM , plain, 1, 1, un8 , , , , _x__, zs
|
|
|
|
PIPE_FORMAT_Z16_UNORM , plain, 1, 1, un16, , , , x___, zs
|
|
|
|
PIPE_FORMAT_Z32_UNORM , plain, 1, 1, un32, , , , x___, zs
|
|
|
|
PIPE_FORMAT_Z32_FLOAT , plain, 1, 1, f32 , , , , x___, zs
|
|
|
|
PIPE_FORMAT_S8Z24_UNORM , plain, 1, 1, un24, un8 , , , xy__, zs
|
|
|
|
PIPE_FORMAT_Z24S8_UNORM , plain, 1, 1, un8 , un24, , , yx__, zs
|
|
|
|
PIPE_FORMAT_X8Z24_UNORM , plain, 1, 1, un24, un8 , , , x___, zs
|
|
|
|
PIPE_FORMAT_Z24X8_UNORM , plain, 1, 1, un8 , un24, , , y___, zs
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# YUV formats
|
2010-03-01 14:22:30 +00:00
|
|
|
# http://www.fourcc.org/yuv.php#UYVY
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_YCBCR , subsampled, 2, 1, x32 , , , , xyz1, yuv
|
2010-03-01 14:22:30 +00:00
|
|
|
# http://www.fourcc.org/yuv.php#YUYV (a.k.a http://www.fourcc.org/yuv.php#YUY2)
|
|
|
|
# XXX: u_tile.c's ycbcr_get_tile_rgba actually interprets it as VYUY but the
|
|
|
|
# intent should be to match D3DFMT_YUY2
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_YCBCR_REV , subsampled, 2, 1, x32 , , , , xyz1, yuv
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# Compressed formats
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_DXT1_RGB , compressed, 4, 4, x64 , , , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_DXT1_RGBA , compressed, 4, 4, x64 , , , , xyzw, rgb
|
|
|
|
PIPE_FORMAT_DXT3_RGBA , compressed, 4, 4, x128, , , , xyzw, rgb
|
|
|
|
PIPE_FORMAT_DXT5_RGBA , compressed, 4, 4, x128, , , , xyzw, rgb
|
|
|
|
PIPE_FORMAT_DXT1_SRGB , compressed, 4, 4, x64 , , , , xyz1, srgb
|
|
|
|
PIPE_FORMAT_DXT1_SRGBA , compressed, 4, 4, x64 , , , , xyzw, srgb
|
|
|
|
PIPE_FORMAT_DXT3_SRGBA , compressed, 4, 4, x128, , , , xyzw, srgb
|
|
|
|
PIPE_FORMAT_DXT5_SRGBA , compressed, 4, 4, x128, , , , xyzw, srgb
|
2010-02-24 14:15:09 +00:00
|
|
|
|
|
|
|
# Old vector formats
|
|
|
|
# XXX: Swizzle notation is reversed for these!
|
|
|
|
# See also:
|
|
|
|
# - src/gallium/auxiliary/translate/translate_generic.c
|
|
|
|
# - src/mesa/state_tracker/st_draw.c
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_R64_FLOAT , plain, 1, 1, f64 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R64G64_FLOAT , plain, 1, 1, f64 , f64 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R64G64B64_FLOAT , plain, 1, 1, f64 , f64 , f64 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R64G64B64A64_FLOAT , plain, 1, 1, f64 , f64 , f64 , f64 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R32_FLOAT , plain, 1, 1, f32 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R32G32_FLOAT , plain, 1, 1, f32 , f32 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32_FLOAT , plain, 1, 1, f32 , f32 , f32 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32A32_FLOAT , plain, 1, 1, f32 , f32 , f32 , f32 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R32_UNORM , plain, 1, 1, un32, , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R32G32_UNORM , plain, 1, 1, un32, un32, , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32_UNORM , plain, 1, 1, un32, un32, un32, , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32A32_UNORM , plain, 1, 1, un32, un32, un32, un32, xyzw, rgb
|
|
|
|
PIPE_FORMAT_R32_USCALED , plain, 1, 1, u32 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R32G32_USCALED , plain, 1, 1, u32 , u32 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32_USCALED , plain, 1, 1, u32 , u32 , u32 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32A32_USCALED , plain, 1, 1, u32 , u32 , u32 , u32 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R32_SNORM , plain, 1, 1, sn32, , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R32G32_SNORM , plain, 1, 1, sn32, sn32, , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32_SNORM , plain, 1, 1, sn32, sn32, sn32, , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32A32_SNORM , plain, 1, 1, sn32, sn32, sn32, sn32, xyzw, rgb
|
|
|
|
PIPE_FORMAT_R32_SSCALED , plain, 1, 1, s32 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R32G32_SSCALED , plain, 1, 1, s32 , s32 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32_SSCALED , plain, 1, 1, s32 , s32 , s32 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32A32_SSCALED , plain, 1, 1, s32 , s32 , s32 , s32 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R32_FIXED , plain, 1, 1, h32 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R32G32_FIXED , plain, 1, 1, h32 , h32 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32_FIXED , plain, 1, 1, h32 , h32 , h32 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R32G32B32A32_FIXED , plain, 1, 1, h32 , h32 , h32 , h32 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R16_UNORM , plain, 1, 1, un16, , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R16G16_UNORM , plain, 1, 1, un16, un16, , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16_UNORM , plain, 1, 1, un16, un16, un16, , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16A16_UNORM , plain, 1, 1, un16, un16, un16, un16, xyzw, rgb
|
|
|
|
PIPE_FORMAT_R16_USCALED , plain, 1, 1, u16 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R16G16_USCALED , plain, 1, 1, u16 , u16 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16_USCALED , plain, 1, 1, u16 , u16 , u16 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16A16_USCALED , plain, 1, 1, u16 , u16 , u16 , u16 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R16_SNORM , plain, 1, 1, sn16, , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R16G16_SNORM , plain, 1, 1, sn16, sn16, , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16_SNORM , plain, 1, 1, sn16, sn16, sn16, , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16A16_SNORM , plain, 1, 1, sn16, sn16, sn16, sn16, xyzw, rgb
|
|
|
|
PIPE_FORMAT_R16_SSCALED , plain, 1, 1, s16 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R16G16_SSCALED , plain, 1, 1, s16 , s16 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16_SSCALED , plain, 1, 1, s16 , s16 , s16 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R16G16B16A16_SSCALED , plain, 1, 1, s16 , s16 , s16 , s16 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R8_UNORM , plain, 1, 1, un8 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R8G8_UNORM , plain, 1, 1, un8 , un8 , , , xy01, rgb
|
2010-03-01 16:07:53 +00:00
|
|
|
PIPE_FORMAT_R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , , xyz1, rgb
|
2010-03-01 16:24:48 +00:00
|
|
|
PIPE_FORMAT_R8G8B8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , xyzw, rgb
|
2010-02-24 16:09:44 +00:00
|
|
|
PIPE_FORMAT_R8_USCALED , plain, 1, 1, u8 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R8G8_USCALED , plain, 1, 1, u8 , u8 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R8G8B8_USCALED , plain, 1, 1, u8 , u8 , u8 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R8G8B8A8_USCALED , plain, 1, 1, u8 , u8 , u8 , u8 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R8_SNORM , plain, 1, 1, sn8 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R8G8_SNORM , plain, 1, 1, sn8 , sn8 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R8G8B8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R8G8B8A8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , xyzw, rgb
|
|
|
|
PIPE_FORMAT_R8_SSCALED , plain, 1, 1, s8 , , , , x001, rgb
|
|
|
|
PIPE_FORMAT_R8G8_SSCALED , plain, 1, 1, s8 , s8 , , , xy01, rgb
|
|
|
|
PIPE_FORMAT_R8G8B8_SSCALED , plain, 1, 1, s8 , s8 , s8 , , xyz1, rgb
|
|
|
|
PIPE_FORMAT_R8G8B8A8_SSCALED , plain, 1, 1, s8 , s8 , s8 , s8 , xyzw, rgb
|