File U_sna-Process-Damage-relative-to-dst-pDrawable-not-its.patch of Package xf86-video-intel.openSUSE_13.1_Update

From 4194100691347ccec4b1863f3f62987d9286707b Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon, 18 Nov 2013 12:33:05 +0000
Subject: [PATCH] sna: Process Damage relative to dst->pDrawable not its
 pixmap->drawable

References: https://bugs.freedesktop.org/show_bug.cgi?id=32734
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 src/sna/sna_composite.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index c5e2311c689a..6078d52593fe 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -902,15 +902,14 @@ sna_composite_rectangles(CARD8		 op,
 	     RegionExtents(&region)->x2, RegionExtents(&region)->y2,
 	     (long)RegionNumRects(&region)));
 
-	pixmap = get_drawable_pixmap(dst->pDrawable);
-
 	/* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must
 	 * manually append the damaged regions ourselves.
 	 *
 	 * Note that DamageRegionAppend() will apply the drawable-deltas itself.
 	 */
-	DamageRegionAppend(&pixmap->drawable, &region);
+	DamageRegionAppend(dst->pDrawable, &region);
 
+	pixmap = get_drawable_pixmap(dst->pDrawable);
 	if (get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y))
 		pixman_region_translate(&region, dst_x, dst_y);
 
@@ -1141,7 +1140,7 @@ fallback_composite:
 	}
 
 done:
-	DamageRegionProcessPending(&pixmap->drawable);
+	DamageRegionProcessPending(dst->pDrawable);
 
 cleanup_region:
 	pixman_region_fini(&region);
-- 
1.8.4.4

openSUSE Build Service is sponsored by