diff options
author | Roland Scheidegger <[email protected]> | 2007-11-22 02:55:25 +0100 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2007-11-22 02:55:25 +0100 |
commit | 24af5c44da2b57707976728c9374f44b20b4efe4 (patch) | |
tree | 07430f84a957467708c4280782a2b5fae784b250 | |
parent | 75efacf8eb725049525ed724482ffeace76dd2fd (diff) |
fix z buffer read/write issue with rv100-like chips and old ddx
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_screen.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c index c2057eaec68..e5d48d40ed1 100644 --- a/src/mesa/drivers/dri/radeon/radeon_screen.c +++ b/src/mesa/drivers/dri/radeon/radeon_screen.c @@ -702,7 +702,11 @@ radeonCreateScreen( __DRIscreenPrivate *sPriv ) screen->depthPitch = dri_priv->depthPitch; /* Check if ddx has set up a surface reg to cover depth buffer */ - screen->depthHasSurface = (sPriv->ddxMajor > 4); + screen->depthHasSurface = (sPriv->ddxMajor > 4) || + /* these chips don't use tiled z without hyperz. So always pretend + we have set up a surface which will cause linear reads/writes */ + ((screen->chip_family & RADEON_CLASS_R100) && + !(screen->chip_flags & RADEON_CHIPSET_TCL)); if ( dri_priv->textureSize == 0 ) { screen->texOffset[RADEON_LOCAL_TEX_HEAP] = screen->gart_texture_offset; |