summaryrefslogtreecommitdiff
path: root/src
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
parent577ff3ce922e457cc32f80d4365cb1da81552e72 (diff)
Properly let radeon_cs_flush_indirect() re-emit 2D state if necessary.
Also remove a superfluous assignment.
Diffstat (limited to 'src')
-rw-r--r--src/radeon_exa_funcs.c2
-rw-r--r--src/radeon_kms.c5
2 files changed, 2 insertions, 5 deletions
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index 599084f2..605e5988 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -222,7 +222,6 @@ FUNC_NAME(RADEONSolid)(PixmapPtr pPix, int x1, int y1, int x2, int y2)
if (info->cs && CS_FULL(info->cs)) {
FUNC_NAME(RADEONDone2D)(info->accel_state->dst_pix);
radeon_cs_flush_indirect(pScrn);
- FUNC_NAME(Emit2DState)(pScrn, RADEON_2D_EXA_SOLID);
}
#endif
@@ -333,7 +332,6 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst,
if (info->cs && CS_FULL(info->cs)) {
FUNC_NAME(RADEONDone2D)(info->accel_state->dst_pix);
radeon_cs_flush_indirect(pScrn);
- FUNC_NAME(Emit2DState)(pScrn, RADEON_2D_EXA_COPY);
}
#endif
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);
}