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.lankho...@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.lankho...@ubuntu.com> Tue, 13 Jan 2015 13:57:51 +0100 + -- Maarten Lankhorst <maarten.lankho...@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.lankho...@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.lankho...@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 <ch...@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.lankho...@canonical.com> + Signed-off-by: Chris Wilson <ch...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1yb2qi-00057x...@moszumanska.debian.org