From 5b1a7b478f072f56e836f2d4c0fbc1985842e2bb Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 10 Mar 2006 21:32:34 +0000 Subject: [PATCH] Move the exaDrawableDirty in exaPrepareAccess to exaFinishAccess, which is after the drawing is done. Previously, a failed PrepareAccess could have migrated and cleared the dirty flag before the damage was ever done. --- ChangeLog | 8 ++++++++ exa/exa.c | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9a7876bce..c238bb4d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-03-10 Eric Anholt + + * exa/exa.c: (exaPrepareAccess), (exaFinishAccess): + Move the exaDrawableDirty in exaPrepareAccess to exaFinishAccess, which + is after the drawing is done. Previously, a failed PrepareAccess could + have migrated and cleared the dirty flag before the damage was ever + done. + 2006-03-10 Eric Anholt * hw/xfree86/vbe/vbe.c: (vbeProbeDDC): diff --git a/exa/exa.c b/exa/exa.c index 7d72954c5..ffb80dd37 100644 --- a/exa/exa.c +++ b/exa/exa.c @@ -230,8 +230,6 @@ exaPrepareAccess(DrawablePtr pDrawable, int index) pPixmap = exaGetDrawablePixmap (pDrawable); - if (index == EXA_PREPARE_DEST) - exaDrawableDirty (pDrawable); if (exaPixmapIsOffscreen (pPixmap)) exaWaitSync (pDrawable->pScreen); else @@ -255,6 +253,9 @@ exaFinishAccess(DrawablePtr pDrawable, int index) ExaScreenPriv (pScreen); PixmapPtr pPixmap; + if (index == EXA_PREPARE_DEST) + exaDrawableDirty (pDrawable); + if (pExaScr->info->FinishAccess == NULL) return;