diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c index 59cb46f..c5e5293 100644 --- a/src/radeon_exa_funcs.c +++ b/src/radeon_exa_funcs.c @@ -151,6 +151,10 @@ FUNC_NAME(RADEONDoneSolid)(PixmapPtr pPix) OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE); FINISH_ACCEL(); + +#ifdef ACCEL_CP + FLUSH_RING(); +#endif } void @@ -256,6 +260,10 @@ FUNC_NAME(RADEONDoneCopy)(PixmapPtr pDst) OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE); FINISH_ACCEL(); + +#ifdef ACCEL_CP + FLUSH_RING(); +#endif } diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 571204a..ef3ef15 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -2252,6 +2252,10 @@ static void FUNC_NAME(RadeonDoneComposite)(PixmapPtr pDst) OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN); FINISH_ACCEL(); +#ifdef ACCEL_CP + FLUSH_RING(); +#endif + LEAVE_DRAW(0); } diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c index 05acb93..4984f3a 100644 --- a/src/radeon_textured_videofuncs.c +++ b/src/radeon_textured_videofuncs.c @@ -2229,6 +2229,10 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN); FINISH_ACCEL(); +#ifdef ACCEL_CP + FLUSH_RING(); +#endif + DamageDamageRegion(pPriv->pDraw, &pPriv->clip); }