summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-08-23 12:59:09 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-08-23 13:05:52 -0400
commit41934be2544ac47a308719c08ee1bba344fed78d (patch)
treee2dbfe1b591b7a863ca7e65b7efde3de03a6d366
parentb34695375ea6dcf78a113041ed8beb20cea15c71 (diff)
r600: always emit CB base
Not doing so seems to cause lock-ups or rendering problems on some chips. I think there is an logic issue related to CB and VGT on some chips. We ran into similar issues in r600_demo IIRC.
-rw-r--r--src/mesa/drivers/dri/r600/r600_context.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c
index 6a066f3510..0b0c4f5049 100644
--- a/src/mesa/drivers/dri/r600/r600_context.c
+++ b/src/mesa/drivers/dri/r600/r600_context.c
@@ -185,7 +185,13 @@ static void r600_vtbl_emit_cs_header(struct radeon_cs *cs, radeonContextPtr rmes
static void r600_vtbl_pre_emit_atoms(radeonContextPtr radeon)
{
- r700Start3D((context_t *)radeon);
+ context_t *context = (context_t *)radeon;
+
+ /* always emit CB base to prevent
+ * lock ups on some chips.
+ */
+ R600_STATECHANGE(context, cb_target);
+ r700Start3D(context);
}
static void r600_fallback(GLcontext *ctx, GLuint bit, GLboolean mode)