st/xorg: Only damage non-front source in DRI2 CopyRegion hook.

Based on a vmwgfx xa/saa fix.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Michel Dänzer 2011-08-22 15:44:42 +02:00 committed by Michel Dänzer
parent 005aea891e
commit 751f0ce773

View file

@ -372,13 +372,15 @@ dri2_copy_region(DrawablePtr pDraw, RegionPtr pRegion,
save_accel = ms->exa->accel;
ms->exa->accel = TRUE;
/* In case it won't be though, make sure the GPU copy contents of the
* source pixmap will be used for the software fallback - presumably the
* client modified them before calling in here.
*/
exaMoveInPixmap(src_priv->pPixmap);
DamageRegionAppend(src_draw, pRegion);
DamageRegionProcessPending(src_draw);
if (pSrcBuffer->attachment != DRI2BufferFrontLeft) {
/* In case it won't be though, make sure the GPU copy contents of the
* source pixmap will be used for the software fallback - presumably the
* client modified them before calling in here.
*/
exaMoveInPixmap(src_priv->pPixmap);
DamageRegionAppend(src_draw, pRegion);
DamageRegionProcessPending(src_draw);
}
if (cust && cust->winsys_context_throttle)
cust->winsys_context_throttle(cust, ms->ctx, THROTTLE_SWAP);