summaryrefslogtreecommitdiff
path: root/src/radeon_exa_render.c
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.com>2008-06-25 15:50:16 -0400
committerAlex Deucher <alex@botch2.com>2008-06-25 15:50:16 -0400
commitbb1cfcbfbc1ace1f257fc3bf6401501f1a6da827 (patch)
tree6746eec8ae2caa8f704692d9dc5b0d61bc428c08 /src/radeon_exa_render.c
parent07be302f6dba61dd15918963fae66502230c74b7 (diff)
RADEON: adjustments to Jerome's last commit
- Flush caches and wait for idle after drawing - Make sure 3D is idle too (after composite or textured video)
Diffstat (limited to 'src/radeon_exa_render.c')
-rw-r--r--src/radeon_exa_render.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index 2319e3bb..8a1849c7 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -2114,18 +2114,13 @@ static void FUNC_NAME(RadeonDoneComposite)(PixmapPtr pDst)
ENTER_DRAW(0);
- if (IS_R500_3D || ((info->ChipFamily == CHIP_FAMILY_RS400) ||
- (info->ChipFamily == CHIP_FAMILY_RS480) ||
- (info->ChipFamily == CHIP_FAMILY_RS600) ||
- (info->ChipFamily == CHIP_FAMILY_RS690) ||
- (info->ChipFamily == CHIP_FAMILY_RS740))) {
- /* r500 shows corruption on small things like glyphs without a 3D idle
- * IGP shows more substantial corruption
- */
+ if (IS_R300_3D | IS_R500_3D) {
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL);
+ } else
BEGIN_ACCEL(1);
- OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
- FINISH_ACCEL();
- }
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
+ FINISH_ACCEL();
LEAVE_DRAW(0);
}