summaryrefslogtreecommitdiff
path: root/src/radeon_kms.c
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-08-07 11:56:50 +0200
committerMichel Dänzer <daenzer@vmware.com>2009-08-07 11:56:50 +0200
commitcd99d9f0d715f1f74de4fe22f2fd30046f2c7568 (patch)
tree5101ac3c1f2e283bd152eceb24e69d6fae930150 /src/radeon_kms.c
parent577ff3ce922e457cc32f80d4365cb1da81552e72 (diff)
Properly let radeon_cs_flush_indirect() re-emit 2D state if necessary.
Also remove a superfluous assignment.
Diffstat (limited to 'src/radeon_kms.c')
-rw-r--r--src/radeon_kms.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 148386b1..d93a40b2 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -84,8 +84,8 @@ void radeon_cs_flush_indirect(ScrnInfoPtr pScrn)
if (ret)
ErrorF("space check failed in flush\n");
- if (info->reemit_current2d)
- info->reemit_current2d(pScrn, 0);
+ if (info->reemit_current2d && info->state_2d.op)
+ info->reemit_current2d(pScrn, info->state_2d.op);
if (info->dri2.enabled) {
info->accel_state->XInited3D = FALSE;
info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN;
@@ -169,7 +169,6 @@ static void RADEONBlockHandler_KMS(int i, pointer blockData,
if (info->VideoTimerCallback)
(*info->VideoTimerCallback)(pScrn, currentTime.milliseconds);
- info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN;
radeon_cs_flush_indirect(pScrn);
}