- This fixes strange corruption i have been dealing it.
- When the driver handles the prepare access no copying is needed.
- Delayed pixmap creation should be fine, because it's handled by the
  first prepare access, but the exaPixmapIsOffscreen check in finish access
  will return FALSE without a driver pixmap.

Signed-off-by: Maarten Maathuis <[email protected]>
---
 exa/exa_migration_mixed.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
index 6065d75..0fbf1b2 100644
--- a/exa/exa_migration_mixed.c
+++ b/exa/exa_migration_mixed.c
@@ -210,7 +210,8 @@ void exaFinishAccess_mixed(PixmapPtr pPixmap, int index)
 {
     ExaPixmapPriv(pPixmap);
 
-    if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) {
+    if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap) &&
+           !pExaPixmap->offscreen) {
        DamageRegionProcessPending(&pPixmap->drawable);
 
        if (index == EXA_PREPARE_DEST || index == EXA_PREPARE_AUX_DEST) {
@@ -223,5 +224,7 @@ void exaFinishAccess_mixed(PixmapPtr pPixmap, int index)
            pPixmap->devKind = pExaPixmap->fb_pitch;
        } else
            exaMoveInPixmap_mixed(pPixmap);
+
+       pExaPixmap->offscreen = TRUE;
     }
 }
-- 
1.6.5.1

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to