Merge branch 'gallium-format-cleanup'
This commit is contained in:
-366
@@ -1,366 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
##########################################################################
|
||||
#
|
||||
# Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
|
||||
# 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 TUNGSTEN GRAPHICS 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.
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
|
||||
import os.path
|
||||
import sys
|
||||
import struct
|
||||
import Image # http://www.pythonware.com/products/pil/
|
||||
|
||||
PIPE_FORMAT_LAYOUT_RGBAZS = 0
|
||||
PIPE_FORMAT_LAYOUT_YCBCR = 1
|
||||
PIPE_FORMAT_LAYOUT_DXT = 2
|
||||
PIPE_FORMAT_LAYOUT_MIXED = 3
|
||||
|
||||
PIPE_FORMAT_COMP_R = 0
|
||||
PIPE_FORMAT_COMP_G = 1
|
||||
PIPE_FORMAT_COMP_B = 2
|
||||
PIPE_FORMAT_COMP_A = 3
|
||||
PIPE_FORMAT_COMP_0 = 4
|
||||
PIPE_FORMAT_COMP_1 = 5
|
||||
PIPE_FORMAT_COMP_Z = 6
|
||||
PIPE_FORMAT_COMP_S = 7
|
||||
|
||||
PIPE_FORMAT_TYPE_UNKNOWN = 0
|
||||
PIPE_FORMAT_TYPE_FLOAT = 1
|
||||
PIPE_FORMAT_TYPE_UNORM = 2
|
||||
PIPE_FORMAT_TYPE_SNORM = 3
|
||||
PIPE_FORMAT_TYPE_USCALED = 4
|
||||
PIPE_FORMAT_TYPE_SSCALED = 5
|
||||
PIPE_FORMAT_TYPE_SRGB = 6
|
||||
PIPE_FORMAT_TYPE_FIXED = 7
|
||||
|
||||
def _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, EXP2, TYPE ):
|
||||
return ((PIPE_FORMAT_LAYOUT_RGBAZS << 0) |\
|
||||
((SWZ) << 2) |\
|
||||
((SIZEX) << 14) |\
|
||||
((SIZEY) << 17) |\
|
||||
((SIZEZ) << 20) |\
|
||||
((SIZEW) << 23) |\
|
||||
((EXP2) << 26) |\
|
||||
((TYPE) << 29) )
|
||||
|
||||
def _PIPE_FORMAT_SWZ( SWZX, SWZY, SWZZ, SWZW ):
|
||||
return (((SWZX) << 0) | ((SWZY) << 3) | ((SWZZ) << 6) | ((SWZW) << 9))
|
||||
|
||||
def _PIPE_FORMAT_RGBAZS_1( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
|
||||
return _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 0, TYPE )
|
||||
|
||||
def _PIPE_FORMAT_RGBAZS_2( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
|
||||
_PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 1, TYPE )
|
||||
|
||||
def _PIPE_FORMAT_RGBAZS_8( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
|
||||
return _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 3, TYPE )
|
||||
|
||||
def _PIPE_FORMAT_RGBAZS_64( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
|
||||
return _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 6, TYPE )
|
||||
|
||||
def _PIPE_FORMAT_MIXED( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, SIGNX, SIGNY, SIGNZ, SIGNW, NORMALIZED, SCALE8 ):
|
||||
return ((PIPE_FORMAT_LAYOUT_MIXED << 0) |\
|
||||
((SWZ) << 2) |\
|
||||
((SIZEX) << 14) |\
|
||||
((SIZEY) << 17) |\
|
||||
((SIZEZ) << 20) |\
|
||||
((SIZEW) << 23) |\
|
||||
((SIGNX) << 26) |\
|
||||
((SIGNY) << 27) |\
|
||||
((SIGNZ) << 28) |\
|
||||
((SIGNW) << 29) |\
|
||||
((NORMALIZED) << 30) |\
|
||||
((SCALE8) << 31) )
|
||||
|
||||
|
||||
_PIPE_FORMAT_R001 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_1 )
|
||||
_PIPE_FORMAT_RG01 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_1 )
|
||||
_PIPE_FORMAT_RGB1 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_1 )
|
||||
_PIPE_FORMAT_RGBA = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_A )
|
||||
_PIPE_FORMAT_ARGB = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_A, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B )
|
||||
_PIPE_FORMAT_ABGR = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_A, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R )
|
||||
_PIPE_FORMAT_BGRA = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_A )
|
||||
_PIPE_FORMAT_1RGB = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_1, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B )
|
||||
_PIPE_FORMAT_1BGR = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_1, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R )
|
||||
_PIPE_FORMAT_BGR1 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_1 )
|
||||
_PIPE_FORMAT_0000 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
|
||||
_PIPE_FORMAT_000R = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_R )
|
||||
_PIPE_FORMAT_RRR1 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_1 )
|
||||
_PIPE_FORMAT_RRRR = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R )
|
||||
_PIPE_FORMAT_RRRG = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G )
|
||||
_PIPE_FORMAT_Z000 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
|
||||
_PIPE_FORMAT_0Z00 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
|
||||
_PIPE_FORMAT_SZ00 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_S, PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
|
||||
_PIPE_FORMAT_ZS00 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_S, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
|
||||
_PIPE_FORMAT_S000 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_S, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
|
||||
|
||||
def _PIPE_FORMAT_YCBCR( REV ):
|
||||
return ((PIPE_FORMAT_LAYOUT_YCBCR << 0) |\
|
||||
((REV) << 2) )
|
||||
|
||||
def _PIPE_FORMAT_DXT( LEVEL, RSIZE, GSIZE, BSIZE, ASIZE ):
|
||||
return ((PIPE_FORMAT_LAYOUT_DXT << 0) | \
|
||||
((LEVEL) << 2) | \
|
||||
((RSIZE) << 5) | \
|
||||
((GSIZE) << 8) | \
|
||||
((BSIZE) << 11) | \
|
||||
((ASIZE) << 14) )
|
||||
|
||||
PIPE_FORMAT_NONE = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_0000, 0, 0, 0, 0, PIPE_FORMAT_TYPE_UNKNOWN )
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_ARGB, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_1RGB, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_BGRA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_BGR1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_ARGB, 1, 5, 5, 5, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_ARGB, 4, 4, 4, 4, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R5G6B5_UNORM = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_RGB1, 5, 6, 5, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_A2B10G10R10_UNORM = _PIPE_FORMAT_RGBAZS_2 ( _PIPE_FORMAT_ABGR, 1, 5, 5, 5, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_L8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRR1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_A8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_000R, 0, 0, 0, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_I8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRRR, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_A8L8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRRG, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_L16_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRR1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_YCBCR = _PIPE_FORMAT_YCBCR( 0 )
|
||||
PIPE_FORMAT_YCBCR_REV = _PIPE_FORMAT_YCBCR( 1 )
|
||||
PIPE_FORMAT_Z16_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 2, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_Z32_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 4, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_Z32_FLOAT = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 4, 0, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_S8Z24_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_SZ00, 1, 3, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_Z24S8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_ZS00, 3, 1, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_X8Z24_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_0Z00, 1, 3, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_Z24X8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 3, 1, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_S8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_S000, 1, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R64_FLOAT = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R64G64_FLOAT = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R64G64B64_FLOAT = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R64G64B64A64_FLOAT = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R32_FLOAT = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R32G32_FLOAT = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R32G32B32_FLOAT = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R32G32B32A32_FLOAT = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_FLOAT )
|
||||
PIPE_FORMAT_R32_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R32G32_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R32G32B32_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R32G32B32A32_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R32_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R32G32_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R32G32B32_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R32G32B32A32_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R32_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R32G32_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R32G32B32_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R32G32B32A32_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R32_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R32G32_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R32G32B32_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R32G32B32A32_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R16_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R16G16_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R16G16B16_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R16G16B16A16_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R16_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R16G16_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R16G16B16_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R16G16B16A16_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R16_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R16G16_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R16G16B16_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R16G16B16A16_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R16_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R16G16_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R16G16B16_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R16G16B16A16_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R8G8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R8G8B8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R8G8B8X8_UNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
|
||||
PIPE_FORMAT_R8_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R8G8_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R8G8B8_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R8G8B8A8_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R8G8B8X8_USCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_USCALED )
|
||||
PIPE_FORMAT_R8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R8G8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R8G8B8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R8G8B8A8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R8G8B8X8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_B6G5R5_SNORM = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_BGR1, 6, 5, 5, 0, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_A8B8G8R8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_BGRA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_X8B8G8R8_SNORM = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
|
||||
PIPE_FORMAT_R8_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R8G8_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R8G8B8_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R8G8B8A8_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R8G8B8X8_SSCALED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SSCALED )
|
||||
PIPE_FORMAT_R32_FIXED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_FIXED )
|
||||
PIPE_FORMAT_R32G32_FIXED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_FIXED )
|
||||
PIPE_FORMAT_R32G32B32_FIXED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_FIXED )
|
||||
PIPE_FORMAT_R32G32B32A32_FIXED = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_FIXED )
|
||||
PIPE_FORMAT_L8_SRGB = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRR1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SRGB )
|
||||
PIPE_FORMAT_A8_L8_SRGB = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRRG, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SRGB )
|
||||
PIPE_FORMAT_R8G8B8_SRGB = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SRGB )
|
||||
PIPE_FORMAT_R8G8B8A8_SRGB = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SRGB )
|
||||
PIPE_FORMAT_R8G8B8X8_SRGB = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SRGB )
|
||||
PIPE_FORMAT_X8UB8UG8SR8S_NORM = _PIPE_FORMAT_MIXED( _PIPE_FORMAT_1BGR, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 )
|
||||
PIPE_FORMAT_B6UG5SR5S_NORM = _PIPE_FORMAT_MIXED( _PIPE_FORMAT_BGR1, 6, 5, 5, 0, 0, 1, 1, 0, 1, 0 )
|
||||
PIPE_FORMAT_DXT1_RGB = _PIPE_FORMAT_DXT( 1, 8, 8, 8, 0 )
|
||||
PIPE_FORMAT_DXT1_RGBA = _PIPE_FORMAT_DXT( 1, 8, 8, 8, 8 )
|
||||
PIPE_FORMAT_DXT3_RGBA = _PIPE_FORMAT_DXT( 3, 8, 8, 8, 8 )
|
||||
PIPE_FORMAT_DXT5_RGBA = _PIPE_FORMAT_DXT( 5, 8, 8, 8, 8 )
|
||||
|
||||
|
||||
formats = {}
|
||||
for name, value in globals().items():
|
||||
if name.startswith("PIPE_FORMAT_") and isinstance(value, int):
|
||||
formats[value] = name
|
||||
|
||||
|
||||
def clip(g):
|
||||
return min(max(g, 0), 255)
|
||||
|
||||
|
||||
def yuv2rgb(y, u, v):
|
||||
C = y - 16
|
||||
D = u - 128
|
||||
E = v - 128
|
||||
|
||||
r = clip(( 298 * C + 409 * E + 128) >> 8)
|
||||
g = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)
|
||||
b = clip(( 298 * C + 516 * D + 128) >> 8)
|
||||
|
||||
return r, g, b
|
||||
|
||||
|
||||
def translate_r5g6b5(data):
|
||||
value, = struct.unpack_from("H", data)
|
||||
r = ((value >> 11) & 0x1f)*0xff/0x1f
|
||||
g = ((value >> 5) & 0x3f)*0xff/0x3f
|
||||
b = ((value >> 0) & 0x1f)*0xff/0x1f
|
||||
a = 255
|
||||
return [[(r, g, b, a)]]
|
||||
|
||||
def translate_a8r8g8b8(data):
|
||||
b, g, r, a = struct.unpack_from("BBBB", data)
|
||||
return [[(r, g, b, a)]]
|
||||
|
||||
|
||||
def translate_x8r8g8b8(data):
|
||||
b, g, r, x = struct.unpack_from("BBBB", data)
|
||||
a = 255
|
||||
return [[(r, g, b, a)]]
|
||||
|
||||
def translate_r8g8b8a8(data):
|
||||
r, g, b, a = struct.unpack_from("BBBB", data)
|
||||
return [[(r, g, b, a)]]
|
||||
|
||||
def translate_ycbcr(data):
|
||||
y1, u, y2, v = struct.unpack_from("BBBB", data)
|
||||
r1, g1, b1 = yuv2rgb(y1, u, v)
|
||||
r2, g2, b2 = yuv2rgb(y1, u, v)
|
||||
return [[(r1, g1, b1, 255), (r2, g2, b2, 255)]]
|
||||
|
||||
def translate_ycbcr_rev(data):
|
||||
v, y2, u, y1 = struct.unpack_from("BBBB", data)
|
||||
r1, g1, b1 = yuv2rgb(y1, u, v)
|
||||
r2, g2, b2 = yuv2rgb(y1, u, v)
|
||||
return [[(r1, g1, b1, 255), (r2, g2, b2, 255)]]
|
||||
|
||||
def translate_x8z24(data):
|
||||
value, = struct.unpack_from("I", data)
|
||||
r = g = b = (value & 0xffffff)*0xff/0xffffff
|
||||
a = 255
|
||||
return [[(r, g, b, a)]]
|
||||
|
||||
def translate_s8z24(data):
|
||||
value, = struct.unpack_from("I", data)
|
||||
r = (value & 0xffffff)*0xff/0xffffff
|
||||
g = value >> 24
|
||||
b = 0
|
||||
a = 255
|
||||
return [[(r, g, b, a)]]
|
||||
|
||||
|
||||
translate = {
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM: (4, 1, 1, translate_a8r8g8b8),
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM: (4, 1, 1, translate_x8r8g8b8),
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM: (4, 1, 1, translate_r8g8b8a8),
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM: (4, 1, 1, translate_r8g8b8a8),
|
||||
PIPE_FORMAT_A8B8G8R8_SNORM: (4, 1, 1, translate_r8g8b8a8),
|
||||
PIPE_FORMAT_R5G6B5_UNORM: (2, 1, 1, translate_r5g6b5),
|
||||
PIPE_FORMAT_YCBCR: (4, 2, 1, translate_ycbcr),
|
||||
PIPE_FORMAT_YCBCR_REV: (4, 2, 1, translate_ycbcr_rev),
|
||||
PIPE_FORMAT_S8Z24_UNORM: (4, 1, 1, translate_s8z24),
|
||||
PIPE_FORMAT_X8Z24_UNORM: (4, 1, 1, translate_x8z24),
|
||||
}
|
||||
|
||||
def read_header(infile):
|
||||
header_fmt = "IIII"
|
||||
header = infile.read(struct.calcsize(header_fmt))
|
||||
return struct.unpack_from(header_fmt, header)
|
||||
|
||||
def process(infilename, outfilename):
|
||||
sys.stderr.write("%s -> %s\n" % (infilename, outfilename))
|
||||
infile = open(infilename, "rb")
|
||||
format, cpp, width, height = read_header(infile)
|
||||
sys.stderr.write(" %ux%ux%ubpp %s\n" % (width, height, cpp*8, formats[format]))
|
||||
outimage = Image.new(
|
||||
mode='RGB',
|
||||
size=(width, height),
|
||||
color=(0,0,0))
|
||||
outpixels = outimage.load()
|
||||
try:
|
||||
bsize, bwidth, bheight, translate_func = translate[format]
|
||||
except KeyError:
|
||||
sys.stderr.write('error: unsupported format %s\n' % formats[format])
|
||||
return
|
||||
for y in range(0, height, bheight):
|
||||
for x in range(0, width, bwidth):
|
||||
indata = infile.read(bsize)
|
||||
outdata = translate_func(indata)
|
||||
for j in range(bheight):
|
||||
for i in range(bwidth):
|
||||
r, g, b, a = outdata[j][i]
|
||||
outpixels[x+i, y+j] = r, g, b
|
||||
outimage.save(outfilename, "PNG")
|
||||
|
||||
|
||||
def main():
|
||||
if sys.platform == 'win32':
|
||||
# wildcard expansion
|
||||
from glob import glob
|
||||
args = []
|
||||
for arg in sys.argv[1:]:
|
||||
args.extend(glob(arg))
|
||||
else:
|
||||
args = sys.argv[1:]
|
||||
for infilename in args:
|
||||
root, ext = os.path.splitext(infilename)
|
||||
outfilename = root + ".png"
|
||||
process(infilename, outfilename)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -543,7 +543,7 @@ class Context(Object):
|
||||
gallium.PIPE_FORMAT_R32G32_FLOAT: '2f',
|
||||
gallium.PIPE_FORMAT_R32G32B32_FLOAT: '3f',
|
||||
gallium.PIPE_FORMAT_R32G32B32A32_FLOAT: '4f',
|
||||
gallium.PIPE_FORMAT_B8G8R8A8_UNORM: '4B',
|
||||
gallium.PIPE_FORMAT_A8R8G8B8_UNORM: '4B',
|
||||
gallium.PIPE_FORMAT_R8G8B8A8_UNORM: '4B',
|
||||
gallium.PIPE_FORMAT_R16G16B16_SNORM: '3h',
|
||||
}[velem.src_format]
|
||||
|
||||
@@ -134,7 +134,7 @@ def test(dev):
|
||||
|
||||
# framebuffer
|
||||
cbuf = dev.texture_create(
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
width, height,
|
||||
tex_usage=PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
).get_surface()
|
||||
|
||||
@@ -134,7 +134,7 @@ def test(dev):
|
||||
|
||||
# framebuffer
|
||||
cbuf = dev.texture_create(
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
width, height,
|
||||
tex_usage=PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
).get_surface()
|
||||
|
||||
@@ -50,8 +50,8 @@ def is_depth_stencil_format(format):
|
||||
# FIXME: make and use binding to util_format_is_depth_or_stencil
|
||||
return format in (
|
||||
PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
)
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ def test(dev, name):
|
||||
|
||||
# framebuffer
|
||||
cbuf = dev.texture_create(
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
width, height,
|
||||
tex_usage=PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
).get_surface()
|
||||
|
||||
@@ -114,7 +114,7 @@ def test(dev, name):
|
||||
|
||||
# framebuffer
|
||||
cbuf = dev.texture_create(
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
width, height,
|
||||
tex_usage=PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
).get_surface()
|
||||
|
||||
@@ -131,15 +131,15 @@ def main():
|
||||
]
|
||||
|
||||
formats = [
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM,
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM,
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM,
|
||||
PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_S8_UNORM,
|
||||
PIPE_FORMAT_A8_UNORM,
|
||||
|
||||
@@ -96,7 +96,7 @@ class TextureTest(TestCase):
|
||||
|
||||
src_texture = dev.texture_create(
|
||||
target = target,
|
||||
format = PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
format = PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
width = dst_surface.width,
|
||||
height = dst_surface.height,
|
||||
depth = 1,
|
||||
@@ -149,7 +149,7 @@ class TextureTest(TestCase):
|
||||
|
||||
# framebuffer
|
||||
cbuf_tex = dev.texture_create(
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
width,
|
||||
height,
|
||||
tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
@@ -251,15 +251,15 @@ def main():
|
||||
]
|
||||
|
||||
formats = [
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
#PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM,
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
#PIPE_FORMAT_B8G8R8A8_SRGB,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM,
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM,
|
||||
#PIPE_FORMAT_Z32_UNORM,
|
||||
#PIPE_FORMAT_Z24S8_UNORM,
|
||||
#PIPE_FORMAT_Z24X8_UNORM,
|
||||
#PIPE_FORMAT_S8Z24_UNORM,
|
||||
#PIPE_FORMAT_X8Z24_UNORM,
|
||||
#PIPE_FORMAT_Z16_UNORM,
|
||||
#PIPE_FORMAT_S8_UNORM,
|
||||
PIPE_FORMAT_A8_UNORM,
|
||||
|
||||
@@ -193,7 +193,7 @@ class TextureColorSampleTest(TestCase):
|
||||
|
||||
# framebuffer
|
||||
cbuf_tex = dev.texture_create(
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
width,
|
||||
height,
|
||||
tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
@@ -383,14 +383,14 @@ class TextureDepthSampleTest(TestCase):
|
||||
|
||||
# framebuffer
|
||||
cbuf_tex = dev.texture_create(
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
width,
|
||||
height,
|
||||
tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
)
|
||||
|
||||
zsbuf_tex = dev.texture_create(
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
width,
|
||||
height,
|
||||
tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET,
|
||||
@@ -498,15 +498,15 @@ def main():
|
||||
]
|
||||
|
||||
color_formats = [
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
#PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM,
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
#PIPE_FORMAT_B8G8R8A8_SRGB,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM,
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM,
|
||||
PIPE_FORMAT_A8_UNORM,
|
||||
PIPE_FORMAT_L8_UNORM,
|
||||
PIPE_FORMAT_YCBCR,
|
||||
PIPE_FORMAT_UYVY,
|
||||
PIPE_FORMAT_DXT1_RGB,
|
||||
#PIPE_FORMAT_DXT1_RGBA,
|
||||
#PIPE_FORMAT_DXT3_RGBA,
|
||||
@@ -515,8 +515,8 @@ def main():
|
||||
|
||||
depth_formats = [
|
||||
PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
]
|
||||
|
||||
|
||||
@@ -111,15 +111,15 @@ def main():
|
||||
]
|
||||
|
||||
formats = [
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM,
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM,
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM,
|
||||
PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_S8_UNORM,
|
||||
PIPE_FORMAT_A8_UNORM,
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#include "util/u_format_pack.h"
|
||||
|
||||
|
||||
#define MAX_PACKED_BYTES 4
|
||||
#define MAX_PACKED_BYTES 16
|
||||
|
||||
|
||||
/**
|
||||
@@ -62,10 +62,20 @@ struct util_format_test_case
|
||||
* Helper macros to create the packed bytes for longer words.
|
||||
*/
|
||||
|
||||
#define PACKED_1x8(x) {x, 0, 0, 0}
|
||||
#define PACKED_4x8(x, y, z, w) {x, y, z, w}
|
||||
#define PACKED_1x32(x) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, ((x) >> 24) & 0xff}
|
||||
#define PACKED_1x16(x) {(x) & 0xff, ((x) >> 8) & 0xff, 0, 0}
|
||||
#define PACKED_1x8(x) {x, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_2x8(x, y) {x, y, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_3x8(x, y, z) {x, y, z, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_4x8(x, y, z, w) {x, y, z, w, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
|
||||
#define PACKED_1x16(x) {(x) & 0xff, (x) >> 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_2x16(x, y) {(x) & 0xff, (x) >> 8, (y) & 0xff, (y) >> 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_3x16(x, y, z) {(x) & 0xff, (x) >> 8, (y) & 0xff, (y) >> 8, (z) & 0xff, (z) >> 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_4x16(x, y, z, w) {(x) & 0xff, (x) >> 8, (y) & 0xff, (y) >> 8, (z) & 0xff, (z) >> 8, (w) & 0xff, (w) >> 8, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
|
||||
#define PACKED_1x32(x) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, (x) >> 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_2x32(x, y) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, (x) >> 24, (y) & 0xff, ((y) >> 8) & 0xff, ((y) >> 16) & 0xff, (y) >> 24, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
#define PACKED_3x32(x, y, z) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, (x) >> 24, (y) & 0xff, ((y) >> 8) & 0xff, ((y) >> 16) & 0xff, (y) >> 24, (z) & 0xff, ((z) >> 8) & 0xff, ((z) >> 16) & 0xff, (z) >> 24, 0, 0, 0, 0}
|
||||
#define PACKED_4x32(x, y, z, w) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, (x) >> 24, (y) & 0xff, ((y) >> 8) & 0xff, ((y) >> 16) & 0xff, (y) >> 24, (z) & 0xff, ((z) >> 8) & 0xff, ((z) >> 16) & 0xff, (z) >> 24, (w) & 0xff, ((w) >> 8) & 0xff, ((w) >> 16) & 0xff, (w) >> 24}
|
||||
|
||||
|
||||
/**
|
||||
@@ -80,76 +90,87 @@ struct util_format_test_case
|
||||
static const struct util_format_test_case
|
||||
test_cases[] =
|
||||
{
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x07e0), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf800), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x03e0), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7c00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
/*
|
||||
* 32-bit rendertarget formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_A4R4G4B4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A4R4G4B4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A4R4G4B4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00f0), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A4R4G4B4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0f00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A4R4G4B4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A4R4G4B4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A2B10G10R10_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A2B10G10R10_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000003ff), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A2B10G10R10_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000ffc00), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A2B10G10R10_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x3ff00000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A2B10G10R10_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A2B10G10R10_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000ff00), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000ff00), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
#if 0
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
#endif
|
||||
{PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000003ff), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000ffc00), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x3ff00000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
/*
|
||||
* 16-bit rendertarget formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x03e0), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7c00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00f0), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0f00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x07e0), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf800), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
/*
|
||||
* Luminance/intensity/alpha formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_L8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_L8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {1.0, 1.0, 1.0, 1.0}},
|
||||
@@ -160,38 +181,400 @@ test_cases[] =
|
||||
{PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A8L8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8L8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00ff), {1.0, 1.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8L8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xff00), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8L8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00ff), {1.0, 1.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xff00), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000007f), { 1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000081), {-1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00007f00), { 0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00008100), { 0.0, -1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x007f0000), { 0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00810000), { 0.0, 0.0, -1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x7f000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8B8G8R8_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x81000000), { 0.0, 0.0, 0.0, -1.0}},
|
||||
/*
|
||||
* TODO: SRGB formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000007f), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000081), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00007f00), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00008100), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_X8UB8UG8SR8S_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
/*
|
||||
* Signed (bump map) formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_B6UG5SR5S_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B6UG5SR5S_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B6UG5SR5S_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0011), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B6UG5SR5S_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x01e0), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B6UG5SR5S_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0220), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B6UG5SR5S_NORM, PACKED_1x16(0xffff), PACKED_1x16(0xfc00), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000007f), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000081), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00007f00), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00008100), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x007f0000), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8X8_SNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00810000), { 0.0, 0.0, -1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000007f), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000081), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00007f00), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00008100), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0011), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x01e0), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0220), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0xfc00), { 0.0, 0.0, 1.0, 1.0}},
|
||||
|
||||
/*
|
||||
* TODO: Depth-stencil formats
|
||||
*/
|
||||
|
||||
/*
|
||||
* TODO: YUV formats
|
||||
*/
|
||||
|
||||
/*
|
||||
* TODO: Compressed formats
|
||||
*/
|
||||
|
||||
/*
|
||||
* Standard 8-bit integer formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_R8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0x00), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0xff), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0xff), {1.0, 1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0xff), {255.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0x00), {255.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0xff), { 0.0, 255.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0xff), {255.0, 255.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), {255.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), { 0.0, 255.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), { 0.0, 0.0, 255.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), {255.0, 255.0, 255.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), {255.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), { 0.0, 255.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), { 0.0, 0.0, 255.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), { 0.0, 0.0, 0.0, 255.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), {255.0, 255.0, 255.0, 255.0}},
|
||||
|
||||
{PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x7f), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x81), {-1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x81, 0x00), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x81), { 0.0, -1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x7f, 0x00, 0x00), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x81, 0x00, 0x00), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x7f, 0x00), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x81, 0x00), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x7f), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x81), { 0.0, 0.0, -1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), { 1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x81, 0x00, 0x00, 0x00), {-1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), { 0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x81, 0x00, 0x00), { 0.0, -1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x7f, 0x00), { 0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x81, 0x00), { 0.0, 0.0, -1.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x7f), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x81), { 0.0, 0.0, 0.0, -1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x7f), { 127.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x80), {-128.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), { 127.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x80, 0x00), {-128.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), { 0.0, 127.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x80), { 0.0, -128.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x7f, 0x00, 0x00), { 127.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x80, 0x00, 0x00), {-128.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x7f, 0x00), { 0.0, 127.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x80, 0x00), { 0.0, -128.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x7f), { 0.0, 0.0, 127.0, 1.0}},
|
||||
{PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x80), { 0.0, 0.0, -128.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), { 127.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x80, 0x00, 0x00, 0x00), {-128.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), { 0.0, 127.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x80, 0x00, 0x00), { 0.0, -128.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x7f, 0x00), { 0.0, 0.0, 127.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x80, 0x00), { 0.0, 0.0, -128.0, 0.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x7f), { 0.0, 0.0, 0.0, 127.0}},
|
||||
{PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x80), { 0.0, 0.0, 0.0, -128.0}},
|
||||
|
||||
/*
|
||||
* Standard 16-bit integer formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_R16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0x0000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xffff), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0xffff), {1.0, 1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0x0000, 0x0000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xffff, 0x0000), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xffff), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0xffff, 0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0x0000, 0x0000, 0x0000), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xffff, 0x0000, 0x0000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xffff, 0x0000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xffff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16_USCALED, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16_USCALED, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {65535.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0x0000), {65535.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xffff), { 0.0, 65535.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0xffff), {65535.0, 65535.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0x0000, 0x0000), {65535.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xffff, 0x0000), { 0.0, 65535.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xffff), { 0.0, 0.0, 65535.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0xffff, 0xffff), {65535.0, 65535.0, 65535.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0x0000, 0x0000, 0x0000), {65535.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xffff, 0x0000, 0x0000), { 0.0, 65535.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xffff, 0x0000), { 0.0, 0.0, 65535.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xffff), { 0.0, 0.0, 0.0, 65535.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), {65535.0, 65535.0, 65535.0, 65535.0}},
|
||||
|
||||
{PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7fff), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8001), { -1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x7fff, 0x0000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x8001, 0x0000), { -1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x7fff), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x8001), { 0.0, -1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x7fff, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x8001, 0x0000, 0x0000), { -1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x7fff, 0x0000), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x8001, 0x0000), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x8001), { 0.0, 0.0, -1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x7fff, 0x0000, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x8001, 0x0000, 0x0000, 0x0000), { -1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x7fff, 0x0000, 0x0000), { 0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x8001, 0x0000, 0x0000), { 0.0, -1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x7fff, 0x0000), { 0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x8001, 0x0000), { 0.0, 0.0, -1.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x8001), { 0.0, 0.0, 0.0, -1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x7fff), { 32767.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x8000), {-32768.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x7fff, 0x0000), { 32767.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x8000, 0x0000), {-32768.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x7fff), { 0.0, 32767.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x8000), { 0.0, -32768.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x7fff, 0x0000, 0x0000), { 32767.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x8000, 0x0000, 0x0000), {-32768.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x7fff, 0x0000), { 0.0, 32767.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x8000, 0x0000), { 0.0, -32768.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 32767.0, 1.0}},
|
||||
{PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x8000), { 0.0, 0.0, -32768.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x7fff, 0x0000, 0x0000, 0x0000), { 32767.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x8000, 0x0000, 0x0000, 0x0000), {-32768.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x7fff, 0x0000, 0x0000), { 0.0, 32767.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x8000, 0x0000, 0x0000), { 0.0, -32768.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x7fff, 0x0000), { 0.0, 0.0, 32767.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x8000, 0x0000), { 0.0, 0.0, -32768.0, 0.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 0.0, 32767.0}},
|
||||
{PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x8000), { 0.0, 0.0, 0.0, -32768.0}},
|
||||
|
||||
/*
|
||||
* Standard 32-bit integer formats
|
||||
*
|
||||
* NOTE: We can't accurately represent integers larger than +/-0x1000000
|
||||
* with single precision floats, so that's as far as we test.
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_R32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffffffff, 0x00000000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xffffffff), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffffffff, 0xffffffff), {1.0, 1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffffffff, 0x00000000, 0x00000000), {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xffffffff, 0x00000000), {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xffffffff), {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffffffff, 0x00000000, 0x00000000, 0x00000000), {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xffffffff, 0x00000000, 0x00000000), {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xffffffff, 0x00000000), {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xffffffff), {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x01000000), {16777216.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x00000000), {16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x01000000), { 0.0, 16777216.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x01000000), {16777216.0, 16777216.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x00000000, 0x00000000), {16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x01000000, 0x00000000), { 0.0, 16777216.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 16777216.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x01000000, 0x01000000), {16777216.0, 16777216.0, 16777216.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x00000000, 0x00000000, 0x00000000), {16777216.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x01000000, 0x00000000, 0x00000000), { 0.0, 16777216.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x01000000, 0x00000000), { 0.0, 0.0, 16777216.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 0.0, 16777216.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x01000000, 0x01000000, 0x01000000), {16777216.0, 16777216.0, 16777216.0, 16777216.0}},
|
||||
|
||||
{PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x7fffffff), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x80000001), { -1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x7fffffff, 0x00000000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x80000001, 0x00000000), { -1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x7fffffff), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x80000001), { 0.0, -1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x7fffffff, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x80000001, 0x00000000, 0x00000000), { -1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x7fffffff, 0x00000000), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x80000001, 0x00000000), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x7fffffff), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x80000001), { 0.0, 0.0, -1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x7fffffff, 0x00000000, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x80000001, 0x00000000, 0x00000000, 0x00000000), { -1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x7fffffff, 0x00000000, 0x00000000), { 0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x80000001, 0x00000000, 0x00000000), { 0.0, -1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x7fffffff, 0x00000000), { 0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x80000001, 0x00000000), { 0.0, 0.0, -1.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x7fffffff), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x80000001), { 0.0, 0.0, 0.0, -1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x01000000), { 16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {-16777216.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x00000000), { 16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xff000000, 0x00000000), {-16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x01000000), { 0.0, 16777216.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xff000000), { 0.0, -16777216.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x00000000, 0x00000000), { 16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xff000000, 0x00000000, 0x00000000), {-16777216.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x01000000, 0x00000000), { 0.0, 16777216.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xff000000, 0x00000000), { 0.0, -16777216.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 16777216.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xff000000), { 0.0, 0.0, -16777216.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x00000000, 0x00000000, 0x00000000), { 16777216.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xff000000, 0x00000000, 0x00000000, 0x00000000), {-16777216.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x01000000, 0x00000000, 0x00000000), { 0.0, 16777216.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xff000000, 0x00000000, 0x00000000), { 0.0, -16777216.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x01000000, 0x00000000), { 0.0, 0.0, 16777216.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xff000000, 0x00000000), { 0.0, 0.0, -16777216.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 0.0, 16777216.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xff000000), { 0.0, 0.0, 0.0, -16777216.0}},
|
||||
|
||||
/*
|
||||
* Standard 32-bit float formats
|
||||
*/
|
||||
|
||||
{PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x3f800000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0xbf800000), { -1.0, 0.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x3f800000, 0x00000000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xbf800000, 0x00000000), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x3f800000), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xbf800000), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x3f800000, 0x3f800000), { 1.0, 1.0, 0.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x3f800000, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xbf800000, 0x00000000, 0x00000000), {-1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x3f800000, 0x00000000), { 0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xbf800000, 0x00000000), { 0.0, -1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x3f800000), { 0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xbf800000), { 0.0, 0.0, -1.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x3f800000, 0x3f800000, 0x3f800000), { 1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x00000000, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xbf800000, 0x00000000, 0x00000000, 0x00000000), {-1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x3f800000, 0x00000000, 0x00000000), { 0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xbf800000, 0x00000000, 0x00000000), { 0.0, -1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x3f800000, 0x00000000), { 0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xbf800000, 0x00000000), { 0.0, 0.0, -1.0, 0.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x3f800000), { 0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xbf800000), { 0.0, 0.0, 0.0, -1.0}},
|
||||
{PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000), { 1.0, 1.0, 1.0, 1.0}},
|
||||
};
|
||||
|
||||
|
||||
@@ -235,8 +618,17 @@ test_format_pack(const struct util_format_test_case *test)
|
||||
success = FALSE;
|
||||
|
||||
if (!success) {
|
||||
printf("FAILED: (%02x %02x %02x %02x) obtained\n", packed[0], packed[1], packed[2], packed[3]);
|
||||
printf(" (%02x %02x %02x %02x) expected\n", test->packed[0], test->packed[1], test->packed[2], test->packed[3]);
|
||||
/* TODO: print more than 4 bytes */
|
||||
printf("FAILED: (%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x) obtained\n",
|
||||
packed[0], packed[1], packed[2], packed[3],
|
||||
packed[4], packed[5], packed[6], packed[7],
|
||||
packed[8], packed[9], packed[10], packed[11],
|
||||
packed[12], packed[13], packed[14], packed[15]);
|
||||
printf(" (%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x) expected\n",
|
||||
test->packed[0], test->packed[1], test->packed[2], test->packed[3],
|
||||
test->packed[4], test->packed[5], test->packed[6], test->packed[7],
|
||||
test->packed[8], test->packed[9], test->packed[10], test->packed[11],
|
||||
test->packed[12], test->packed[13], test->packed[14], test->packed[15]);
|
||||
}
|
||||
|
||||
return success;
|
||||
|
||||
@@ -48,7 +48,7 @@ int main(int argc, char** argv)
|
||||
unsigned stride = width * 4;
|
||||
unsigned size = stride * height;
|
||||
const char *filename = "mybin.bin";
|
||||
enum pipe_format format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
enum pipe_format format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
dump(width, height, stride, format, rbug_read(filename, size), size);
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@ vbuf_start_prim( struct vbuf_stage *vbuf, uint prim )
|
||||
src_offset = 0;
|
||||
break;
|
||||
case EMIT_4UB:
|
||||
output_format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
output_format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
emit_sz = 4 * sizeof(ubyte);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -112,7 +112,7 @@ void draw_pt_emit_prepare( struct pt_emit *emit,
|
||||
src_offset = 0;
|
||||
break;
|
||||
case EMIT_4UB:
|
||||
output_format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
output_format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
emit_sz = 4 * sizeof(ubyte);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -191,7 +191,7 @@ static boolean load_input( struct aos_compilation *cp,
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
emit_load_R32G32B32A32(cp, dataXMM, src);
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
emit_load_R8G8B8A8_UNORM(cp, dataXMM, src);
|
||||
emit_swizzle(cp, dataXMM, dataXMM, SHUF(Z,Y,X,W));
|
||||
break;
|
||||
|
||||
@@ -392,10 +392,10 @@ static fetch_func get_fetch_func( enum pipe_format format )
|
||||
case PIPE_FORMAT_R8G8B8A8_SSCALED:
|
||||
return &fetch_R8G8B8A8_SSCALED;
|
||||
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return &fetch_A8R8G8B8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
return &fetch_B8G8R8A8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_R32_FIXED:
|
||||
@@ -551,10 +551,10 @@ static emit_func get_emit_func( enum pipe_format format )
|
||||
case PIPE_FORMAT_R8G8B8A8_SSCALED:
|
||||
return &emit_R8G8B8A8_SSCALED;
|
||||
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return &emit_A8R8G8B8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
return &emit_B8G8R8A8_UNORM;
|
||||
|
||||
default:
|
||||
|
||||
@@ -336,7 +336,7 @@ static boolean translate_attr( struct translate_sse *p,
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
emit_load_R32G32B32A32(p, dataXMM, srcECX);
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
emit_load_R8G8B8A8_UNORM(p, dataXMM, srcECX);
|
||||
emit_swizzle(p, dataXMM, dataXMM, SHUF(Z,Y,X,W));
|
||||
break;
|
||||
@@ -360,7 +360,7 @@ static boolean translate_attr( struct translate_sse *p,
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
emit_store_R32G32B32A32(p, dstEAX, dataXMM);
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
emit_swizzle(p, dataXMM, dataXMM, SHUF(Z,Y,X,W));
|
||||
emit_store_R8G8B8A8_UNORM(p, dstEAX, dataXMM);
|
||||
break;
|
||||
|
||||
@@ -387,7 +387,7 @@ void debug_dump_image(const char *prefix,
|
||||
|
||||
/* XXX this is a hack */
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
r = 2;
|
||||
g = 1;
|
||||
b = 0;
|
||||
|
||||
@@ -47,8 +47,9 @@
|
||||
# - color space: rgb, yub, sz
|
||||
#
|
||||
# See also:
|
||||
# - http://msdn.microsoft.com/en-us/library/ee416489.aspx
|
||||
# - http://msdn.microsoft.com/en-us/library/ee415668.aspx
|
||||
# - 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)
|
||||
#
|
||||
# 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
|
||||
@@ -56,59 +57,57 @@
|
||||
# resolutions for each sized internal format."
|
||||
|
||||
# Typical rendertarget formats
|
||||
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
|
||||
PIPE_FORMAT_R8G8B8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, rgb
|
||||
# XXX: insert PIPE_FORMAT_R8G8B8A8_UNORM here later
|
||||
# XXX: insert PIPE_FORMAT_R8G8B8_UNORM here later
|
||||
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
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, rgb
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyx1, rgb
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, rgb
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzw1, rgb
|
||||
PIPE_FORMAT_A8B8G8R8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, rgb
|
||||
PIPE_FORMAT_X8B8G8R8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, rgb
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM , plain, 1, 1, un5 , un5 , un5 , un1 , zyxw, rgb
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM , plain, 1, 1, un4 , un4 , un4 , un4 , zyxw, rgb
|
||||
PIPE_FORMAT_B5G6R5_UNORM , plain, 1, 1, un5 , un6 , un5 , , zyx1, rgb
|
||||
PIPE_FORMAT_R10G10B10A2_UNORM , plain, 1, 1, un10, un10, un10, un2 , xyzw, rgb
|
||||
|
||||
# Luminance/Intensity/Alpha formats
|
||||
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_L8A8_UNORM , plain, 1, 1, un8 , un8 , , , xxxy, rgb
|
||||
PIPE_FORMAT_L16_UNORM , plain, 1, 1, un16, , , , xxx1, rgb
|
||||
|
||||
# SRGB formats
|
||||
PIPE_FORMAT_L8_SRGB , plain, 1, 1, un8 , , , , xxx1, srgb
|
||||
PIPE_FORMAT_A8L8_SRGB , plain, 1, 1, un8 , un8 , , , xxxy, srgb
|
||||
PIPE_FORMAT_R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , , zyx1, srgb
|
||||
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
|
||||
PIPE_FORMAT_L8A8_SRGB , plain, 1, 1, un8 , un8 , , , xxxy, srgb
|
||||
PIPE_FORMAT_R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , , xyz1, srgb
|
||||
PIPE_FORMAT_A8B8G8R8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, srgb
|
||||
PIPE_FORMAT_X8B8G8R8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , wzy1, srgb
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, srgb
|
||||
PIPE_FORMAT_B8G8R8X8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , zyx1, srgb
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, srgb
|
||||
PIPE_FORMAT_X8R8G8B8_SRGB , plain, 1, 1, un8 , un8 , un8 , un8 , yzw1, srgb
|
||||
|
||||
# Signed formats (typically used for bump map textures)
|
||||
PIPE_FORMAT_A8B8G8R8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , xyzw, rgb
|
||||
PIPE_FORMAT_X8B8G8R8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , xyz1, rgb
|
||||
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
|
||||
PIPE_FORMAT_R8G8B8X8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , xyz1, rgb
|
||||
PIPE_FORMAT_R8SG8SB8UX8U_NORM , plain, 1, 1, sn8 , sn8 , un8 , x8 , xyz1, rgb
|
||||
PIPE_FORMAT_R5SG5SB6U_NORM , plain, 1, 1, sn5 , sn5 , un6 , , xyz1, rgb
|
||||
|
||||
# Depth-stencil formats
|
||||
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
|
||||
PIPE_FORMAT_Z24S8_UNORM , plain, 1, 1, un24, un8 , , , xy__, zs
|
||||
PIPE_FORMAT_S8Z24_UNORM , plain, 1, 1, un8 , un24, , , yx__, zs
|
||||
PIPE_FORMAT_Z24X8_UNORM , plain, 1, 1, un24, un8 , , , x___, zs
|
||||
PIPE_FORMAT_X8Z24_UNORM , plain, 1, 1, un8 , un24, , , y___, zs
|
||||
|
||||
# YUV formats
|
||||
# http://www.fourcc.org/yuv.php#UYVY
|
||||
PIPE_FORMAT_YCBCR , subsampled, 2, 1, x32 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_UYVY , subsampled, 2, 1, x32 , , , , xyz1, yuv
|
||||
# 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
|
||||
PIPE_FORMAT_YCBCR_REV , subsampled, 2, 1, x32 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_YUYV , subsampled, 2, 1, x32 , , , , xyz1, yuv
|
||||
|
||||
# Compressed formats
|
||||
PIPE_FORMAT_DXT1_RGB , compressed, 4, 4, x64 , , , , xyz1, rgb
|
||||
@@ -120,8 +119,9 @@ PIPE_FORMAT_DXT1_SRGBA , compressed, 4, 4, x64 , , , , xy
|
||||
PIPE_FORMAT_DXT3_SRGBA , compressed, 4, 4, x128, , , , xyzw, srgb
|
||||
PIPE_FORMAT_DXT5_SRGBA , compressed, 4, 4, x128, , , , xyzw, srgb
|
||||
|
||||
# Old vector formats
|
||||
# XXX: Swizzle notation is reversed for these!
|
||||
# Straightforward D3D10-like formats (also used for
|
||||
# vertex buffer element description)
|
||||
#
|
||||
# See also:
|
||||
# - src/gallium/auxiliary/translate/translate_generic.c
|
||||
# - src/mesa/state_tracker/st_draw.c
|
||||
@@ -171,8 +171,8 @@ PIPE_FORMAT_R16G16B16_SSCALED , plain, 1, 1, s16 , s16 , s16 , , xyz1, r
|
||||
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
|
||||
# XXX: insert PIPE_FORMAT_R8G8B8_UNORM here later
|
||||
# XXX: insert PIPE_FORMAT_R8G8B8A8_UNORM here later
|
||||
PIPE_FORMAT_R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , , xyz1, rgb
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , xyzw, rgb
|
||||
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
|
||||
@@ -185,15 +185,3 @@ PIPE_FORMAT_R8_SSCALED , plain, 1, 1, s8 , , , , x001, r
|
||||
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
|
||||
|
||||
# Ambiguous formats
|
||||
# FIXME: They are used with different meanings in different places!!!
|
||||
PIPE_FORMAT_R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , , zyx1, rgb
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, rgb
|
||||
|
||||
# Unused formats
|
||||
# XXX: Couldn't find any state tracker using them!!
|
||||
PIPE_FORMAT_B6G5R5_SNORM , plain, 1, 1, sn5 , sn5 , sn6 , , xyz1, rgb
|
||||
PIPE_FORMAT_R8G8B8X8_SNORM , plain, 1, 1, sn8 , sn8 , sn8 , sn8 , wzy1, rgb
|
||||
PIPE_FORMAT_R8G8B8X8_USCALED , plain, 1, 1, u8 , u8 , u8 , u8 , wzy1, rgb
|
||||
PIPE_FORMAT_R8G8B8X8_SSCALED , plain, 1, 1, s8 , s8 , s8 , s8 , wzy1, rgb
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 8 and column 3.
|
@@ -37,6 +37,7 @@
|
||||
'''
|
||||
|
||||
|
||||
import math
|
||||
import sys
|
||||
|
||||
from u_format_pack import *
|
||||
@@ -94,6 +95,20 @@ def native_type(format):
|
||||
assert False
|
||||
|
||||
|
||||
def generate_srgb_tables():
|
||||
print 'static ubyte srgb_to_linear[256] = {'
|
||||
for i in range(256):
|
||||
print ' %s,' % (int(math.pow((i / 255.0 + 0.055) / 1.055, 2.4) * 255))
|
||||
print '};'
|
||||
print
|
||||
print 'static ubyte linear_to_srgb[256] = {'
|
||||
print ' 0,'
|
||||
for i in range(1, 256):
|
||||
print ' %s,' % (int((1.055 * math.pow(i / 255.0, 0.41666) - 0.055) * 255))
|
||||
print '};'
|
||||
print
|
||||
|
||||
|
||||
def generate_format_read(format, dst_channel, dst_native_type, dst_suffix):
|
||||
'''Generate the function to read pixels from a particular format'''
|
||||
|
||||
@@ -305,6 +320,8 @@ def main():
|
||||
print '#include "u_format_pack.h"'
|
||||
print
|
||||
|
||||
generate_srgb_tables()
|
||||
|
||||
type = Channel(FLOAT, False, 32)
|
||||
native_type = 'float'
|
||||
suffix = '4f'
|
||||
|
||||
@@ -923,29 +923,29 @@ format_to_type_comps(enum pipe_format pformat,
|
||||
{
|
||||
/* XXX I think this could be implemented in terms of the pf_*() functions */
|
||||
switch (pformat) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_R8G8B8A8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8X8_SRGB:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_SRGB:
|
||||
case PIPE_FORMAT_X8B8G8R8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8_SRGB:
|
||||
*datatype = DTYPE_UBYTE;
|
||||
*comps = 4;
|
||||
return;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
*datatype = DTYPE_USHORT_1_5_5_5_REV;
|
||||
*comps = 4;
|
||||
return;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
*datatype = DTYPE_USHORT_4_4_4_4;
|
||||
*comps = 4;
|
||||
return;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
*datatype = DTYPE_USHORT_5_6_5;
|
||||
*comps = 3;
|
||||
return;
|
||||
@@ -956,8 +956,8 @@ format_to_type_comps(enum pipe_format pformat,
|
||||
*datatype = DTYPE_UBYTE;
|
||||
*comps = 1;
|
||||
return;
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_A8L8_SRGB:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_SRGB:
|
||||
*datatype = DTYPE_UBYTE;
|
||||
*comps = 2;
|
||||
return;
|
||||
|
||||
@@ -57,47 +57,47 @@ util_pack_color_ub(ubyte r, ubyte g, ubyte b, ubyte a,
|
||||
enum pipe_format format, union util_color *uc)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
{
|
||||
uc->ui = (r << 24) | (g << 16) | (b << 8) | a;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_UNORM:
|
||||
{
|
||||
uc->ui = (r << 24) | (g << 16) | (b << 8) | 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
{
|
||||
uc->ui = (a << 24) | (r << 16) | (g << 8) | b;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
{
|
||||
uc->ui = (0xff << 24) | (r << 16) | (g << 8) | b;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
{
|
||||
uc->ui = (b << 24) | (g << 16) | (r << 8) | a;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
{
|
||||
uc->ui = (b << 24) | (g << 16) | (r << 8) | 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
{
|
||||
uc->us = ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | (b >> 3);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
{
|
||||
uc->us = ((a & 0x80) << 8) | ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | (b >> 3);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
{
|
||||
uc->us = ((a & 0xf0) << 8) | ((r & 0xf0) << 4) | ((g & 0xf0) << 0) | (b >> 4);
|
||||
}
|
||||
@@ -153,7 +153,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
ubyte *r, ubyte *g, ubyte *b, ubyte *a)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
{
|
||||
uint p = uc->ui;
|
||||
*r = (ubyte) ((p >> 24) & 0xff);
|
||||
@@ -162,7 +162,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) ((p >> 0) & 0xff);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_UNORM:
|
||||
{
|
||||
uint p = uc->ui;
|
||||
*r = (ubyte) ((p >> 24) & 0xff);
|
||||
@@ -171,7 +171,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
{
|
||||
uint p = uc->ui;
|
||||
*r = (ubyte) ((p >> 16) & 0xff);
|
||||
@@ -180,7 +180,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) ((p >> 24) & 0xff);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
{
|
||||
uint p = uc->ui;
|
||||
*r = (ubyte) ((p >> 16) & 0xff);
|
||||
@@ -189,7 +189,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
{
|
||||
uint p = uc->ui;
|
||||
*r = (ubyte) ((p >> 8) & 0xff);
|
||||
@@ -198,7 +198,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) ((p >> 0) & 0xff);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
{
|
||||
uint p = uc->ui;
|
||||
*r = (ubyte) ((p >> 8) & 0xff);
|
||||
@@ -207,7 +207,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
{
|
||||
ushort p = uc->us;
|
||||
*r = (ubyte) (((p >> 8) & 0xf8) | ((p >> 13) & 0x7));
|
||||
@@ -216,7 +216,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
{
|
||||
ushort p = uc->us;
|
||||
*r = (ubyte) (((p >> 7) & 0xf8) | ((p >> 12) & 0x7));
|
||||
@@ -225,7 +225,7 @@ util_unpack_color_ub(enum pipe_format format, union util_color *uc,
|
||||
*a = (ubyte) (0xff * (p >> 15));
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
{
|
||||
ushort p = uc->us;
|
||||
*r = (ubyte) (((p >> 4) & 0xf0) | ((p >> 8) & 0xf));
|
||||
@@ -326,47 +326,47 @@ util_pack_color(const float rgba[4], enum pipe_format format, union util_color *
|
||||
}
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
{
|
||||
uc->ui = (r << 24) | (g << 16) | (b << 8) | a;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_UNORM:
|
||||
{
|
||||
uc->ui = (r << 24) | (g << 16) | (b << 8) | 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
{
|
||||
uc->ui = (a << 24) | (r << 16) | (g << 8) | b;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
{
|
||||
uc->ui = (0xff << 24) | (r << 16) | (g << 8) | b;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
{
|
||||
uc->ui = (b << 24) | (g << 16) | (r << 8) | a;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
{
|
||||
uc->ui = (b << 24) | (g << 16) | (r << 8) | 0xff;
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
{
|
||||
uc->us = ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | (b >> 3);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
{
|
||||
uc->us = ((a & 0x80) << 8) | ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | (b >> 3);
|
||||
}
|
||||
return;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
{
|
||||
uc->ub = ((a & 0xf0) << 8) | ((r & 0xf0) << 4) | ((g & 0xf0) << 0) | (b >> 4);
|
||||
}
|
||||
@@ -427,13 +427,13 @@ util_pack_z(enum pipe_format format, double z)
|
||||
return (uint) (z * 0xffffffff);
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
return (uint)z;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
if (z == 1.0)
|
||||
return 0xffffff;
|
||||
return (uint) (z * 0xffffff);
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
if (z == 1.0)
|
||||
return 0xffffff00;
|
||||
return ((uint) (z * 0xffffff)) << 8;
|
||||
@@ -458,10 +458,10 @@ util_pack_z_stencil(enum pipe_format format, double z, uint s)
|
||||
unsigned packed = util_pack_z(format, z);
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
packed |= s << 24;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
packed |= s;
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
|
||||
@@ -54,9 +54,9 @@ util_create_rgba_surface(struct pipe_screen *screen,
|
||||
struct pipe_surface **surfaceOut)
|
||||
{
|
||||
static const enum pipe_format rgbaFormats[] = {
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8B8G8R8_UNORM,
|
||||
PIPE_FORMAT_NONE
|
||||
};
|
||||
const uint target = PIPE_TEXTURE_2D;
|
||||
|
||||
@@ -108,7 +108,7 @@ pipe_put_tile_raw(struct pipe_transfer *pt,
|
||||
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_A8R8G8B8_UNORM ***/
|
||||
/*** PIPE_FORMAT_B8G8R8A8_UNORM ***/
|
||||
|
||||
static void
|
||||
a8r8g8b8_get_tile_rgba(const unsigned *src,
|
||||
@@ -155,7 +155,7 @@ a8r8g8b8_put_tile_rgba(unsigned *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_X8R8G8B8_UNORM ***/
|
||||
/*** PIPE_FORMAT_B8G8R8X8_UNORM ***/
|
||||
|
||||
static void
|
||||
x8r8g8b8_get_tile_rgba(const unsigned *src,
|
||||
@@ -201,7 +201,7 @@ x8r8g8b8_put_tile_rgba(unsigned *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_B8G8R8A8_UNORM ***/
|
||||
/*** PIPE_FORMAT_A8R8G8B8_UNORM ***/
|
||||
|
||||
static void
|
||||
b8g8r8a8_get_tile_rgba(const unsigned *src,
|
||||
@@ -248,7 +248,7 @@ b8g8r8a8_put_tile_rgba(unsigned *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_R8G8B8A8_UNORM ***/
|
||||
/*** PIPE_FORMAT_A8B8G8R8_UNORM ***/
|
||||
|
||||
static void
|
||||
r8g8b8a8_get_tile_rgba(const unsigned *src,
|
||||
@@ -295,7 +295,7 @@ r8g8b8a8_put_tile_rgba(unsigned *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_A1R5G5B5_UNORM ***/
|
||||
/*** PIPE_FORMAT_B5G5R5A1_UNORM ***/
|
||||
|
||||
static void
|
||||
a1r5g5b5_get_tile_rgba(const ushort *src,
|
||||
@@ -346,7 +346,7 @@ a1r5g5b5_put_tile_rgba(ushort *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_A4R4G4B4_UNORM ***/
|
||||
/*** PIPE_FORMAT_B4G4R4A4_UNORM ***/
|
||||
|
||||
static void
|
||||
a4r4g4b4_get_tile_rgba(const ushort *src,
|
||||
@@ -397,7 +397,7 @@ a4r4g4b4_put_tile_rgba(ushort *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_R5G6B5_UNORM ***/
|
||||
/*** PIPE_FORMAT_B5G6R5_UNORM ***/
|
||||
|
||||
static void
|
||||
r5g6b5_get_tile_rgba(const ushort *src,
|
||||
@@ -691,7 +691,7 @@ r16g16b16a16_put_tile_rgba(short *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_R8G8B8A8_SRGB ***/
|
||||
/*** PIPE_FORMAT_A8B8G8R8_SRGB ***/
|
||||
|
||||
/**
|
||||
* Convert an 8-bit sRGB value from non-linear space to a
|
||||
@@ -784,7 +784,7 @@ a8r8g8b8_srgb_put_tile_rgba(unsigned *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_A8L8_SRGB ***/
|
||||
/*** PIPE_FORMAT_L8A8_SRGB ***/
|
||||
|
||||
static void
|
||||
a8l8_srgb_get_tile_rgba(const ushort *src,
|
||||
@@ -913,7 +913,7 @@ i8_put_tile_rgba(ubyte *dst,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_A8L8_UNORM ***/
|
||||
/*** PIPE_FORMAT_L8A8_UNORM ***/
|
||||
|
||||
static void
|
||||
a8l8_get_tile_rgba(const ushort *src,
|
||||
@@ -987,7 +987,7 @@ z32_get_tile_rgba(const unsigned *src,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_S8Z24_UNORM ***/
|
||||
/*** PIPE_FORMAT_Z24S8_UNORM ***/
|
||||
|
||||
/**
|
||||
* Return Z component as four float in [0,1]. Stencil part ignored.
|
||||
@@ -1014,7 +1014,7 @@ s8z24_get_tile_rgba(const unsigned *src,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_Z24S8_UNORM ***/
|
||||
/*** PIPE_FORMAT_S8Z24_UNORM ***/
|
||||
|
||||
/**
|
||||
* Return Z component as four float in [0,1]. Stencil part ignored.
|
||||
@@ -1067,7 +1067,7 @@ z32f_get_tile_rgba(const float *src,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_YCBCR / PIPE_FORMAT_YCBCR_REV ***/
|
||||
/*** PIPE_FORMAT_UYVY / PIPE_FORMAT_YUYV ***/
|
||||
|
||||
/**
|
||||
* Convert YCbCr (or YCrCb) to RGBA.
|
||||
@@ -1162,25 +1162,25 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||
float *dst, unsigned dst_stride)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
a8r8g8b8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
x8r8g8b8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
b8g8r8a8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
r8g8b8a8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
a1r5g5b5_get_tile_rgba((ushort *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
a4r4g4b4_get_tile_rgba((ushort *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
r5g6b5_get_tile_rgba((ushort *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R8G8B8_UNORM:
|
||||
@@ -1195,7 +1195,7 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
i8_get_tile_rgba((ubyte *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
a8l8_get_tile_rgba((ushort *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
@@ -1204,10 +1204,10 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
r16g16b16a16_get_tile_rgba((short *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
a8r8g8b8_srgb_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A8L8_SRGB:
|
||||
case PIPE_FORMAT_L8A8_SRGB:
|
||||
a8l8_srgb_get_tile_rgba((ushort *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_L8_SRGB:
|
||||
@@ -1219,21 +1219,21 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
z32_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
s8z24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
s8z24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
z24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
z32f_get_tile_rgba((float *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
ycbcr_get_tile_rgba((ushort *) src, w, h, dst, dst_stride, FALSE);
|
||||
break;
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
ycbcr_get_tile_rgba((ushort *) src, w, h, dst, dst_stride, TRUE);
|
||||
break;
|
||||
default:
|
||||
@@ -1262,7 +1262,7 @@ pipe_get_tile_rgba(struct pipe_transfer *pt,
|
||||
if (!packed)
|
||||
return;
|
||||
|
||||
if(format == PIPE_FORMAT_YCBCR || format == PIPE_FORMAT_YCBCR_REV)
|
||||
if(format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV)
|
||||
assert((x & 1) == 0);
|
||||
|
||||
pipe_get_tile_raw(pt, x, y, w, h, packed, 0);
|
||||
@@ -1291,28 +1291,28 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
|
||||
return;
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
a8r8g8b8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
x8r8g8b8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
b8g8r8a8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
r8g8b8a8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
a1r5g5b5_put_tile_rgba((ushort *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
r5g6b5_put_tile_rgba((ushort *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R8G8B8_UNORM:
|
||||
r8g8b8_put_tile_rgba((ubyte *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
a4r4g4b4_put_tile_rgba((ushort *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
@@ -1324,7 +1324,7 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
i8_put_tile_rgba((ubyte *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
a8l8_put_tile_rgba((ushort *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
@@ -1333,10 +1333,10 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
r16g16b16a16_put_tile_rgba((short *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
a8r8g8b8_srgb_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_A8L8_SRGB:
|
||||
case PIPE_FORMAT_L8A8_SRGB:
|
||||
a8l8_srgb_put_tile_rgba((ushort *) packed, w, h, p, src_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_L8_SRGB:
|
||||
@@ -1348,12 +1348,12 @@ pipe_put_tile_rgba(struct pipe_transfer *pt,
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
/*z32_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/*s8z24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
/*s8z24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/*z24s8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
default:
|
||||
@@ -1405,8 +1405,8 @@ pipe_get_tile_z(struct pipe_transfer *pt,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
= (const uint *)(map + y * pt->stride + x*4);
|
||||
@@ -1420,8 +1420,8 @@ pipe_get_tile_z(struct pipe_transfer *pt,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
= (const uint *)(map + y * pt->stride + x*4);
|
||||
@@ -1489,7 +1489,7 @@ pipe_put_tile_z(struct pipe_transfer *pt,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);
|
||||
@@ -1503,7 +1503,7 @@ pipe_put_tile_z(struct pipe_transfer *pt,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
@@ -1516,7 +1516,7 @@ pipe_put_tile_z(struct pipe_transfer *pt,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);
|
||||
@@ -1530,7 +1530,7 @@ pipe_put_tile_z(struct pipe_transfer *pt,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
|
||||
@@ -304,7 +304,7 @@ unpack_colors(struct spe_function *f,
|
||||
spe_comment(f, 0, "Unpack framebuffer colors, convert to floats");
|
||||
|
||||
switch (color_format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
/* fbB = fbRGBA & mask */
|
||||
spe_and(f, fbB_reg, fbRGBA_reg, mask0_reg);
|
||||
|
||||
@@ -327,7 +327,7 @@ unpack_colors(struct spe_function *f,
|
||||
spe_roti(f, fbA_reg, fbA_reg, -24);
|
||||
break;
|
||||
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
/* fbA = fbRGBA & mask */
|
||||
spe_and(f, fbA_reg, fbRGBA_reg, mask0_reg);
|
||||
|
||||
@@ -1043,12 +1043,12 @@ gen_pack_colors(struct spe_function *f,
|
||||
spe_rotmi(f, a_reg, a_reg, -24);
|
||||
|
||||
/* Shift the color bytes according to the surface format */
|
||||
if (color_format == PIPE_FORMAT_A8R8G8B8_UNORM) {
|
||||
if (color_format == PIPE_FORMAT_B8G8R8A8_UNORM) {
|
||||
spe_roti(f, g_reg, g_reg, 8); /* green <<= 8 */
|
||||
spe_roti(f, r_reg, r_reg, 16); /* red <<= 16 */
|
||||
spe_roti(f, a_reg, a_reg, 24); /* alpha <<= 24 */
|
||||
}
|
||||
else if (color_format == PIPE_FORMAT_B8G8R8A8_UNORM) {
|
||||
else if (color_format == PIPE_FORMAT_A8R8G8B8_UNORM) {
|
||||
spe_roti(f, r_reg, r_reg, 8); /* red <<= 8 */
|
||||
spe_roti(f, g_reg, g_reg, 16); /* green <<= 16 */
|
||||
spe_roti(f, b_reg, b_reg, 24); /* blue <<= 24 */
|
||||
@@ -1096,14 +1096,14 @@ gen_colormask(struct spe_function *f,
|
||||
* end up, so we can mask them correctly.
|
||||
*/
|
||||
switch(color_format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
/* ARGB */
|
||||
a_mask = 0xff000000;
|
||||
r_mask = 0x00ff0000;
|
||||
g_mask = 0x0000ff00;
|
||||
b_mask = 0x000000ff;
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
/* BGRA */
|
||||
b_mask = 0xff000000;
|
||||
g_mask = 0x00ff0000;
|
||||
@@ -1859,8 +1859,8 @@ gen_depth_stencil(struct cell_context *cell,
|
||||
spe_comment(f, 0, "Fetch Z/stencil quad from tile");
|
||||
|
||||
switch(zs_format) {
|
||||
case PIPE_FORMAT_S8Z24_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
/* prepare mask to extract Z vals from ZS vals */
|
||||
spe_load_uint(f, zmask_reg, 0x00ffffff);
|
||||
|
||||
@@ -1880,8 +1880,8 @@ gen_depth_stencil(struct cell_context *cell,
|
||||
spe_rotmi(f, fbS_reg, fbZS_reg, -24);
|
||||
break;
|
||||
|
||||
case PIPE_FORMAT_Z24S8_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/* convert fragment Z from [0,1] to 32-bit ints */
|
||||
spe_cfltu(f, fragZ_reg, fragZ_reg, 32);
|
||||
|
||||
@@ -1969,13 +1969,13 @@ gen_depth_stencil(struct cell_context *cell,
|
||||
* fbS_reg has four 8-bit Z values in bits [7..0].
|
||||
*/
|
||||
spe_comment(f, 0, "Store quad's depth/stencil values in tile");
|
||||
if (zs_format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
zs_format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||
if (zs_format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
zs_format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||
spe_shli(f, fbS_reg, fbS_reg, 24); /* fbS = fbS << 24 */
|
||||
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
||||
}
|
||||
else if (zs_format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
zs_format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||
else if (zs_format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
zs_format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||
spe_shli(f, fbZ_reg, fbZ_reg, 8); /* fbZ = fbZ << 8 */
|
||||
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
||||
}
|
||||
@@ -2015,7 +2015,7 @@ gen_depth_stencil(struct cell_context *cell,
|
||||
* code before the fragment shader to cull fragments/quads that are
|
||||
* totally occluded/discarded.
|
||||
*
|
||||
* XXX we only support PIPE_FORMAT_Z24S8_UNORM z/stencil buffer right now.
|
||||
* XXX we only support PIPE_FORMAT_S8Z24_UNORM z/stencil buffer right now.
|
||||
*
|
||||
* See the spu_default_fragment_ops() function to see how the per-fragment
|
||||
* operations would be done with ordinary C code.
|
||||
|
||||
@@ -136,7 +136,7 @@ cell_is_format_supported( struct pipe_screen *screen,
|
||||
{
|
||||
/* cell supports most formats, XXX for now anyway */
|
||||
if (format == PIPE_FORMAT_DXT5_RGBA ||
|
||||
format == PIPE_FORMAT_R8G8B8A8_SRGB)
|
||||
format == PIPE_FORMAT_A8B8G8R8_SRGB)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
|
||||
@@ -1251,7 +1251,7 @@ cell_generate_logic_op(struct spe_function *f,
|
||||
/* Convert fragment colors to framebuffer format in AoS layout.
|
||||
*/
|
||||
switch (surf->format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
data[0] = 0x00010203;
|
||||
data[1] = 0x10111213;
|
||||
data[2] = 0x04050607;
|
||||
@@ -1261,7 +1261,7 @@ cell_generate_logic_op(struct spe_function *f,
|
||||
data[6] = 0x80808080;
|
||||
data[7] = 0x80808080;
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
data[0] = 0x03020100;
|
||||
data[1] = 0x13121110;
|
||||
data[2] = 0x07060504;
|
||||
|
||||
@@ -337,10 +337,10 @@ cmd_state_framebuffer(const struct cell_command_framebuffer *cmd)
|
||||
spu.fb.zsize = 4;
|
||||
spu.fb.zscale = (float) 0xffffffffu;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
spu.fb.zsize = 4;
|
||||
spu.fb.zscale = (float) 0x00ffffffu;
|
||||
break;
|
||||
|
||||
@@ -138,14 +138,14 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||
|
||||
if (spu.depth_stencil_alpha.stencil[0].enabled) {
|
||||
/* do stencil test */
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_S8Z24_UNORM);
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24S8_UNORM);
|
||||
|
||||
}
|
||||
else if (spu.depth_stencil_alpha.depth.enabled) {
|
||||
/* do depth test */
|
||||
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
spu.fb.depth_format == PIPE_FORMAT_X8Z24_UNORM);
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
spu.fb.depth_format == PIPE_FORMAT_Z24X8_UNORM);
|
||||
|
||||
vector unsigned int ifragZ;
|
||||
vector unsigned int zmask;
|
||||
@@ -240,13 +240,13 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||
{
|
||||
vector float temp[4]; /* float colors in AOS form */
|
||||
switch (spu.fb.color_format) {
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
temp[0] = spu_unpack_B8G8R8A8(fbc0);
|
||||
temp[1] = spu_unpack_B8G8R8A8(fbc1);
|
||||
temp[2] = spu_unpack_B8G8R8A8(fbc2);
|
||||
temp[3] = spu_unpack_B8G8R8A8(fbc3);
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
temp[0] = spu_unpack_A8R8G8B8(fbc0);
|
||||
temp[1] = spu_unpack_A8R8G8B8(fbc1);
|
||||
temp[2] = spu_unpack_A8R8G8B8(fbc2);
|
||||
@@ -506,13 +506,13 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||
* Pack fragment float colors into 32-bit RGBA words.
|
||||
*/
|
||||
switch (spu.fb.color_format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
fragc0 = spu_pack_A8R8G8B8(frag_aos[0]);
|
||||
fragc1 = spu_pack_A8R8G8B8(frag_aos[1]);
|
||||
fragc2 = spu_pack_A8R8G8B8(frag_aos[2]);
|
||||
fragc3 = spu_pack_A8R8G8B8(frag_aos[3]);
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
fragc0 = spu_pack_B8G8R8A8(frag_aos[0]);
|
||||
fragc1 = spu_pack_B8G8R8A8(frag_aos[1]);
|
||||
fragc2 = spu_pack_B8G8R8A8(frag_aos[2]);
|
||||
@@ -532,7 +532,7 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||
|
||||
/* Form bitmask depending on color buffer format and colormask bits */
|
||||
switch (spu.fb.color_format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
if (spu.blend.rt[0].colormask & PIPE_MASK_R)
|
||||
cmask |= 0x00ff0000; /* red */
|
||||
if (spu.blend.rt[0].colormask & PIPE_MASK_G)
|
||||
@@ -542,7 +542,7 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||
if (spu.blend.rt[0].colormask & PIPE_MASK_A)
|
||||
cmask |= 0xff000000; /* alpha */
|
||||
break;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
if (spu.blend.rt[0].colormask & PIPE_MASK_R)
|
||||
cmask |= 0x0000ff00; /* red */
|
||||
if (spu.blend.rt[0].colormask & PIPE_MASK_G)
|
||||
|
||||
@@ -165,22 +165,22 @@ i915_is_format_supported(struct pipe_screen *screen,
|
||||
unsigned geom_flags)
|
||||
{
|
||||
static const enum pipe_format tex_supported[] = {
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_A8B8G8R8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_L8_UNORM,
|
||||
PIPE_FORMAT_A8_UNORM,
|
||||
PIPE_FORMAT_I8_UNORM,
|
||||
PIPE_FORMAT_A8L8_UNORM,
|
||||
PIPE_FORMAT_YCBCR,
|
||||
PIPE_FORMAT_YCBCR_REV,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_L8A8_UNORM,
|
||||
PIPE_FORMAT_UYVY,
|
||||
PIPE_FORMAT_YUYV,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
static const enum pipe_format surface_supported[] = {
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
const enum pipe_format *list;
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
static unsigned translate_format( enum pipe_format format )
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return COLOR_BUF_ARGB8888;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return COLOR_BUF_RGB565;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -50,7 +50,7 @@ static unsigned translate_format( enum pipe_format format )
|
||||
static unsigned translate_depth_format( enum pipe_format zformat )
|
||||
{
|
||||
switch (zformat) {
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
return DEPTH_FRMT_24_FIXED_8_OTHER;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return DEPTH_FRMT_16_FIXED;
|
||||
@@ -260,7 +260,7 @@ i915_emit_hardware_state(struct i915_context *i915 )
|
||||
if (cbuf_surface)
|
||||
cformat = cbuf_surface->format;
|
||||
else
|
||||
cformat = PIPE_FORMAT_A8R8G8B8_UNORM; /* arbitrary */
|
||||
cformat = PIPE_FORMAT_B8G8R8A8_UNORM; /* arbitrary */
|
||||
cformat = translate_format(cformat);
|
||||
|
||||
if (depth_surface)
|
||||
|
||||
@@ -87,8 +87,8 @@ static void update_sampler(struct i915_context *i915,
|
||||
state[1] = sampler->state[1];
|
||||
state[2] = sampler->state[2];
|
||||
|
||||
if (pt->format == PIPE_FORMAT_YCBCR ||
|
||||
pt->format == PIPE_FORMAT_YCBCR_REV)
|
||||
if (pt->format == PIPE_FORMAT_UYVY ||
|
||||
pt->format == PIPE_FORMAT_YUYV)
|
||||
state[0] |= SS2_COLORSPACE_CONVERSION;
|
||||
|
||||
/* 3D textures don't seem to respect the border color.
|
||||
@@ -180,19 +180,19 @@ translate_texture_format(enum pipe_format pipeFormat)
|
||||
return MAPSURF_8BIT | MT_8BIT_I8;
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
return MAPSURF_8BIT | MT_8BIT_A8;
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
return MAPSURF_16BIT | MT_16BIT_AY88;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return MAPSURF_16BIT | MT_16BIT_RGB565;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return MAPSURF_16BIT | MT_16BIT_ARGB1555;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
return MAPSURF_16BIT | MT_16BIT_ARGB4444;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return MAPSURF_32BIT | MT_32BIT_ARGB8888;
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
return (MAPSURF_422 | MT_422_YCRCB_NORMAL);
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
return (MAPSURF_422 | MT_422_YCRCB_SWAPY);
|
||||
#if 0
|
||||
case PIPE_FORMAT_RGB_FXT1:
|
||||
@@ -210,7 +210,7 @@ translate_texture_format(enum pipe_format pipeFormat)
|
||||
case PIPE_FORMAT_RGBA_DXT5:
|
||||
return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT4_5);
|
||||
#endif
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
return (MAPSURF_32BIT | MT_32BIT_xI824);
|
||||
default:
|
||||
debug_printf("i915: translate_texture_format() bad image format %x\n",
|
||||
|
||||
@@ -265,8 +265,8 @@ static int emit_depthbuffer(struct brw_context *brw)
|
||||
format = BRW_DEPTHFORMAT_D16_UNORM;
|
||||
cpp = 2;
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
format = BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
|
||||
cpp = 4;
|
||||
break;
|
||||
|
||||
@@ -139,8 +139,8 @@ static void zstencil_clear(struct brw_context *brw,
|
||||
unsigned value;
|
||||
|
||||
switch (bsurface->base.format) {
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
value = ((unsigned)(depth * MASK24) & MASK24);
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
@@ -152,8 +152,8 @@ static void zstencil_clear(struct brw_context *brw,
|
||||
}
|
||||
|
||||
switch (bsurface->base.format) {
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
value = value | (stencil << 24);
|
||||
break;
|
||||
|
||||
|
||||
@@ -229,15 +229,15 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||
PIPE_FORMAT_L16_UNORM,
|
||||
/*PIPE_FORMAT_I16_UNORM,*/
|
||||
/*PIPE_FORMAT_A16_UNORM,*/
|
||||
PIPE_FORMAT_A8L8_UNORM,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM,
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_L8A8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM,
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
/* video */
|
||||
PIPE_FORMAT_YCBCR,
|
||||
PIPE_FORMAT_YCBCR_REV,
|
||||
PIPE_FORMAT_UYVY,
|
||||
PIPE_FORMAT_YUYV,
|
||||
/* compressed */
|
||||
/*PIPE_FORMAT_FXT1_RGBA,*/
|
||||
PIPE_FORMAT_DXT1_RGB,
|
||||
@@ -245,14 +245,14 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||
PIPE_FORMAT_DXT3_RGBA,
|
||||
PIPE_FORMAT_DXT5_RGBA,
|
||||
/* sRGB */
|
||||
PIPE_FORMAT_R8G8B8A8_SRGB,
|
||||
PIPE_FORMAT_A8L8_SRGB,
|
||||
PIPE_FORMAT_A8B8G8R8_SRGB,
|
||||
PIPE_FORMAT_L8A8_SRGB,
|
||||
PIPE_FORMAT_L8_SRGB,
|
||||
PIPE_FORMAT_DXT1_SRGB,
|
||||
/* depth */
|
||||
PIPE_FORMAT_Z32_FLOAT,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
/* signed */
|
||||
PIPE_FORMAT_R8G8_SNORM,
|
||||
@@ -260,15 +260,15 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
static const enum pipe_format render_supported[] = {
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
static const enum pipe_format depth_supported[] = {
|
||||
PIPE_FORMAT_Z32_FLOAT,
|
||||
PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
|
||||
@@ -85,32 +85,32 @@ static GLuint translate_tex_format( enum pipe_format pf )
|
||||
return BRW_SURFACEFORMAT_A16_UNORM;
|
||||
*/
|
||||
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
return BRW_SURFACEFORMAT_L8A8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return BRW_SURFACEFORMAT_B5G6R5_UNORM;
|
||||
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return BRW_SURFACEFORMAT_B5G5R5A1_UNORM;
|
||||
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
return BRW_SURFACEFORMAT_B4G4R4A4_UNORM;
|
||||
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return BRW_SURFACEFORMAT_R8G8B8X8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
/*
|
||||
* Video formats
|
||||
*/
|
||||
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
return BRW_SURFACEFORMAT_YCRCB_NORMAL;
|
||||
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
return BRW_SURFACEFORMAT_YCRCB_SWAPUVY;
|
||||
|
||||
/*
|
||||
@@ -137,10 +137,10 @@ static GLuint translate_tex_format( enum pipe_format pf )
|
||||
* sRGB formats
|
||||
*/
|
||||
|
||||
case PIPE_FORMAT_R8G8B8A8_SRGB:
|
||||
case PIPE_FORMAT_A8B8G8R8_SRGB:
|
||||
return BRW_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB;
|
||||
|
||||
case PIPE_FORMAT_A8L8_SRGB:
|
||||
case PIPE_FORMAT_L8A8_SRGB:
|
||||
return BRW_SURFACEFORMAT_L8A8_UNORM_SRGB;
|
||||
|
||||
case PIPE_FORMAT_L8_SRGB:
|
||||
@@ -156,8 +156,8 @@ static GLuint translate_tex_format( enum pipe_format pf )
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return BRW_SURFACEFORMAT_I16_UNORM;
|
||||
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
return BRW_SURFACEFORMAT_I24X8_UNORM;
|
||||
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
|
||||
@@ -254,10 +254,10 @@ static void brw_wm_populate_key( struct brw_context *brw,
|
||||
for (i = 0; i < brw->curr.num_textures; i++) {
|
||||
const struct brw_texture *tex = brw_texture(brw->curr.texture[i]);
|
||||
|
||||
if (tex->base.format == PIPE_FORMAT_YCBCR)
|
||||
if (tex->base.format == PIPE_FORMAT_UYVY)
|
||||
key->yuvtex_mask |= 1 << i;
|
||||
|
||||
if (tex->base.format == PIPE_FORMAT_YCBCR_REV)
|
||||
if (tex->base.format == PIPE_FORMAT_YUYV)
|
||||
key->yuvtex_swap_mask |= 1 << i;
|
||||
|
||||
/* XXX: shadow texture
|
||||
|
||||
@@ -52,25 +52,25 @@ struct pixel_test_case
|
||||
|
||||
struct pixel_test_case test_cases[] =
|
||||
{
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, 0x0000, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, 0x001f, {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, 0x07e0, {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, 0xf800, {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_R5G6B5_UNORM, 0xffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, 0x0000, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, 0x001f, {0.0, 0.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, 0x07e0, {0.0, 1.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, 0xf800, {1.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G6R5_UNORM, 0xffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, 0x0000, {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, 0x001f, {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, 0x03e0, {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, 0x7c00, {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, 0x8000, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A1R5G5B5_UNORM, 0xffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, 0x0000, {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, 0x001f, {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, 0x03e0, {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, 0x7c00, {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, 0x8000, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B5G5R5A1_UNORM, 0xffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x00000000, {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x000000ff, {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x0000ff00, {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x00ff0000, {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0xff000000, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0xffffffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x00000000, {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x000000ff, {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x0000ff00, {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x00ff0000, {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0xff000000, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0xffffffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
|
||||
#if 0
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, 0x00000000, {0.0, 0.0, 0.0, 0.0}},
|
||||
@@ -81,12 +81,12 @@ struct pixel_test_case test_cases[] =
|
||||
{PIPE_FORMAT_R8G8B8A8_UNORM, 0xffffffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
#endif
|
||||
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x00000000, {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x000000ff, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x0000ff00, {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0x00ff0000, {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0xff000000, {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_B8G8R8A8_UNORM, 0xffffffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x00000000, {0.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x000000ff, {0.0, 0.0, 0.0, 1.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x0000ff00, {1.0, 0.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0x00ff0000, {0.0, 1.0, 0.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0xff000000, {0.0, 0.0, 1.0, 0.0}},
|
||||
{PIPE_FORMAT_A8R8G8B8_UNORM, 0xffffffff, {1.0, 1.0, 1.0, 1.0}},
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -18,15 +18,15 @@ nv04_surface_format(enum pipe_format format)
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
return NV04_CONTEXT_SURFACES_2D_FORMAT_Y8;
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
return NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return NV04_CONTEXT_SURFACES_2D_FORMAT_Y32;
|
||||
default:
|
||||
return -1;
|
||||
@@ -39,14 +39,14 @@ nv04_rect_format(enum pipe_format format)
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8;
|
||||
default:
|
||||
return -1;
|
||||
@@ -61,15 +61,15 @@ nv04_scaled_image_format(enum pipe_format format)
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5;
|
||||
default:
|
||||
return -1;
|
||||
|
||||
@@ -88,11 +88,11 @@ nv30_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *pt)
|
||||
else {
|
||||
switch (pt->format) {
|
||||
/* TODO: Figure out which formats can be swizzled */
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
|
||||
@@ -112,8 +112,8 @@ nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
@@ -121,12 +121,12 @@ nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
} else
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return TRUE;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
if (front) {
|
||||
return (front->format == PIPE_FORMAT_R5G6B5_UNORM);
|
||||
return (front->format == PIPE_FORMAT_B5G6R5_UNORM);
|
||||
}
|
||||
return TRUE;
|
||||
default:
|
||||
@@ -134,16 +134,16 @@ nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
}
|
||||
} else {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -66,14 +66,14 @@ nv30_state_framebuffer_validate(struct nv30_context *nv30)
|
||||
}
|
||||
|
||||
switch (colour_format) {
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
rt_format |= NV34TCL_RT_FORMAT_COLOR_X8R8G8B8;
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case 0:
|
||||
rt_format |= NV34TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
||||
break;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
rt_format |= NV34TCL_RT_FORMAT_COLOR_R5G6B5;
|
||||
colour_bits = 16;
|
||||
break;
|
||||
@@ -86,8 +86,8 @@ nv30_state_framebuffer_validate(struct nv30_context *nv30)
|
||||
rt_format |= NV34TCL_RT_FORMAT_ZETA_Z16;
|
||||
zeta_bits = 16;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case 0:
|
||||
rt_format |= NV34TCL_RT_FORMAT_ZETA_Z24S8;
|
||||
break;
|
||||
|
||||
@@ -90,8 +90,8 @@ nv40_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *pt)
|
||||
else {
|
||||
switch (pt->format) {
|
||||
/* TODO: Figure out which formats can be swizzled */
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
{
|
||||
if (debug_get_bool_option("NOUVEAU_NO_SWIZZLE", FALSE))
|
||||
|
||||
@@ -98,8 +98,8 @@ nv40_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
{
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
@@ -107,8 +107,8 @@ nv40_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
} else
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return TRUE;
|
||||
default:
|
||||
@@ -116,17 +116,17 @@ nv40_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
}
|
||||
} else {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_DXT1_RGB:
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
|
||||
@@ -57,14 +57,14 @@ nv40_state_framebuffer_validate(struct nv40_context *nv40)
|
||||
rt_format = NV40TCL_RT_FORMAT_TYPE_LINEAR;
|
||||
|
||||
switch (colour_format) {
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
rt_format |= NV40TCL_RT_FORMAT_COLOR_X8R8G8B8;
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case 0:
|
||||
rt_format |= NV40TCL_RT_FORMAT_COLOR_A8R8G8B8;
|
||||
break;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
rt_format |= NV40TCL_RT_FORMAT_COLOR_R5G6B5;
|
||||
break;
|
||||
default:
|
||||
@@ -75,8 +75,8 @@ nv40_state_framebuffer_validate(struct nv40_context *nv40)
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
rt_format |= NV40TCL_RT_FORMAT_ZETA_Z16;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case 0:
|
||||
rt_format |= NV40TCL_RT_FORMAT_ZETA_Z24S8;
|
||||
break;
|
||||
|
||||
@@ -89,14 +89,14 @@ nv50_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *tmp)
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
tile_flags = 0x4800;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
tile_flags = 0x1800;
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
tile_flags = 0x6c00;
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
tile_flags = 0x2800;
|
||||
break;
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
|
||||
@@ -35,9 +35,9 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||
{
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
case PIPE_FORMAT_R16G16B16A16_UNORM:
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
@@ -51,32 +51,32 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_DXT1_RGB:
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
case PIPE_FORMAT_DXT5_RGBA:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
case PIPE_FORMAT_R16G16B16A16_UNORM:
|
||||
|
||||
@@ -33,11 +33,11 @@ static INLINE int
|
||||
nv50_format(enum pipe_format format)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return NV50_2D_DST_FORMAT_A8R8G8B8_UNORM;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return NV50_2D_DST_FORMAT_X8R8G8B8_UNORM;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return NV50_2D_DST_FORMAT_R5G6B5_UNORM;
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
return NV50_2D_DST_FORMAT_R8_UNORM;
|
||||
|
||||
@@ -143,10 +143,10 @@ void r300_surface_copy(struct pipe_context* pipe,
|
||||
new_format = PIPE_FORMAT_I8_UNORM;
|
||||
break;
|
||||
case 2:
|
||||
new_format = PIPE_FORMAT_A4R4G4B4_UNORM;
|
||||
new_format = PIPE_FORMAT_B4G4R4A4_UNORM;
|
||||
break;
|
||||
case 4:
|
||||
new_format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
new_format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
default:
|
||||
debug_printf("r300: surface_copy: Unhandled format: %s. Falling back to software.\n"
|
||||
|
||||
@@ -210,9 +210,9 @@ static boolean r300_is_format_supported(struct pipe_screen* screen,
|
||||
{
|
||||
uint32_t retval = 0;
|
||||
boolean is_r500 = r300_screen(screen)->caps->is_r500;
|
||||
boolean is_z24 = format == PIPE_FORMAT_Z24X8_UNORM ||
|
||||
format == PIPE_FORMAT_Z24S8_UNORM;
|
||||
boolean is_color2101010 = format == PIPE_FORMAT_A2B10G10R10_UNORM;
|
||||
boolean is_z24 = format == PIPE_FORMAT_X8Z24_UNORM ||
|
||||
format == PIPE_FORMAT_S8Z24_UNORM;
|
||||
boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM;
|
||||
|
||||
if (target >= PIPE_MAX_TEXTURE_TYPES) {
|
||||
debug_printf("r300: Implementation error: Received bogus texture "
|
||||
|
||||
@@ -356,7 +356,7 @@ static void r300_set_blend_color(struct pipe_context* pipe,
|
||||
(struct r300_blend_color_state*)r300->blend_color_state.state;
|
||||
union util_color uc;
|
||||
|
||||
util_pack_color(color->color, PIPE_FORMAT_A8R8G8B8_UNORM, &uc);
|
||||
util_pack_color(color->color, PIPE_FORMAT_B8G8R8A8_UNORM, &uc);
|
||||
state->blend_color = uc.ui;
|
||||
|
||||
/* XXX if FP16 blending is enabled, we should use the FP16 format */
|
||||
@@ -868,7 +868,7 @@ static void*
|
||||
|
||||
sampler->filter1 |= r300_anisotropy(state->max_anisotropy);
|
||||
|
||||
util_pack_color(state->border_color, PIPE_FORMAT_A8R8G8B8_UNORM, &uc);
|
||||
util_pack_color(state->border_color, PIPE_FORMAT_B8G8R8A8_UNORM, &uc);
|
||||
sampler->border_color = uc.ui;
|
||||
|
||||
/* R500-specific fixups and optimizations */
|
||||
|
||||
@@ -92,8 +92,8 @@ static uint32_t r300_translate_texformat(enum pipe_format format)
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return R300_EASY_TX_FORMAT(X, X, X, X, X16);
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
return R300_EASY_TX_FORMAT(X, X, X, X, W24_FP);
|
||||
default:
|
||||
return ~0; /* Unsupported. */
|
||||
@@ -104,9 +104,9 @@ static uint32_t r300_translate_texformat(enum pipe_format format)
|
||||
result |= R300_TX_FORMAT_YUV_TO_RGB;
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
return R300_EASY_TX_FORMAT(X, Y, Z, ONE, YVYU422) | result;
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
return R300_EASY_TX_FORMAT(X, Y, Z, ONE, VYUY422) | result;
|
||||
default:
|
||||
return ~0; /* Unsupported/unknown. */
|
||||
@@ -308,33 +308,31 @@ static uint32_t r300_translate_colorformat(enum pipe_format format)
|
||||
return R300_COLOR_FORMAT_I8;
|
||||
|
||||
/* 16-bit buffers. */
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return R300_COLOR_FORMAT_RGB565;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return R300_COLOR_FORMAT_ARGB1555;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
return R300_COLOR_FORMAT_ARGB4444;
|
||||
|
||||
/* 32-bit buffers. */
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
case PIPE_FORMAT_R8G8B8A8_SNORM:
|
||||
case PIPE_FORMAT_R8G8B8A8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
case PIPE_FORMAT_R8G8B8X8_SRGB:
|
||||
case PIPE_FORMAT_A8B8G8R8_SRGB:
|
||||
case PIPE_FORMAT_X8B8G8R8_UNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8X8_SNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_SNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_SNORM:
|
||||
case PIPE_FORMAT_X8UB8UG8SR8S_NORM:
|
||||
case PIPE_FORMAT_R8SG8SB8UX8U_NORM:
|
||||
return R300_COLOR_FORMAT_ARGB8888;
|
||||
case PIPE_FORMAT_A2B10G10R10_UNORM:
|
||||
case PIPE_FORMAT_R10G10B10A2_UNORM:
|
||||
return R500_COLOR_FORMAT_ARGB2101010; /* R5xx-only? */
|
||||
|
||||
/* 64-bit buffers. */
|
||||
@@ -351,9 +349,9 @@ static uint32_t r300_translate_colorformat(enum pipe_format format)
|
||||
#endif
|
||||
|
||||
/* YUV buffers. */
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
return R300_COLOR_FORMAT_YVYU;
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
return R300_COLOR_FORMAT_VYUY;
|
||||
default:
|
||||
return ~0; /* Unsupported. */
|
||||
@@ -368,9 +366,9 @@ static uint32_t r300_translate_zsformat(enum pipe_format format)
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return R300_DEPTHFORMAT_16BIT_INT_Z;
|
||||
/* 24-bit depth, ignored stencil */
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/* 24-bit depth, 8-bit stencil */
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
return R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL;
|
||||
default:
|
||||
return ~0; /* Unsupported. */
|
||||
@@ -437,42 +435,40 @@ static uint32_t r300_translate_out_fmt(enum pipe_format format)
|
||||
return modifier | R300_C2_SEL_R;
|
||||
|
||||
/* ARGB 32-bit outputs. */
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
return modifier |
|
||||
R300_C0_SEL_B | R300_C1_SEL_G |
|
||||
R300_C2_SEL_R | R300_C3_SEL_A;
|
||||
|
||||
/* BGRA 32-bit outputs. */
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
return modifier |
|
||||
R300_C0_SEL_B | R300_C1_SEL_G |
|
||||
R300_C2_SEL_R | R300_C3_SEL_A;
|
||||
|
||||
/* BGRA 32-bit outputs. */
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
return modifier |
|
||||
R300_C0_SEL_A | R300_C1_SEL_R |
|
||||
R300_C2_SEL_G | R300_C3_SEL_B;
|
||||
|
||||
/* RGBA 32-bit outputs. */
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
case PIPE_FORMAT_R8G8B8A8_SNORM:
|
||||
case PIPE_FORMAT_R8G8B8A8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
case PIPE_FORMAT_R8G8B8X8_SRGB:
|
||||
case PIPE_FORMAT_R8G8B8X8_SNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_SRGB:
|
||||
case PIPE_FORMAT_X8B8G8R8_UNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_SRGB:
|
||||
return modifier |
|
||||
R300_C0_SEL_A | R300_C1_SEL_B |
|
||||
R300_C2_SEL_G | R300_C3_SEL_R;
|
||||
|
||||
/* ABGR 32-bit outputs. */
|
||||
case PIPE_FORMAT_A8B8G8R8_SNORM:
|
||||
case PIPE_FORMAT_X8B8G8R8_SNORM:
|
||||
case PIPE_FORMAT_X8UB8UG8SR8S_NORM:
|
||||
case PIPE_FORMAT_A2B10G10R10_UNORM:
|
||||
case PIPE_FORMAT_R8G8B8X8_SNORM:
|
||||
case PIPE_FORMAT_R8SG8SB8UX8U_NORM:
|
||||
case PIPE_FORMAT_R10G10B10A2_UNORM:
|
||||
/* RGBA high precision outputs (same swizzles as ABGR low precision) */
|
||||
case PIPE_FORMAT_R16G16B16A16_UNORM:
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
@@ -871,7 +867,7 @@ r300_video_surface_create(struct pipe_screen *screen,
|
||||
|
||||
memset(&template, 0, sizeof(struct pipe_texture));
|
||||
template.target = PIPE_TEXTURE_2D;
|
||||
template.format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
template.format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
template.last_level = 0;
|
||||
template.width0 = util_next_power_of_two(width);
|
||||
template.height0 = util_next_power_of_two(height);
|
||||
|
||||
@@ -73,8 +73,8 @@ get_depth_stencil_values( struct depth_data *data,
|
||||
data->bzzzz[j] = tile->data.depth32[y][x];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
@@ -82,8 +82,8 @@ get_depth_stencil_values( struct depth_data *data,
|
||||
data->stencilVals[j] = tile->data.depth32[y][x] >> 24;
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
@@ -146,8 +146,8 @@ convert_quad_depth( struct depth_data *data,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
{
|
||||
float scale = (float) ((1 << 24) - 1);
|
||||
|
||||
@@ -156,8 +156,8 @@ convert_quad_depth( struct depth_data *data,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
{
|
||||
float scale = (float) ((1 << 24) - 1);
|
||||
|
||||
@@ -189,7 +189,7 @@ write_depth_stencil_values( struct depth_data *data,
|
||||
tile->data.depth16[y][x] = (ushort) data->bzzzz[j];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
@@ -197,21 +197,21 @@ write_depth_stencil_values( struct depth_data *data,
|
||||
tile->data.depth32[y][x] = data->bzzzz[j];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
tile->data.depth32[y][x] = (data->stencilVals[j] << 24) | data->bzzzz[j];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
tile->data.depth32[y][x] = (data->bzzzz[j] << 8) | data->stencilVals[j];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
|
||||
@@ -152,17 +152,17 @@ softpipe_is_format_supported( struct pipe_screen *screen,
|
||||
|
||||
switch(format) {
|
||||
case PIPE_FORMAT_L16_UNORM:
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
case PIPE_FORMAT_DXT1_RGB:
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
case PIPE_FORMAT_DXT5_RGBA:
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
case PIPE_FORMAT_R8G8_SNORM:
|
||||
case PIPE_FORMAT_B6UG5SR5S_NORM:
|
||||
case PIPE_FORMAT_X8UB8UG8SR8S_NORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_SNORM:
|
||||
case PIPE_FORMAT_R5SG5SB6U_NORM:
|
||||
case PIPE_FORMAT_R8SG8SB8UX8U_NORM:
|
||||
case PIPE_FORMAT_R8G8B8A8_SNORM:
|
||||
case PIPE_FORMAT_NONE:
|
||||
return FALSE;
|
||||
default:
|
||||
|
||||
@@ -426,7 +426,7 @@ softpipe_video_surface_create(struct pipe_screen *screen,
|
||||
|
||||
memset(&template, 0, sizeof(struct pipe_texture));
|
||||
template.target = PIPE_TEXTURE_2D;
|
||||
template.format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
template.format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
template.last_level = 0;
|
||||
/* vl_mpeg12_mc_renderer expects this when it's initialized with pot_buffers=true */
|
||||
template.width0 = util_next_power_of_two(width);
|
||||
|
||||
@@ -162,10 +162,10 @@ sp_tile_cache_set_surface(struct softpipe_tile_cache *tc,
|
||||
PIPE_TRANSFER_READ_WRITE,
|
||||
0, 0, ps->width, ps->height);
|
||||
|
||||
tc->depth_stencil = (ps->format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_X8Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
tc->depth_stencil = (ps->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
ps->format == PIPE_FORMAT_Z24X8_UNORM ||
|
||||
ps->format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_X8Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_Z16_UNORM ||
|
||||
ps->format == PIPE_FORMAT_Z32_UNORM ||
|
||||
ps->format == PIPE_FORMAT_S8_UNORM);
|
||||
|
||||
@@ -54,7 +54,7 @@ try_clear(struct svga_context *svga,
|
||||
|
||||
if ((buffers & PIPE_CLEAR_COLOR) && fb->cbufs[0]) {
|
||||
flags |= SVGA3D_CLEAR_COLOR;
|
||||
util_pack_color(rgba, PIPE_FORMAT_A8R8G8B8_UNORM, &uc);
|
||||
util_pack_color(rgba, PIPE_FORMAT_B8G8R8A8_UNORM, &uc);
|
||||
|
||||
rect.w = fb->cbufs[0]->width;
|
||||
rect.h = fb->cbufs[0]->height;
|
||||
@@ -63,7 +63,7 @@ try_clear(struct svga_context *svga,
|
||||
if ((buffers & PIPE_CLEAR_DEPTHSTENCIL) && fb->zsbuf) {
|
||||
flags |= SVGA3D_CLEAR_DEPTH;
|
||||
|
||||
if (svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_Z24S8_UNORM)
|
||||
if (svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8Z24_UNORM)
|
||||
flags |= SVGA3D_CLEAR_STENCIL;
|
||||
|
||||
rect.w = MAX2(rect.w, fb->zsbuf->width);
|
||||
|
||||
@@ -118,10 +118,10 @@ static void svga_set_framebuffer_state(struct pipe_context *pipe,
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D16;
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D24S8;
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
|
||||
@@ -201,7 +201,7 @@ static void svga_set_sampler_textures(struct pipe_context *pipe,
|
||||
if (!texture[i])
|
||||
continue;
|
||||
|
||||
if (texture[i]->format == PIPE_FORMAT_A8R8G8B8_SRGB)
|
||||
if (texture[i]->format == PIPE_FORMAT_B8G8R8A8_SRGB)
|
||||
flag_srgb |= 1 << i;
|
||||
|
||||
if (texture[i]->target == PIPE_TEXTURE_1D)
|
||||
|
||||
@@ -196,23 +196,23 @@ svga_translate_format_cap(enum pipe_format format)
|
||||
{
|
||||
switch(format) {
|
||||
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_A8R8G8B8;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_X8R8G8B8;
|
||||
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_R5G6B5;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_A1R5G5B5;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_A4R4G4B4;
|
||||
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_Z_D16;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_Z_D24X8;
|
||||
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
@@ -254,8 +254,8 @@ svga_is_format_supported( struct pipe_screen *screen,
|
||||
/* Often unsupported/problematic. This means we end up with the same
|
||||
* visuals for all virtual hardware implementations.
|
||||
*/
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return FALSE;
|
||||
|
||||
/* Simulate ability to render into compressed textures */
|
||||
|
||||
@@ -59,21 +59,21 @@ svga_translate_format(enum pipe_format format)
|
||||
{
|
||||
switch(format) {
|
||||
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return SVGA3D_A8R8G8B8;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return SVGA3D_X8R8G8B8;
|
||||
|
||||
/* Required for GL2.1:
|
||||
*/
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
return SVGA3D_A8R8G8B8;
|
||||
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return SVGA3D_R5G6B5;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return SVGA3D_A1R5G5B5;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
return SVGA3D_A4R4G4B4;
|
||||
|
||||
|
||||
@@ -83,9 +83,9 @@ svga_translate_format(enum pipe_format format)
|
||||
*/
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return SVGA3D_Z_D16;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
return SVGA3D_Z_D24S8;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return SVGA3D_Z_D24X8;
|
||||
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
@@ -111,13 +111,13 @@ SVGA3dSurfaceFormat
|
||||
svga_translate_format_render(enum pipe_format format)
|
||||
{
|
||||
switch(format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
case PIPE_FORMAT_L8_UNORM:
|
||||
@@ -403,9 +403,9 @@ svga_texture_blanket(struct pipe_screen * screen,
|
||||
|
||||
|
||||
if (sbuf->key.format == 1)
|
||||
tex->base.format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
tex->base.format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
else if (sbuf->key.format == 2)
|
||||
tex->base.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
tex->base.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
pipe_reference_init(&tex->base.reference, 1);
|
||||
tex->base.screen = screen;
|
||||
@@ -462,9 +462,9 @@ svga_screen_texture_wrap_surface(struct pipe_screen *screen,
|
||||
|
||||
|
||||
if (format == 1)
|
||||
tex->base.format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
tex->base.format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
else if (format == 2)
|
||||
tex->base.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
tex->base.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
pipe_reference_init(&tex->base.reference, 1);
|
||||
tex->base.screen = screen;
|
||||
|
||||
@@ -70,7 +70,7 @@ static int emit_framebuffer( struct svga_context *svga,
|
||||
return ret;
|
||||
|
||||
if (curr->zsbuf &&
|
||||
curr->zsbuf->format == PIPE_FORMAT_Z24S8_UNORM) {
|
||||
curr->zsbuf->format == PIPE_FORMAT_S8Z24_UNORM) {
|
||||
ret = SVGA3D_SetRenderTarget(svga->swc, SVGA3D_RT_STENCIL, curr->zsbuf);
|
||||
if (ret != PIPE_OK)
|
||||
return ret;
|
||||
|
||||
@@ -43,7 +43,7 @@ svga_translate_vertex_format(enum pipe_format format)
|
||||
case PIPE_FORMAT_R32G32_FLOAT: return SVGA3D_DECLTYPE_FLOAT2;
|
||||
case PIPE_FORMAT_R32G32B32_FLOAT: return SVGA3D_DECLTYPE_FLOAT3;
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT: return SVGA3D_DECLTYPE_FLOAT4;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM: return SVGA3D_DECLTYPE_D3DCOLOR;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM: return SVGA3D_DECLTYPE_D3DCOLOR;
|
||||
case PIPE_FORMAT_R8G8B8A8_USCALED: return SVGA3D_DECLTYPE_UBYTE4;
|
||||
case PIPE_FORMAT_R16G16_SSCALED: return SVGA3D_DECLTYPE_SHORT2;
|
||||
case PIPE_FORMAT_R16G16B16A16_SSCALED: return SVGA3D_DECLTYPE_SHORT4;
|
||||
|
||||
@@ -45,28 +45,28 @@ extern "C" {
|
||||
|
||||
enum pipe_format {
|
||||
PIPE_FORMAT_NONE = 0,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM = 1,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM = 2,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM = 3,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM = 4,
|
||||
PIPE_FORMAT_A1R5G5B5_UNORM = 5,
|
||||
PIPE_FORMAT_A4R4G4B4_UNORM = 6,
|
||||
PIPE_FORMAT_R5G6B5_UNORM = 7,
|
||||
PIPE_FORMAT_A2B10G10R10_UNORM = 8,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM = 1,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM = 2,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM = 3,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM = 4,
|
||||
PIPE_FORMAT_B5G5R5A1_UNORM = 5,
|
||||
PIPE_FORMAT_B4G4R4A4_UNORM = 6,
|
||||
PIPE_FORMAT_B5G6R5_UNORM = 7,
|
||||
PIPE_FORMAT_R10G10B10A2_UNORM = 8,
|
||||
PIPE_FORMAT_L8_UNORM = 9, /**< ubyte luminance */
|
||||
PIPE_FORMAT_A8_UNORM = 10, /**< ubyte alpha */
|
||||
PIPE_FORMAT_I8_UNORM = 11, /**< ubyte intensity */
|
||||
PIPE_FORMAT_A8L8_UNORM = 12, /**< ubyte alpha, luminance */
|
||||
PIPE_FORMAT_L8A8_UNORM = 12, /**< ubyte alpha, luminance */
|
||||
PIPE_FORMAT_L16_UNORM = 13, /**< ushort luminance */
|
||||
PIPE_FORMAT_YCBCR = 14,
|
||||
PIPE_FORMAT_YCBCR_REV = 15,
|
||||
PIPE_FORMAT_UYVY = 14,
|
||||
PIPE_FORMAT_YUYV = 15,
|
||||
PIPE_FORMAT_Z16_UNORM = 16,
|
||||
PIPE_FORMAT_Z32_UNORM = 17,
|
||||
PIPE_FORMAT_Z32_FLOAT = 18,
|
||||
PIPE_FORMAT_S8Z24_UNORM = 19,
|
||||
PIPE_FORMAT_Z24S8_UNORM = 20,
|
||||
PIPE_FORMAT_X8Z24_UNORM = 21,
|
||||
PIPE_FORMAT_Z24X8_UNORM = 22,
|
||||
PIPE_FORMAT_Z24S8_UNORM = 19,
|
||||
PIPE_FORMAT_S8Z24_UNORM = 20,
|
||||
PIPE_FORMAT_Z24X8_UNORM = 21,
|
||||
PIPE_FORMAT_X8Z24_UNORM = 22,
|
||||
PIPE_FORMAT_S8_UNORM = 23, /**< ubyte stencil */
|
||||
PIPE_FORMAT_R64_FLOAT = 24,
|
||||
PIPE_FORMAT_R64G64_FLOAT = 25,
|
||||
@@ -112,43 +112,38 @@ enum pipe_format {
|
||||
PIPE_FORMAT_R8G8_UNORM = 65,
|
||||
PIPE_FORMAT_R8G8B8_UNORM = 66,
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM = 67,
|
||||
PIPE_FORMAT_R8G8B8X8_UNORM = 68,
|
||||
PIPE_FORMAT_X8B8G8R8_UNORM = 68,
|
||||
PIPE_FORMAT_R8_USCALED = 69,
|
||||
PIPE_FORMAT_R8G8_USCALED = 70,
|
||||
PIPE_FORMAT_R8G8B8_USCALED = 71,
|
||||
PIPE_FORMAT_R8G8B8A8_USCALED = 72,
|
||||
PIPE_FORMAT_R8G8B8X8_USCALED = 73,
|
||||
PIPE_FORMAT_R8_SNORM = 74,
|
||||
PIPE_FORMAT_R8G8_SNORM = 75,
|
||||
PIPE_FORMAT_R8G8B8_SNORM = 76,
|
||||
PIPE_FORMAT_R8G8B8A8_SNORM = 77,
|
||||
PIPE_FORMAT_R8G8B8X8_SNORM = 78,
|
||||
PIPE_FORMAT_B6G5R5_SNORM = 79,
|
||||
PIPE_FORMAT_A8B8G8R8_SNORM = 80,
|
||||
PIPE_FORMAT_X8B8G8R8_SNORM = 81,
|
||||
PIPE_FORMAT_R8G8B8X8_SNORM = 81,
|
||||
PIPE_FORMAT_R8_SSCALED = 82,
|
||||
PIPE_FORMAT_R8G8_SSCALED = 83,
|
||||
PIPE_FORMAT_R8G8B8_SSCALED = 84,
|
||||
PIPE_FORMAT_R8G8B8A8_SSCALED = 85,
|
||||
PIPE_FORMAT_R8G8B8X8_SSCALED = 86,
|
||||
PIPE_FORMAT_R32_FIXED = 87,
|
||||
PIPE_FORMAT_R32G32_FIXED = 88,
|
||||
PIPE_FORMAT_R32G32B32_FIXED = 89,
|
||||
PIPE_FORMAT_R32G32B32A32_FIXED = 90,
|
||||
/* sRGB formats */
|
||||
PIPE_FORMAT_L8_SRGB = 91,
|
||||
PIPE_FORMAT_A8L8_SRGB = 92,
|
||||
PIPE_FORMAT_L8A8_SRGB = 92,
|
||||
PIPE_FORMAT_R8G8B8_SRGB = 93,
|
||||
PIPE_FORMAT_R8G8B8A8_SRGB = 94,
|
||||
PIPE_FORMAT_R8G8B8X8_SRGB = 95,
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB = 96,
|
||||
PIPE_FORMAT_X8R8G8B8_SRGB = 97,
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB = 98,
|
||||
PIPE_FORMAT_B8G8R8X8_SRGB = 99,
|
||||
PIPE_FORMAT_A8B8G8R8_SRGB = 94,
|
||||
PIPE_FORMAT_X8B8G8R8_SRGB = 95,
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB = 96,
|
||||
PIPE_FORMAT_B8G8R8X8_SRGB = 97,
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB = 98,
|
||||
PIPE_FORMAT_X8R8G8B8_SRGB = 99,
|
||||
|
||||
/* mixed formats */
|
||||
PIPE_FORMAT_X8UB8UG8SR8S_NORM = 100,
|
||||
PIPE_FORMAT_B6UG5SR5S_NORM = 101,
|
||||
PIPE_FORMAT_R8SG8SB8UX8U_NORM = 100,
|
||||
PIPE_FORMAT_R5SG5SB6U_NORM = 101,
|
||||
|
||||
/* compressed formats */
|
||||
PIPE_FORMAT_DXT1_RGB = 102,
|
||||
@@ -162,6 +157,8 @@ enum pipe_format {
|
||||
PIPE_FORMAT_DXT3_SRGBA = 108,
|
||||
PIPE_FORMAT_DXT5_SRGBA = 109,
|
||||
|
||||
PIPE_FORMAT_A8B8G8R8_UNORM = 110,
|
||||
|
||||
PIPE_FORMAT_COUNT
|
||||
};
|
||||
|
||||
|
||||
@@ -349,11 +349,11 @@ dri_create_buffer(__DRIscreen * sPriv,
|
||||
|
||||
if (visual->redBits == 8) {
|
||||
if (visual->alphaBits == 8)
|
||||
drawable->color_format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
drawable->color_format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
else
|
||||
drawable->color_format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
drawable->color_format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
} else {
|
||||
drawable->color_format = PIPE_FORMAT_R5G6B5_UNORM;
|
||||
drawable->color_format = PIPE_FORMAT_B5G6R5_UNORM;
|
||||
}
|
||||
|
||||
switch(visual->depthBits) {
|
||||
@@ -367,12 +367,12 @@ dri_create_buffer(__DRIscreen * sPriv,
|
||||
case 24:
|
||||
if (visual->stencilBits == 0) {
|
||||
drawable->depth_stencil_format = (screen->d_depth_bits_last) ?
|
||||
PIPE_FORMAT_X8Z24_UNORM:
|
||||
PIPE_FORMAT_Z24X8_UNORM;
|
||||
PIPE_FORMAT_Z24X8_UNORM:
|
||||
PIPE_FORMAT_X8Z24_UNORM;
|
||||
} else {
|
||||
drawable->depth_stencil_format = (screen->sd_depth_bits_last) ?
|
||||
PIPE_FORMAT_S8Z24_UNORM:
|
||||
PIPE_FORMAT_Z24S8_UNORM;
|
||||
PIPE_FORMAT_Z24S8_UNORM:
|
||||
PIPE_FORMAT_S8Z24_UNORM;
|
||||
}
|
||||
break;
|
||||
case 32:
|
||||
|
||||
@@ -109,22 +109,22 @@ dri_fill_in_modes(struct dri_screen *screen,
|
||||
stencil_bits_array[0] = 0;
|
||||
depth_buffer_factor = 1;
|
||||
|
||||
pf_x8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8Z24_UNORM,
|
||||
pf_x8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_z24x8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24X8_UNORM,
|
||||
pf_z24x8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_s8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
pf_s8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_a8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
pf_a8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
pf_x8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
pf_x8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
|
||||
@@ -139,7 +139,7 @@ dri_fill_in_modes(struct dri_screen *screen,
|
||||
pf_z32 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_r5g6b5 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_R5G6B5_UNORM,
|
||||
pf_r5g6b5 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
} else {
|
||||
|
||||
@@ -1097,7 +1097,7 @@ egl_g3d_bind_tex_image(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
target_format = PIPE_FORMAT_R8G8B8_UNORM;
|
||||
break;
|
||||
case EGL_TEXTURE_RGBA:
|
||||
target_format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
target_format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
default:
|
||||
return _eglError(EGL_BAD_MATCH, "eglBindTexImage");
|
||||
|
||||
@@ -609,9 +609,9 @@ kms_display_get_configs(struct native_display *ndpy, int *num_configs)
|
||||
/* always double-buffered */
|
||||
nconf->mode.doubleBufferMode = TRUE;
|
||||
|
||||
format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
if (!kms_display_is_format_supported(&kdpy->base, format, TRUE)) {
|
||||
format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
if (!kms_display_is_format_supported(&kdpy->base, format, TRUE))
|
||||
format = PIPE_FORMAT_NONE;
|
||||
}
|
||||
@@ -625,9 +625,9 @@ kms_display_get_configs(struct native_display *ndpy, int *num_configs)
|
||||
nconf->mode.alphaBits = 8;
|
||||
nconf->mode.rgbBits = 32;
|
||||
|
||||
format = PIPE_FORMAT_S8Z24_UNORM;
|
||||
format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (!kms_display_is_format_supported(&kdpy->base, format, FALSE)) {
|
||||
format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
format = PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (!kms_display_is_format_supported(&kdpy->base, format, FALSE))
|
||||
format = PIPE_FORMAT_NONE;
|
||||
}
|
||||
|
||||
@@ -516,17 +516,17 @@ choose_color_format(const __GLcontextModes *mode, enum pipe_format formats[32])
|
||||
|
||||
switch (mode->rgbBits) {
|
||||
case 32:
|
||||
formats[count++] = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
break;
|
||||
case 24:
|
||||
formats[count++] = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
break;
|
||||
case 16:
|
||||
formats[count++] = PIPE_FORMAT_R5G6B5_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_B5G6R5_UNORM;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -547,12 +547,12 @@ choose_depth_stencil_format(const __GLcontextModes *mode,
|
||||
break;
|
||||
case 24:
|
||||
if (mode->stencilBits) {
|
||||
formats[count++] = PIPE_FORMAT_S8Z24_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_Z24S8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_S8Z24_UNORM;
|
||||
}
|
||||
else {
|
||||
formats[count++] = PIPE_FORMAT_X8Z24_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_Z24X8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_X8Z24_UNORM;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
|
||||
@@ -561,13 +561,13 @@ choose_format(const XVisualInfo *vinfo)
|
||||
/* TODO elaborate the formats */
|
||||
switch (vinfo->depth) {
|
||||
case 32:
|
||||
fmt = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
fmt = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
case 24:
|
||||
fmt = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
fmt = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case 16:
|
||||
fmt = PIPE_FORMAT_R5G6B5_UNORM;
|
||||
fmt = PIPE_FORMAT_B5G6R5_UNORM;
|
||||
break;
|
||||
default:
|
||||
fmt = PIPE_FORMAT_NONE;
|
||||
@@ -620,8 +620,8 @@ ximage_display_get_configs(struct native_display *ndpy, int *num_configs)
|
||||
xconf->base.stencil_format = PIPE_FORMAT_NONE;
|
||||
/* create the second config with depth/stencil buffer */
|
||||
if (j == 1) {
|
||||
xconf->base.depth_format = PIPE_FORMAT_S8Z24_UNORM;
|
||||
xconf->base.stencil_format = PIPE_FORMAT_S8Z24_UNORM;
|
||||
xconf->base.depth_format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
xconf->base.stencil_format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
mode->depthBits = 24;
|
||||
mode->stencilBits = 8;
|
||||
mode->haveDepthBuffer = TRUE;
|
||||
@@ -669,13 +669,13 @@ ximage_display_is_pixmap_supported(struct native_display *ndpy,
|
||||
depth = x11_drawable_get_depth(xdpy->xscr, (Drawable) pix);
|
||||
switch (depth) {
|
||||
case 32:
|
||||
fmt = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
fmt = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
case 24:
|
||||
fmt = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
fmt = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case 16:
|
||||
fmt = PIPE_FORMAT_R5G6B5_UNORM;
|
||||
fmt = PIPE_FORMAT_B5G6R5_UNORM;
|
||||
break;
|
||||
default:
|
||||
fmt = PIPE_FORMAT_NONE;
|
||||
|
||||
@@ -274,10 +274,10 @@ choose_pixel_format(XMesaVisual v)
|
||||
&& v->BitsPerPixel == 32) {
|
||||
if (native_byte_order) {
|
||||
/* no byteswapping needed */
|
||||
return 0 /* PIXEL_FORMAT_U_A8_B8_G8_R8 */;
|
||||
return PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||
}
|
||||
else {
|
||||
return PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||
return PIPE_FORMAT_A8B8G8R8_UNORM;
|
||||
}
|
||||
}
|
||||
else if ( GET_REDMASK(v) == 0xff0000
|
||||
@@ -286,10 +286,10 @@ choose_pixel_format(XMesaVisual v)
|
||||
&& v->BitsPerPixel == 32) {
|
||||
if (native_byte_order) {
|
||||
/* no byteswapping needed */
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
}
|
||||
else {
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
}
|
||||
}
|
||||
else if ( GET_REDMASK(v) == 0x0000ff00
|
||||
@@ -298,10 +298,10 @@ choose_pixel_format(XMesaVisual v)
|
||||
&& v->BitsPerPixel == 32) {
|
||||
if (native_byte_order) {
|
||||
/* no byteswapping needed */
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
}
|
||||
else {
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
}
|
||||
}
|
||||
else if ( GET_REDMASK(v) == 0xf800
|
||||
@@ -310,7 +310,7 @@ choose_pixel_format(XMesaVisual v)
|
||||
&& native_byte_order
|
||||
&& v->BitsPerPixel == 16) {
|
||||
/* 5-6-5 RGB */
|
||||
return PIPE_FORMAT_R5G6B5_UNORM;
|
||||
return PIPE_FORMAT_B5G6R5_UNORM;
|
||||
}
|
||||
|
||||
assert(0);
|
||||
@@ -333,8 +333,8 @@ xmesa_choose_z_stencil_format(int depthBits, int stencilBits,
|
||||
const unsigned geom_flags = (PIPE_TEXTURE_GEOM_NON_SQUARE |
|
||||
PIPE_TEXTURE_GEOM_NON_POWER_OF_TWO);
|
||||
static enum pipe_format formats[] = {
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_Z32_UNORM
|
||||
};
|
||||
|
||||
@@ -244,7 +244,7 @@ st_context_create(struct st_device *st_dev)
|
||||
|
||||
memset( &templat, 0, sizeof( templat ) );
|
||||
templat.target = PIPE_TEXTURE_2D;
|
||||
templat.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
templat.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
templat.width0 = 1;
|
||||
templat.height0 = 1;
|
||||
templat.depth0 = 1;
|
||||
|
||||
@@ -485,7 +485,7 @@ st_sample_generic_pixel_block(enum pipe_format format,
|
||||
w, h,
|
||||
rgba, rgba_stride);
|
||||
|
||||
if(format == PIPE_FORMAT_YCBCR || format == PIPE_FORMAT_YCBCR_REV) {
|
||||
if(format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV) {
|
||||
for(y = 0; y < h; ++y) {
|
||||
for(x = 0; x < w; ++x) {
|
||||
for(ch = 0; ch < 4; ++ch) {
|
||||
|
||||
@@ -67,7 +67,7 @@ static INLINE struct pipe_texture *create_texture_1d(struct vg_context *ctx,
|
||||
|
||||
memset(&templ, 0, sizeof(templ));
|
||||
templ.target = PIPE_TEXTURE_1D;
|
||||
templ.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
templ.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
templ.last_level = 0;
|
||||
templ.width0 = color_data_len;
|
||||
templ.height0 = 1;
|
||||
|
||||
@@ -48,16 +48,16 @@ static enum pipe_format vg_format_to_pipe(VGImageFormat format)
|
||||
{
|
||||
switch(format) {
|
||||
case VG_sRGB_565:
|
||||
return PIPE_FORMAT_R5G6B5_UNORM;
|
||||
return PIPE_FORMAT_B5G6R5_UNORM;
|
||||
case VG_sRGBA_5551:
|
||||
return PIPE_FORMAT_A1R5G5B5_UNORM;
|
||||
return PIPE_FORMAT_B5G5R5A1_UNORM;
|
||||
case VG_sRGBA_4444:
|
||||
return PIPE_FORMAT_A4R4G4B4_UNORM;
|
||||
return PIPE_FORMAT_B4G4R4A4_UNORM;
|
||||
case VG_sL_8:
|
||||
case VG_lL_8:
|
||||
return PIPE_FORMAT_L8_UNORM;
|
||||
case VG_BW_1:
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
case VG_A_8:
|
||||
return PIPE_FORMAT_A8_UNORM;
|
||||
#ifdef OPENVG_VERSION_1_1
|
||||
@@ -66,7 +66,7 @@ static enum pipe_format vg_format_to_pipe(VGImageFormat format)
|
||||
return PIPE_FORMAT_A8_UNORM;
|
||||
#endif
|
||||
default:
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -488,7 +488,7 @@ struct vg_mask_layer * mask_layer_create(VGint width, VGint height)
|
||||
|
||||
memset(&pt, 0, sizeof(pt));
|
||||
pt.target = PIPE_TEXTURE_2D;
|
||||
pt.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
pt.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
pt.last_level = 0;
|
||||
pt.width0 = width;
|
||||
pt.height0 = height;
|
||||
|
||||
@@ -151,7 +151,7 @@ static INLINE struct pipe_texture *create_gradient_texture(struct vg_paint *p)
|
||||
|
||||
memset(&templ, 0, sizeof(templ));
|
||||
templ.target = PIPE_TEXTURE_1D;
|
||||
templ.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
templ.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
templ.last_level = 0;
|
||||
templ.width0 = 1024;
|
||||
templ.height0 = 1;
|
||||
|
||||
@@ -51,7 +51,7 @@ create_texture(struct pipe_context *pipe, enum pipe_format format,
|
||||
templ.format = format;
|
||||
}
|
||||
else {
|
||||
templ.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
templ.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
}
|
||||
|
||||
templ.target = PIPE_TEXTURE_2D;
|
||||
@@ -186,7 +186,7 @@ struct st_framebuffer * st_create_framebuffer(const void *visual,
|
||||
if (stencilFormat == depthFormat)
|
||||
stfb->dsrb = st_new_renderbuffer_fb(stencilFormat);
|
||||
else
|
||||
stfb->dsrb = st_new_renderbuffer_fb(PIPE_FORMAT_S8Z24_UNORM);
|
||||
stfb->dsrb = st_new_renderbuffer_fb(PIPE_FORMAT_Z24S8_UNORM);
|
||||
|
||||
/*### currently we always allocate it but it's possible it's
|
||||
not necessary if EGL_ALPHA_MASK_SIZE was 0
|
||||
@@ -209,12 +209,12 @@ static void setup_new_alpha_mask(struct vg_context *ctx,
|
||||
struct pipe_texture *old_texture = stfb->alpha_mask;
|
||||
|
||||
/*
|
||||
we use PIPE_FORMAT_A8R8G8B8_UNORM because we want to render to
|
||||
we use PIPE_FORMAT_B8G8R8A8_UNORM because we want to render to
|
||||
this texture and use it as a sampler, so while this wastes some
|
||||
space it makes both of those a lot simpler
|
||||
*/
|
||||
stfb->alpha_mask =
|
||||
create_texture(pipe, PIPE_FORMAT_A8R8G8B8_UNORM, width, height);
|
||||
create_texture(pipe, PIPE_FORMAT_B8G8R8A8_UNORM, width, height);
|
||||
|
||||
if (!stfb->alpha_mask) {
|
||||
if (old_texture)
|
||||
@@ -327,7 +327,7 @@ void st_resize_framebuffer(struct st_framebuffer *stfb,
|
||||
setup_new_alpha_mask(ctx, stfb, width, height);
|
||||
|
||||
pipe_texture_reference( &stfb->blend_texture, NULL );
|
||||
stfb->blend_texture = create_texture(ctx->pipe, PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
stfb->blend_texture = create_texture(ctx->pipe, PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
width, height);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,17 +74,17 @@ struct stw_pf_depth_info
|
||||
static const struct stw_pf_color_info
|
||||
stw_pf_color[] = {
|
||||
/* no-alpha */
|
||||
{ PIPE_FORMAT_X8R8G8B8_UNORM, { 8, 8, 8, 0}, {16, 8, 0, 0} },
|
||||
{ PIPE_FORMAT_B8G8R8X8_UNORM, { 8, 8, 8, 0}, { 8, 16, 24, 0} },
|
||||
{ PIPE_FORMAT_R5G6B5_UNORM, { 5, 6, 5, 0}, {11, 5, 0, 0} },
|
||||
{ PIPE_FORMAT_B8G8R8X8_UNORM, { 8, 8, 8, 0}, {16, 8, 0, 0} },
|
||||
{ PIPE_FORMAT_X8R8G8B8_UNORM, { 8, 8, 8, 0}, { 8, 16, 24, 0} },
|
||||
{ PIPE_FORMAT_B5G6R5_UNORM, { 5, 6, 5, 0}, {11, 5, 0, 0} },
|
||||
/* alpha */
|
||||
{ PIPE_FORMAT_A8R8G8B8_UNORM, { 8, 8, 8, 8}, {16, 8, 0, 24} },
|
||||
{ PIPE_FORMAT_B8G8R8A8_UNORM, { 8, 8, 8, 8}, { 8, 16, 24, 0} },
|
||||
{ PIPE_FORMAT_B8G8R8A8_UNORM, { 8, 8, 8, 8}, {16, 8, 0, 24} },
|
||||
{ PIPE_FORMAT_A8R8G8B8_UNORM, { 8, 8, 8, 8}, { 8, 16, 24, 0} },
|
||||
#if 0
|
||||
{ PIPE_FORMAT_A2B10G10R10_UNORM, {10, 10, 10, 2}, { 0, 10, 20, 30} },
|
||||
{ PIPE_FORMAT_R10G10B10A2_UNORM, {10, 10, 10, 2}, { 0, 10, 20, 30} },
|
||||
#endif
|
||||
{ PIPE_FORMAT_A1R5G5B5_UNORM, { 5, 5, 5, 1}, {10, 5, 0, 15} },
|
||||
{ PIPE_FORMAT_A4R4G4B4_UNORM, { 4, 4, 4, 4}, {16, 4, 0, 12} }
|
||||
{ PIPE_FORMAT_B5G5R5A1_UNORM, { 5, 5, 5, 1}, {10, 5, 0, 15} },
|
||||
{ PIPE_FORMAT_B4G4R4A4_UNORM, { 4, 4, 4, 4}, {16, 4, 0, 12} }
|
||||
};
|
||||
|
||||
|
||||
@@ -92,12 +92,12 @@ static const struct stw_pf_depth_info
|
||||
stw_pf_depth_stencil[] = {
|
||||
/* pure depth */
|
||||
{ PIPE_FORMAT_Z32_UNORM, {32, 0} },
|
||||
{ PIPE_FORMAT_Z24X8_UNORM, {24, 0} },
|
||||
{ PIPE_FORMAT_X8Z24_UNORM, {24, 0} },
|
||||
{ PIPE_FORMAT_Z24X8_UNORM, {24, 0} },
|
||||
{ PIPE_FORMAT_Z16_UNORM, {16, 0} },
|
||||
/* combined depth-stencil */
|
||||
{ PIPE_FORMAT_S8Z24_UNORM, {24, 8} },
|
||||
{ PIPE_FORMAT_Z24S8_UNORM, {24, 8} }
|
||||
{ PIPE_FORMAT_Z24S8_UNORM, {24, 8} },
|
||||
{ PIPE_FORMAT_S8Z24_UNORM, {24, 8} }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ crtc_load_cursor_argb_ga3d(xf86CrtcPtr crtc, CARD32 * image)
|
||||
templat.target = PIPE_TEXTURE_2D;
|
||||
templat.last_level = 0;
|
||||
templat.depth0 = 1;
|
||||
templat.format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
templat.format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
templat.width0 = 64;
|
||||
templat.height0 = 64;
|
||||
|
||||
|
||||
@@ -116,12 +116,12 @@ dri2_do_create_buffer(DrawablePtr pDraw, DRI2BufferPtr buffer, unsigned int form
|
||||
break;
|
||||
default:
|
||||
template.format = ms->ds_depth_bits_last ?
|
||||
PIPE_FORMAT_X8Z24_UNORM : PIPE_FORMAT_Z24X8_UNORM;
|
||||
PIPE_FORMAT_Z24X8_UNORM : PIPE_FORMAT_X8Z24_UNORM;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
template.format = ms->ds_depth_bits_last ?
|
||||
PIPE_FORMAT_S8Z24_UNORM : PIPE_FORMAT_Z24S8_UNORM;
|
||||
PIPE_FORMAT_Z24S8_UNORM : PIPE_FORMAT_S8Z24_UNORM;
|
||||
}
|
||||
template.width0 = pDraw->width;
|
||||
template.height0 = pDraw->height;
|
||||
@@ -431,11 +431,11 @@ xorg_dri2_init(ScreenPtr pScreen)
|
||||
dri2info.Wait = NULL;
|
||||
|
||||
ms->d_depth_bits_last =
|
||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_X8Z24_UNORM,
|
||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
ms->ds_depth_bits_last =
|
||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
|
||||
|
||||
@@ -118,22 +118,22 @@ exa_get_pipe_format(int depth, enum pipe_format *format, int *bbp, int *picture_
|
||||
{
|
||||
switch (depth) {
|
||||
case 32:
|
||||
*format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
*format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
*picture_format = PICT_a8r8g8b8;
|
||||
assert(*bbp == 32);
|
||||
break;
|
||||
case 24:
|
||||
*format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
*format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
*picture_format = PICT_x8r8g8b8;
|
||||
assert(*bbp == 32);
|
||||
break;
|
||||
case 16:
|
||||
*format = PIPE_FORMAT_R5G6B5_UNORM;
|
||||
*format = PIPE_FORMAT_B5G6R5_UNORM;
|
||||
*picture_format = PICT_r5g6b5;
|
||||
assert(*bbp == 16);
|
||||
break;
|
||||
case 15:
|
||||
*format = PIPE_FORMAT_A1R5G5B5_UNORM;
|
||||
*format = PIPE_FORMAT_B5G5R5A1_UNORM;
|
||||
*picture_format = PICT_x1r5g5b5;
|
||||
assert(*bbp == 16);
|
||||
break;
|
||||
@@ -144,7 +144,7 @@ exa_get_pipe_format(int depth, enum pipe_format *format, int *bbp, int *picture_
|
||||
break;
|
||||
case 4:
|
||||
case 1:
|
||||
*format = PIPE_FORMAT_A8R8G8B8_UNORM; /* bad bad bad */
|
||||
*format = PIPE_FORMAT_B8G8R8A8_UNORM; /* bad bad bad */
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
|
||||
@@ -101,7 +101,7 @@ CreateOrResizeBackBuffer(struct pipe_video_context *vpipe, unsigned int width, u
|
||||
memset(&template, 0, sizeof(struct pipe_texture));
|
||||
template.target = PIPE_TEXTURE_2D;
|
||||
/* XXX: Needs to match the drawable's format? */
|
||||
template.format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
template.format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
template.last_level = 0;
|
||||
template.width0 = width;
|
||||
template.height0 = height;
|
||||
|
||||
@@ -119,9 +119,9 @@ nouveau_drm_create_screen(struct drm_api *api, int fd,
|
||||
enum pipe_format format;
|
||||
|
||||
if (nvdri->bpp == 16)
|
||||
format = PIPE_FORMAT_R5G6B5_UNORM;
|
||||
format = PIPE_FORMAT_B5G6R5_UNORM;
|
||||
else
|
||||
format = PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
nvws->front = dri_surface_from_handle(api, nvws->pscreen,
|
||||
nvdri->front_offset,
|
||||
|
||||
@@ -75,8 +75,8 @@ gdi_llvmpipe_is_displaytarget_format_supported( struct llvmpipe_winsys *ws,
|
||||
enum pipe_format format )
|
||||
{
|
||||
switch(format) {
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return TRUE;
|
||||
|
||||
/* TODO: Support other formats possible with BMPs, as described in
|
||||
|
||||
@@ -713,7 +713,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
memcpy(dest, sValues, spanWidth);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||
GLint k;
|
||||
@@ -731,7 +731,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||
GLint k;
|
||||
@@ -879,7 +879,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
src = buffer + i * width;
|
||||
|
||||
switch (ptDraw->texture->format) {
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
{
|
||||
uint *dst4 = (uint *) dst;
|
||||
int j;
|
||||
@@ -890,7 +890,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
{
|
||||
uint *dst4 = (uint *) dst;
|
||||
int j;
|
||||
|
||||
@@ -238,13 +238,13 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
|
||||
strb->software = sw;
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
strb->Base.InternalFormat = GL_RGBA;
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
@@ -253,10 +253,10 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
strb->Base.InternalFormat = GL_DEPTH_COMPONENT32;
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
|
||||
@@ -108,7 +108,7 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
memcpy(sValues, src, width);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||
const GLfloat scale = 1.0f / (0xffffff);
|
||||
@@ -126,7 +126,7 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||
const GLfloat scale = 1.0f / (0xffffff);
|
||||
@@ -214,15 +214,15 @@ st_fast_readpixels(GLcontext *ctx, struct st_renderbuffer *strb,
|
||||
if (ctx->_ImageTransferState)
|
||||
return GL_FALSE;
|
||||
|
||||
if (strb->format == PIPE_FORMAT_A8R8G8B8_UNORM &&
|
||||
if (strb->format == PIPE_FORMAT_B8G8R8A8_UNORM &&
|
||||
format == GL_RGBA && type == GL_UNSIGNED_BYTE) {
|
||||
combo = A8R8G8B8_UNORM_TO_RGBA_UBYTE;
|
||||
}
|
||||
else if (strb->format == PIPE_FORMAT_A8R8G8B8_UNORM &&
|
||||
else if (strb->format == PIPE_FORMAT_B8G8R8A8_UNORM &&
|
||||
format == GL_RGB && type == GL_UNSIGNED_BYTE) {
|
||||
combo = A8R8G8B8_UNORM_TO_RGB_UBYTE;
|
||||
}
|
||||
else if (strb->format == PIPE_FORMAT_A8R8G8B8_UNORM &&
|
||||
else if (strb->format == PIPE_FORMAT_B8G8R8A8_UNORM &&
|
||||
format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8_REV) {
|
||||
combo = A8R8G8B8_UNORM_TO_BGRA_UINT;
|
||||
}
|
||||
@@ -429,8 +429,8 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
const GLint dstStride = _mesa_image_row_stride(&clippedPacking, width,
|
||||
format, type);
|
||||
|
||||
if (trans->texture->format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
trans->texture->format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||
if (trans->texture->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
trans->texture->format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||
if (format == GL_DEPTH_COMPONENT) {
|
||||
for (i = 0; i < height; i++) {
|
||||
GLuint ztemp[MAX_WIDTH];
|
||||
@@ -461,8 +461,8 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (trans->texture->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
trans->texture->format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||
else if (trans->texture->format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
trans->texture->format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||
if (format == GL_DEPTH_COMPONENT) {
|
||||
for (i = 0; i < height; i++) {
|
||||
GLuint ztemp[MAX_WIDTH];
|
||||
|
||||
@@ -183,7 +183,7 @@ st_pipe_vertex_format(GLenum type, GLuint size, GLenum format,
|
||||
/* this is an odd-ball case */
|
||||
assert(type == GL_UNSIGNED_BYTE);
|
||||
assert(normalized);
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
}
|
||||
|
||||
if (normalized) {
|
||||
|
||||
@@ -270,28 +270,28 @@ void st_init_extensions(struct st_context *st)
|
||||
/* GL_EXT_packed_depth_stencil requires both the ability to render to
|
||||
* a depth/stencil buffer and texture from depth/stencil source.
|
||||
*/
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0) &&
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0)) {
|
||||
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
||||
}
|
||||
else if (screen->is_format_supported(screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
else if (screen->is_format_supported(screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0) &&
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0)) {
|
||||
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
||||
}
|
||||
|
||||
/* sRGB support */
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_R8G8B8A8_SRGB,
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_A8B8G8R8_SRGB,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0) ||
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_B8G8R8A8_SRGB,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0)) {
|
||||
ctx->Extensions.EXT_texture_sRGB = GL_TRUE;
|
||||
@@ -310,10 +310,10 @@ void st_init_extensions(struct st_context *st)
|
||||
}
|
||||
|
||||
/* ycbcr support */
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_YCBCR,
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_UYVY,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0) ||
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_YCBCR_REV,
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_YUYV,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0)) {
|
||||
ctx->Extensions.MESA_ycbcr_texture = GL_TRUE;
|
||||
|
||||
@@ -72,12 +72,12 @@ st_format_datatype(enum pipe_format format)
|
||||
assert(desc);
|
||||
|
||||
if (desc->layout == UTIL_FORMAT_LAYOUT_PLAIN) {
|
||||
if (format == PIPE_FORMAT_A1R5G5B5_UNORM ||
|
||||
format == PIPE_FORMAT_R5G6B5_UNORM) {
|
||||
if (format == PIPE_FORMAT_B5G5R5A1_UNORM ||
|
||||
format == PIPE_FORMAT_B5G6R5_UNORM) {
|
||||
return GL_UNSIGNED_SHORT;
|
||||
}
|
||||
else if (format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
format == PIPE_FORMAT_Z24S8_UNORM) {
|
||||
else if (format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
format == PIPE_FORMAT_S8Z24_UNORM) {
|
||||
return GL_UNSIGNED_INT_24_8;
|
||||
}
|
||||
else {
|
||||
@@ -103,10 +103,10 @@ st_format_datatype(enum pipe_format format)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (format == PIPE_FORMAT_YCBCR) {
|
||||
else if (format == PIPE_FORMAT_UYVY) {
|
||||
return GL_UNSIGNED_SHORT;
|
||||
}
|
||||
else if (format == PIPE_FORMAT_YCBCR_REV) {
|
||||
else if (format == PIPE_FORMAT_YUYV) {
|
||||
return GL_UNSIGNED_SHORT;
|
||||
}
|
||||
else {
|
||||
@@ -129,17 +129,17 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
|
||||
/* fix this */
|
||||
case MESA_FORMAT_ARGB8888_REV:
|
||||
case MESA_FORMAT_ARGB8888:
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
case MESA_FORMAT_XRGB8888:
|
||||
return PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
return PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
case MESA_FORMAT_ARGB1555:
|
||||
return PIPE_FORMAT_A1R5G5B5_UNORM;
|
||||
return PIPE_FORMAT_B5G5R5A1_UNORM;
|
||||
case MESA_FORMAT_ARGB4444:
|
||||
return PIPE_FORMAT_A4R4G4B4_UNORM;
|
||||
return PIPE_FORMAT_B4G4R4A4_UNORM;
|
||||
case MESA_FORMAT_RGB565:
|
||||
return PIPE_FORMAT_R5G6B5_UNORM;
|
||||
return PIPE_FORMAT_B5G6R5_UNORM;
|
||||
case MESA_FORMAT_AL88:
|
||||
return PIPE_FORMAT_A8L8_UNORM;
|
||||
return PIPE_FORMAT_L8A8_UNORM;
|
||||
case MESA_FORMAT_A8:
|
||||
return PIPE_FORMAT_A8_UNORM;
|
||||
case MESA_FORMAT_L8:
|
||||
@@ -151,11 +151,11 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
|
||||
case MESA_FORMAT_Z32:
|
||||
return PIPE_FORMAT_Z32_UNORM;
|
||||
case MESA_FORMAT_Z24_S8:
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
case MESA_FORMAT_S8_Z24:
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
case MESA_FORMAT_S8_Z24:
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
case MESA_FORMAT_YCBCR:
|
||||
return PIPE_FORMAT_YCBCR;
|
||||
return PIPE_FORMAT_UYVY;
|
||||
#if FEATURE_texture_s3tc
|
||||
case MESA_FORMAT_RGB_DXT1:
|
||||
return PIPE_FORMAT_DXT1_RGB;
|
||||
@@ -178,15 +178,15 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
|
||||
#endif
|
||||
#if FEATURE_EXT_texture_sRGB
|
||||
case MESA_FORMAT_SLA8:
|
||||
return PIPE_FORMAT_A8L8_SRGB;
|
||||
return PIPE_FORMAT_L8A8_SRGB;
|
||||
case MESA_FORMAT_SL8:
|
||||
return PIPE_FORMAT_L8_SRGB;
|
||||
case MESA_FORMAT_SRGB8:
|
||||
return PIPE_FORMAT_R8G8B8_SRGB;
|
||||
case MESA_FORMAT_SRGBA8:
|
||||
return PIPE_FORMAT_R8G8B8A8_SRGB;
|
||||
return PIPE_FORMAT_A8B8G8R8_SRGB;
|
||||
case MESA_FORMAT_SARGB8:
|
||||
return PIPE_FORMAT_A8R8G8B8_SRGB;
|
||||
return PIPE_FORMAT_B8G8R8A8_SRGB;
|
||||
#endif
|
||||
default:
|
||||
assert(0);
|
||||
@@ -202,21 +202,21 @@ gl_format
|
||||
st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
return MESA_FORMAT_ARGB8888;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
return MESA_FORMAT_XRGB8888;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return MESA_FORMAT_ARGB8888_REV;
|
||||
return MESA_FORMAT_ARGB8888;
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
return MESA_FORMAT_XRGB8888;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
return MESA_FORMAT_ARGB8888_REV;
|
||||
case PIPE_FORMAT_X8R8G8B8_UNORM:
|
||||
return MESA_FORMAT_XRGB8888_REV;
|
||||
case PIPE_FORMAT_A1R5G5B5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
return MESA_FORMAT_ARGB1555;
|
||||
case PIPE_FORMAT_A4R4G4B4_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
return MESA_FORMAT_ARGB4444;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return MESA_FORMAT_RGB565;
|
||||
case PIPE_FORMAT_A8L8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
return MESA_FORMAT_AL88;
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
return MESA_FORMAT_A8;
|
||||
@@ -234,18 +234,18 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||
return MESA_FORMAT_Z16;
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
return MESA_FORMAT_Z32;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
return MESA_FORMAT_Z24_S8;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
return MESA_FORMAT_Z24_X8;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return MESA_FORMAT_X8_Z24;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
return MESA_FORMAT_Z24_S8;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return MESA_FORMAT_Z24_X8;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
return MESA_FORMAT_X8_Z24;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
return MESA_FORMAT_S8_Z24;
|
||||
|
||||
case PIPE_FORMAT_YCBCR:
|
||||
case PIPE_FORMAT_UYVY:
|
||||
return MESA_FORMAT_YCBCR;
|
||||
case PIPE_FORMAT_YCBCR_REV:
|
||||
case PIPE_FORMAT_YUYV:
|
||||
return MESA_FORMAT_YCBCR_REV;
|
||||
|
||||
#if FEATURE_texture_s3tc
|
||||
@@ -270,15 +270,15 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||
#endif
|
||||
|
||||
#if FEATURE_EXT_texture_sRGB
|
||||
case PIPE_FORMAT_A8L8_SRGB:
|
||||
case PIPE_FORMAT_L8A8_SRGB:
|
||||
return MESA_FORMAT_SLA8;
|
||||
case PIPE_FORMAT_L8_SRGB:
|
||||
return MESA_FORMAT_SL8;
|
||||
case PIPE_FORMAT_R8G8B8_SRGB:
|
||||
return MESA_FORMAT_SRGB8;
|
||||
case PIPE_FORMAT_R8G8B8A8_SRGB:
|
||||
case PIPE_FORMAT_A8B8G8R8_SRGB:
|
||||
return MESA_FORMAT_SRGBA8;
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
return MESA_FORMAT_SARGB8;
|
||||
#endif
|
||||
default:
|
||||
@@ -298,10 +298,10 @@ default_rgba_format(struct pipe_screen *screen,
|
||||
unsigned geom_flags)
|
||||
{
|
||||
static const enum pipe_format colorFormats[] = {
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM,
|
||||
PIPE_FORMAT_R5G6B5_UNORM
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8B8G8R8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM
|
||||
};
|
||||
uint i;
|
||||
for (i = 0; i < Elements(colorFormats); i++) {
|
||||
@@ -322,13 +322,13 @@ default_rgb_format(struct pipe_screen *screen,
|
||||
unsigned geom_flags)
|
||||
{
|
||||
static const enum pipe_format colorFormats[] = {
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8X8_UNORM,
|
||||
PIPE_FORMAT_R8G8B8X8_UNORM,
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_X8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_X8B8G8R8_UNORM,
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_R8G8B8A8_UNORM,
|
||||
PIPE_FORMAT_R5G6B5_UNORM
|
||||
PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_FORMAT_A8B8G8R8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM
|
||||
};
|
||||
uint i;
|
||||
for (i = 0; i < Elements(colorFormats); i++) {
|
||||
@@ -349,9 +349,9 @@ default_srgba_format(struct pipe_screen *screen,
|
||||
unsigned geom_flags)
|
||||
{
|
||||
static const enum pipe_format colorFormats[] = {
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB,
|
||||
PIPE_FORMAT_R8G8B8A8_SRGB,
|
||||
PIPE_FORMAT_A8R8G8B8_SRGB,
|
||||
PIPE_FORMAT_A8B8G8R8_SRGB,
|
||||
};
|
||||
uint i;
|
||||
for (i = 0; i < Elements(colorFormats); i++) {
|
||||
@@ -393,8 +393,8 @@ default_depth_format(struct pipe_screen *screen,
|
||||
static const enum pipe_format zFormats[] = {
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM
|
||||
};
|
||||
uint i;
|
||||
for (i = 0; i < Elements(zFormats); i++) {
|
||||
@@ -439,13 +439,13 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
|
||||
case GL_RGBA4:
|
||||
case GL_RGBA2:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_A4R4G4B4_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_A4R4G4B4_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_B4G4R4A4_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_B4G4R4A4_UNORM;
|
||||
return default_rgba_format( screen, target, tex_usage, geom_flags );
|
||||
|
||||
case GL_RGB5_A1:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_A1R5G5B5_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_A1R5G5B5_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_B5G5R5A1_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_B5G5R5A1_UNORM;
|
||||
return default_rgba_format( screen, target, tex_usage, geom_flags );
|
||||
|
||||
case GL_RGB8:
|
||||
@@ -457,10 +457,10 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
case GL_RGB5:
|
||||
case GL_RGB4:
|
||||
case GL_R3_G3_B2:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_R5G6B5_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_R5G6B5_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_A1R5G5B5_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_A1R5G5B5_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_B5G6R5_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_B5G6R5_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_B5G5R5A1_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_B5G5R5A1_UNORM;
|
||||
return default_rgba_format( screen, target, tex_usage, geom_flags );
|
||||
|
||||
case GL_ALPHA:
|
||||
@@ -493,8 +493,8 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
case GL_LUMINANCE12_ALPHA12:
|
||||
case GL_LUMINANCE16_ALPHA16:
|
||||
case GL_COMPRESSED_LUMINANCE_ALPHA:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_A8L8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_A8L8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_L8A8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_L8A8_UNORM;
|
||||
return default_rgba_format( screen, target, tex_usage, geom_flags );
|
||||
|
||||
case GL_INTENSITY:
|
||||
@@ -508,13 +508,13 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
return default_rgba_format( screen, target, tex_usage, geom_flags );
|
||||
|
||||
case GL_YCBCR_MESA:
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_YCBCR,
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_UYVY,
|
||||
target, tex_usage, geom_flags)) {
|
||||
return PIPE_FORMAT_YCBCR;
|
||||
return PIPE_FORMAT_UYVY;
|
||||
}
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_YCBCR_REV,
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_YUYV,
|
||||
target, tex_usage, geom_flags)) {
|
||||
return PIPE_FORMAT_YCBCR_REV;
|
||||
return PIPE_FORMAT_YUYV;
|
||||
}
|
||||
return PIPE_FORMAT_NONE;
|
||||
|
||||
@@ -546,10 +546,10 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
return PIPE_FORMAT_Z16_UNORM;
|
||||
/* fall-through */
|
||||
case GL_DEPTH_COMPONENT24:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
/* fall-through */
|
||||
case GL_DEPTH_COMPONENT32:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z32_UNORM, target, tex_usage, geom_flags ))
|
||||
@@ -565,18 +565,18 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
case GL_STENCIL_INDEX16_EXT:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
return PIPE_FORMAT_NONE;
|
||||
|
||||
case GL_DEPTH_STENCIL_EXT:
|
||||
case GL_DEPTH24_STENCIL8_EXT:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
return PIPE_FORMAT_NONE;
|
||||
|
||||
case GL_SRGB_EXT:
|
||||
@@ -599,8 +599,8 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
case GL_SLUMINANCE8_ALPHA8_EXT:
|
||||
case GL_COMPRESSED_SLUMINANCE_EXT:
|
||||
case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_A8L8_SRGB, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_A8L8_SRGB;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_L8A8_SRGB, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_L8A8_SRGB;
|
||||
return default_srgba_format( screen, target, tex_usage, geom_flags );
|
||||
|
||||
case GL_SLUMINANCE_EXT:
|
||||
@@ -680,11 +680,11 @@ GLboolean
|
||||
st_equal_formats(enum pipe_format pFormat, GLenum format, GLenum type)
|
||||
{
|
||||
switch (pFormat) {
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8B8G8R8_UNORM:
|
||||
return format == GL_RGBA && type == GL_UNSIGNED_BYTE;
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
return format == GL_BGRA && type == GL_UNSIGNED_BYTE;
|
||||
case PIPE_FORMAT_R5G6B5_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
return format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5;
|
||||
/* XXX more combos... */
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user