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

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



 debian/changelog                                     |    7 +
 debian/patches/fix-sna-external-slave-rotation.patch |   69 +++++++++++++++++++
 debian/patches/series                                |    2 
 3 files changed, 78 insertions(+)

New commits:
commit 36fa1a6f15b2f2675a375c5a2d1a2f22f061d7f5
Author: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Date:   Tue Jan 13 15:16:15 2015 +0100

    release to vivid

diff --git a/debian/changelog b/debian/changelog
index 1a095f7..a41fdf9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-intel (2:2.99.917-1~exp1ubuntu2) UNRELEASED; urgency=medium
+xserver-xorg-video-intel (2:2.99.917-1~exp1ubuntu2) vivid; urgency=medium
 
   * Fix rotating external display with optimus results in corruption.
     - fix-sna-external-slave-rotation.patch (LP: #1410238)
 
- -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Tue, 13 Jan 2015 13:57:51 +0100
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Tue, 13 Jan 2015 15:16:03 +0100
 
 xserver-xorg-video-intel (2:2.99.917-1~exp1ubuntu1) vivid; urgency=medium
 

commit 502cb697638ff25f12e413efc47296c7250cd187
Author: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Date:   Tue Jan 13 14:32:52 2015 +0100

    Fix rotating external display with optimus results in corruption.
    
    fix-sna-external-slave-rotation.patch (LP: #1410238)

diff --git a/debian/changelog b/debian/changelog
index ff83a1b..1a095f7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-intel (2:2.99.917-1~exp1ubuntu2) UNRELEASED; urgency=medium
+
+  * Fix rotating external display with optimus results in corruption.
+    - fix-sna-external-slave-rotation.patch (LP: #1410238)
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Tue, 13 Jan 2015 13:57:51 +0100
+
 xserver-xorg-video-intel (2:2.99.917-1~exp1ubuntu1) vivid; urgency=medium
 
   * Merge from Debian experimental.
diff --git a/debian/patches/fix-sna-external-slave-rotation.patch b/debian/patches/fix-sna-external-slave-rotation.patch
new file mode 100644
index 0000000..80b79f3
--- /dev/null
+++ b/debian/patches/fix-sna-external-slave-rotation.patch
@@ -0,0 +1,69 @@
+commit 1cffbd9a8e96642bdbabf4e40829a5f1473b5bf9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Tue Jan 13 10:50:36 2015 +0000
+
+    sna: Combine slave CRTC offsets with rotation
+    
+    When applying both a slave offset and an output rotation, order is
+    important. To get the order right, we need to combine the two into a
+    single transformation.
+    
+    Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
+index 569c585..0657c47 100644
+--- a/src/sna/sna_display.c
++++ b/src/sna/sna_display.c
+@@ -6696,6 +6696,7 @@ sna_crtc_redisplay__fallback(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo
+ 	ScreenPtr screen = sna->scrn->pScreen;
+ 	DrawablePtr draw = crtc_source(crtc, &sx, &sy);
+ 	PictFormatPtr format;
++	PictTransform T;
+ 	PicturePtr src, dst;
+ 	PixmapPtr pixmap;
+ 	int depth, error;
+@@ -6735,9 +6736,14 @@ sna_crtc_redisplay__fallback(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo
+ 	if (!src)
+ 		goto free_pixmap;
+ 
+-	error = SetPictureTransform(src, &crtc->crtc_to_framebuffer);
+-	if (error)
+-		goto free_src;
++	pixman_transform_init_translate(&T, sx << 16, sy << 16);
++	pixman_transform_multiply(&T, &T, &crtc->crtc_to_framebuffer);
++	if (!sna_transform_is_integer_translation(&T, &sx, &sy)) {
++		error = SetPictureTransform(src, &T);
++		if (error)
++			goto free_src;
++		sx = sy = 0;
++	}
+ 
+ 	if (crtc->filter && crtc->transform_in_use)
+ 		SetPicturePictFilter(src, crtc->filter,
+@@ -6789,6 +6795,7 @@ sna_crtc_redisplay__composite(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo
+ 	DrawablePtr draw = crtc_source(crtc, &sx, &sy);
+ 	struct sna_composite_op tmp;
+ 	PictFormatPtr format;
++	PictTransform T;
+ 	PicturePtr src, dst;
+ 	PixmapPtr pixmap;
+ 	const BoxRec *b;
+@@ -6829,9 +6836,14 @@ sna_crtc_redisplay__composite(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo
+ 	if (!src)
+ 		goto free_pixmap;
+ 
+-	error = SetPictureTransform(src, &crtc->crtc_to_framebuffer);
+-	if (error)
+-		goto free_src;
++	pixman_transform_init_translate(&T, sx << 16, sy << 16);
++	pixman_transform_multiply(&T, &T, &crtc->crtc_to_framebuffer);
++	if (!sna_transform_is_integer_translation(&T, &sx, &sy)) {
++		error = SetPictureTransform(src, &T);
++		if (error)
++			goto free_src;
++		sx = sy = 0;
++	}
+ 
+ 	if (crtc->filter && crtc->transform_in_use)
+ 		SetPicturePictFilter(src, crtc->filter,
diff --git a/debian/patches/series b/debian/patches/series
index 99afa45..6229fcf 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,4 @@
+fix-sna-external-slave-rotation.patch
+
 # XMir series
 xmir.patch


Reply to: