drm/radeon/kms: fix r100->r500 CS checker for compressed textures. (v2)
This adds support for compressed textures to the r100->r500 CS checker, it lets me run openarena and the demos in mesa fine. Thanks to Maciej Cencora for initial comments. Changes since v1: fix calculations with Maciej formulas Reviewed-by: Maciej Cencora <m.cencora@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -860,7 +860,6 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
|
||||
case R300_TX_FORMAT_Z6Y5X5:
|
||||
case R300_TX_FORMAT_W4Z4Y4X4:
|
||||
case R300_TX_FORMAT_W1Z5Y5X5:
|
||||
case R300_TX_FORMAT_DXT1:
|
||||
case R300_TX_FORMAT_D3DMFT_CxV8U8:
|
||||
case R300_TX_FORMAT_B8G8_B8G8:
|
||||
case R300_TX_FORMAT_G8R8_G8B8:
|
||||
@@ -874,8 +873,6 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
|
||||
case 0x17:
|
||||
case R300_TX_FORMAT_FL_I32:
|
||||
case 0x1e:
|
||||
case R300_TX_FORMAT_DXT3:
|
||||
case R300_TX_FORMAT_DXT5:
|
||||
track->textures[i].cpp = 4;
|
||||
break;
|
||||
case R300_TX_FORMAT_W16Z16Y16X16:
|
||||
@@ -886,6 +883,15 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
|
||||
case R300_TX_FORMAT_FL_R32G32B32A32:
|
||||
track->textures[i].cpp = 16;
|
||||
break;
|
||||
case R300_TX_FORMAT_DXT1:
|
||||
track->textures[i].cpp = 1;
|
||||
track->textures[i].compress_format = R100_TRACK_COMP_DXT1;
|
||||
break;
|
||||
case R300_TX_FORMAT_DXT3:
|
||||
case R300_TX_FORMAT_DXT5:
|
||||
track->textures[i].cpp = 1;
|
||||
track->textures[i].compress_format = R100_TRACK_COMP_DXT35;
|
||||
break;
|
||||
default:
|
||||
DRM_ERROR("Invalid texture format %u\n",
|
||||
(idx_value & 0x1F));
|
||||
|
Reference in New Issue
Block a user