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:
committed by
Michel Dänzer
parent
005aea891e
commit
751f0ce773
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user