diff options
author | Dave Airlie <airlied@redhat.com> | 2009-12-06 22:16:06 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-16 01:10:45 -0500 |
commit | d785d78bbdb53580b12c40e820af5a3281ce2fc8 (patch) | |
tree | 080fad9ee53f058ee044e9bce4d151f860916be0 /drivers/gpu/drm/radeon/r200.c | |
parent | 6e7267721fd67d626433ea10c59fc232c6928259 (diff) |
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>
Diffstat (limited to 'drivers/gpu/drm/radeon/r200.c')
-rw-r--r-- | drivers/gpu/drm/radeon/r200.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c index eb740fc3549f..20942127c46b 100644 --- a/drivers/gpu/drm/radeon/r200.c +++ b/drivers/gpu/drm/radeon/r200.c | |||
@@ -401,7 +401,6 @@ int r200_packet0_check(struct radeon_cs_parser *p, | |||
401 | case R200_TXFORMAT_Y8: | 401 | case R200_TXFORMAT_Y8: |
402 | track->textures[i].cpp = 1; | 402 | track->textures[i].cpp = 1; |
403 | break; | 403 | break; |
404 | case R200_TXFORMAT_DXT1: | ||
405 | case R200_TXFORMAT_AI88: | 404 | case R200_TXFORMAT_AI88: |
406 | case R200_TXFORMAT_ARGB1555: | 405 | case R200_TXFORMAT_ARGB1555: |
407 | case R200_TXFORMAT_RGB565: | 406 | case R200_TXFORMAT_RGB565: |
@@ -418,9 +417,16 @@ int r200_packet0_check(struct radeon_cs_parser *p, | |||
418 | case R200_TXFORMAT_ABGR8888: | 417 | case R200_TXFORMAT_ABGR8888: |
419 | case R200_TXFORMAT_BGR111110: | 418 | case R200_TXFORMAT_BGR111110: |
420 | case R200_TXFORMAT_LDVDU8888: | 419 | case R200_TXFORMAT_LDVDU8888: |
420 | track->textures[i].cpp = 4; | ||
421 | break; | ||
422 | case R200_TXFORMAT_DXT1: | ||
423 | track->textures[i].cpp = 1; | ||
424 | track->textures[i].compress_format = R100_TRACK_COMP_DXT1; | ||
425 | break; | ||
421 | case R200_TXFORMAT_DXT23: | 426 | case R200_TXFORMAT_DXT23: |
422 | case R200_TXFORMAT_DXT45: | 427 | case R200_TXFORMAT_DXT45: |
423 | track->textures[i].cpp = 4; | 428 | track->textures[i].cpp = 1; |
429 | track->textures[i].compress_format = R100_TRACK_COMP_DXT1; | ||
424 | break; | 430 | break; |
425 | } | 431 | } |
426 | track->textures[i].cube_info[4].width = 1 << ((idx_value >> 16) & 0xf); | 432 | track->textures[i].cube_info[4].width = 1 << ((idx_value >> 16) & 0xf); |