xserver: Branch 'master'

Maarten Maathuis madman2003 at kemper.freedesktop.org
Tue Aug 26 11:04:19 PDT 2008


 exa/exa_accel.c     |    2 +-
 exa/exa_migration.c |    6 +++---
 exa/exa_priv.h      |    2 +-
 exa/exa_render.c    |    6 +++---
 4 files changed, 8 insertions(+), 8 deletions(-)

New commits:
commit dd1e54d6eed0bce289517b3cb95e6b1a187ca6e0
Author: Maarten Maathuis <madman2003 at gmail.com>
Date:   Tue Aug 26 20:02:55 2008 +0200

    exa: fix thinko from 988725f32e082aee9392a71464125157a83d1e67
    - the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index d586fd8..c3cf365 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -307,7 +307,7 @@ exaShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, unsigned int format,
 
     if (pending_damage) {
 	REGION_INIT(pScreen, &region, &box, 1);
-	exaDamageDestForMigration(pPixmap, &region);
+	exaDamageDestForMigration(pDrawable, pPixmap, &region);
     }
 
     if (!exaDoShmPutImage(pDrawable, pGC, depth, format, w, h, sx, sy, sw, sh,
diff --git a/exa/exa_migration.c b/exa/exa_migration.c
index 0137815..2bb2ad9 100644
--- a/exa/exa_migration.c
+++ b/exa/exa_migration.c
@@ -53,9 +53,9 @@
  * because their calls are wrapped by the damage layer.
  */
 Bool
-exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region)
+exaDamageDestForMigration(DrawablePtr pDrawable, PixmapPtr pPix, RegionPtr region)
 {
-    ScreenPtr pScreen = pPix->drawable.pScreen;
+    ScreenPtr pScreen = pDrawable->pScreen;
     (void) pScreen; /* the macros don't use pScreen currently */
     ExaPixmapPriv (pPix);
     int x_offset, y_offset;
@@ -64,7 +64,7 @@ exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region)
     if (!pExaPixmap->pDamage)
 	return FALSE;
 
-    exaGetDrawableDeltas(&pPix->drawable, pPix, &x_offset, &y_offset);
+    exaGetDrawableDeltas(pDrawable, pPix, &x_offset, &y_offset);
 
     REGION_TRANSLATE(pScreen, region, x_offset, y_offset);
     pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
diff --git a/exa/exa_priv.h b/exa/exa_priv.h
index 7decf8f..ca7122b 100644
--- a/exa/exa_priv.h
+++ b/exa/exa_priv.h
@@ -504,6 +504,6 @@ void
 exaPixmapSave (ScreenPtr pScreen, ExaOffscreenArea *area);
 
 Bool
-exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region);
+exaDamageDestForMigration(DrawablePtr pDrawable, PixmapPtr pPix, RegionPtr region);
 
 #endif /* EXAPRIV_H */
diff --git a/exa/exa_render.c b/exa/exa_render.c
index 88ea29a..bafa309 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -518,7 +518,7 @@ exaCompositeRects(CARD8	              op,
 
 	REGION_INIT(pScreen, &region, &box, 1);
     
-	exaDamageDestForMigration(pPixmap, &region);
+	exaDamageDestForMigration(pDst->pDrawable, pPixmap, &region);
     }
     
     /************************************************************/
@@ -1073,7 +1073,7 @@ exaTrapezoids (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
 	    bounds.y2 += pDraw->y;
 
 	    REGION_INIT(pScreen, &migration, &bounds, 1);
-	    exaDamageDestForMigration(pixmap, &migration);
+	    exaDamageDestForMigration(pDraw, pixmap, &migration);
 	}
 
 	exaPrepareAccess(pDraw, EXA_PREPARE_DEST);
@@ -1177,7 +1177,7 @@ exaTriangles (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
 	    bounds.y2 += pDraw->y;
 
 	    REGION_INIT(pScreen, &migration, &bounds, 1);
-	    exaDamageDestForMigration(pixmap, &migration);
+	    exaDamageDestForMigration(pDraw, pixmap, &migration);
 	}
 
 	exaPrepareAccess(pDraw, EXA_PREPARE_DEST);


More information about the xorg-commit mailing list