Mesa (master): r600c: emit DB_HTILE_DATA_BASE on evergreen
Alex Deucher
agd5f at kemper.freedesktop.org
Fri Sep 3 05:16:09 UTC 2010
Module: Mesa
Branch: master
Commit: b009d50f4465d2b38613b5f8664121f56932f1c5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b009d50f4465d2b38613b5f8664121f56932f1c5
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Fri Sep 3 01:13:41 2010 -0400
r600c: emit DB_HTILE_DATA_BASE on evergreen
Make the hw happy.
---
src/mesa/drivers/dri/r600/evergreen_chip.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/r600/evergreen_chip.c b/src/mesa/drivers/dri/r600/evergreen_chip.c
index f925f21..da61c44 100644
--- a/src/mesa/drivers/dri/r600/evergreen_chip.c
+++ b/src/mesa/drivers/dri/r600/evergreen_chip.c
@@ -898,9 +898,6 @@ static void evergreenSendDB(GLcontext *ctx, struct radeon_state_atom *atom)
R600_OUT_BATCH(evergreen->DB_DEPTH_VIEW.u32All);
R600_OUT_BATCH(evergreen->DB_RENDER_OVERRIDE.u32All);
R600_OUT_BATCH(evergreen->DB_RENDER_OVERRIDE2.u32All);
- /*
- R600_OUT_BATCH(evergreen->DB_HTILE_DATA_BASE.u32All);
- */
END_BATCH();
//4
@@ -943,6 +940,16 @@ static void evergreenSendDB(GLcontext *ctx, struct radeon_state_atom *atom)
rrb = radeon_get_depthbuffer(&context->radeon);
if( (rrb != NULL) && (rrb->bo != NULL) )
{
+
+ /* make the hw happy */
+ BEGIN_BATCH_NO_AUTOSTATE(3 + 2);
+ EVERGREEN_OUT_BATCH_REGVAL(EG_DB_HTILE_DATA_BASE, evergreen->DB_HTILE_DATA_BASE.u32All);
+ R600_OUT_BATCH_RELOC(evergreen->DB_HTILE_DATA_BASE.u32All,
+ rrb->bo,
+ evergreen->DB_HTILE_DATA_BASE.u32All,
+ 0, RADEON_GEM_DOMAIN_VRAM, 0);
+ END_BATCH();
+
//5
BEGIN_BATCH_NO_AUTOSTATE(3 + 2);
EVERGREEN_OUT_BATCH_REGVAL(EG_DB_Z_INFO, evergreen->DB_Z_INFO.u32All);
@@ -1277,7 +1284,7 @@ void evergreenInitAtoms(context_t *context)
EVERGREEN_ALLOC_STATE(spi, always, 59, evergreenSendSPI);
EVERGREEN_ALLOC_STATE(sx, always, 9, evergreenSendSX);
EVERGREEN_ALLOC_STATE(tx, evergreen_tx, (R700_TEXTURE_NUMBERUNITS * (21+5) + 6), evergreenSendTexState); /* 21 for resource, 5 for sampler */
- EVERGREEN_ALLOC_STATE(db, always, 60, evergreenSendDB);
+ EVERGREEN_ALLOC_STATE(db, always, 65, evergreenSendDB);
EVERGREEN_ALLOC_STATE(cb, always, 35, evergreenSendCB);
EVERGREEN_ALLOC_STATE(vgt, always, 29, evergreenSendVGT);
EVERGREEN_ALLOC_STATE(timestamp, always, 3, evergreenSendTIMESTAMP);
More information about the mesa-commit
mailing list