[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-intel: Changes to 'ubuntu'



 debian/changelog                                         |    7 +
 debian/patches/series                                    |    1 
 debian/patches/sna-make-sure-the-source-is-coherent.diff |   61 +++++++++++++++
 3 files changed, 69 insertions(+)

New commits:
commit dafde3c2fa205a90ab0a1509dcc835a54f645b45
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Tue Jun 11 20:26:15 2013 +0300

    sna-make-sure-the-source-is-coherent.diff: Fix corruptions on firefox (LP: #1189850)

diff --git a/debian/changelog b/debian/changelog
index 47626dc..0397dcd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-intel (2:2.21.9-0ubuntu2) saucy; urgency=low
+
+  * sna-make-sure-the-source-is-coherent.diff: Fix corruptions on firefox
+    (LP: #1189850)
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com>  Tue, 11 Jun 2013 20:10:33 +0300
+
 xserver-xorg-video-intel (2:2.21.9-0ubuntu1) saucy; urgency=low
 
   * Merge from unreleased debian git, remaining changes:
diff --git a/debian/patches/series b/debian/patches/series
index 23ed8a4..1bb2a98 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 0002-Update-manpage-for-new-accelmethod-option.patch
+sna-make-sure-the-source-is-coherent.diff
diff --git a/debian/patches/sna-make-sure-the-source-is-coherent.diff b/debian/patches/sna-make-sure-the-source-is-coherent.diff
new file mode 100644
index 0000000..eebbab2
--- /dev/null
+++ b/debian/patches/sna-make-sure-the-source-is-coherent.diff
@@ -0,0 +1,61 @@
+commit 7d91051c50210560dbd93a9e36f30d9f74ce9133
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jun 11 14:23:57 2013 +0100
+
+    sna: Make sure the source is coherent on the CPU before uploading
+    
+    Makes the presumption that for the upload path the region is stored on
+    the CPU explicit.
+    
+    References: https://bugs.freedesktop.org/show_bug.cgi?id=61628
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
+index 69a151c..1663fe3 100644
+--- a/src/sna/sna_accel.c
++++ b/src/sna/sna_accel.c
+@@ -4861,6 +4861,22 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
+ 			}
+ 		}
+ 
++		if (src_priv) {
++			bool ret;
++
++			RegionTranslate(region, src_dx, src_dy);
++			ret = sna_drawable_move_region_to_cpu(&src_pixmap->drawable,
++							      region, MOVE_READ);
++			RegionTranslate(region, -src_dx, -src_dy);
++			if (!ret)
++				goto fallback;
++
++			assert(!src_priv->mapped);
++			if (src_pixmap->devPrivate.ptr == NULL)
++				/* uninitialised!*/
++				return;
++		}
++
+ 		if (alu != GXcopy) {
+ 			PixmapPtr tmp;
+ 			struct kgem_bo *src_bo;
+@@ -4936,21 +4952,6 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
+ 			DBG(("%s: dst is on the GPU, src is on the CPU, uploading into dst\n",
+ 			     __FUNCTION__));
+ 
+-			if (src_priv) {
+-				/* Fixup the shadow pointer as necessary */
+-				if (src_priv->mapped) {
+-					assert(!src_priv->shm);
+-					src_pixmap->devPrivate.ptr = NULL;
+-					src_priv->mapped = false;
+-				}
+-				if (src_pixmap->devPrivate.ptr == NULL) {
+-					if (!src_priv->ptr) /* uninitialised!*/
+-						return;
+-					src_pixmap->devPrivate.ptr = PTR(src_priv->ptr);
+-					src_pixmap->devKind = src_priv->stride;
+-				}
+-			}
+-
+ 			if (!dst_priv->pinned && replaces) {
+ 				stride = src_pixmap->devKind;
+ 				bits = src_pixmap->devPrivate.ptr;


Reply to: