fix issues with reverse prime and present.

This commit is contained in:
Dave Airlie 2016-02-15 13:06:59 +10:00
parent fecb042398
commit 1516fd7069
2 changed files with 47 additions and 1 deletions

View File

@ -0,0 +1,41 @@
From b0c7318ecc3e3817f8cf3519d229640a1ff73712 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@gmail.com>
Date: Tue, 9 Feb 2016 16:46:52 +1000
Subject: [PATCH] present: fail flipping if we have any slave outputs.
Due to the way present currently works, we don't ever
check with the secondary adapters if we can flip at all.
We shouldn't flip if the secondary adapters are attached
to the pixmap currently, however using the current check_flip
callback isn't possible as it passes the Window to the driver
(something we shouldn't be doing), so the slave driver can never
get it's own screen ptr back.
For now to fix the problem just block flips if we have any
slaves configured. We can fix the ABI up later, but this
fix can be backported to stable.
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
present/present.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/present/present.c b/present/present.c
index 8cf3b6f..cb3c7ea 100644
--- a/present/present.c
+++ b/present/present.c
@@ -122,6 +122,10 @@ present_check_flip(RRCrtcPtr crtc,
if (!screen_priv->info->flip)
return FALSE;
+ /* Fail to flip if we have slave outputs */
+ if (!xorg_list_is_empty(&screen->output_slave_list))
+ return FALSE;
+
/* Make sure the window hasn't been redirected with Composite */
window_pixmap = screen->GetWindowPixmap(window);
if (window_pixmap != screen->GetScreenPixmap(screen) &&
--
2.5.0

View File

@ -45,7 +45,7 @@
Summary: X.Org X11 X server Summary: X.Org X11 X server
Name: xorg-x11-server Name: xorg-x11-server
Version: 1.18.1 Version: 1.18.1
Release: 1%{?gitdate:.%{gitdate}}%{dist} Release: 2%{?gitdate:.%{gitdate}}%{dist}
URL: http://www.x.org URL: http://www.x.org
License: MIT License: MIT
Group: User Interface/X Group: User Interface/X
@ -91,6 +91,8 @@ Patch7027: xserver-autobind-hotplug.patch
# submitted: http://lists.x.org/archives/xorg-devel/2013-October/037996.html # submitted: http://lists.x.org/archives/xorg-devel/2013-October/037996.html
Patch9100: exa-only-draw-valid-trapezoids.patch Patch9100: exa-only-draw-valid-trapezoids.patch
Patch9101: 0001-present-fail-flipping-if-we-have-any-slave-outputs.patch
# because the display-managers are not ready yet, do not upstream # because the display-managers are not ready yet, do not upstream
Patch10000: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch Patch10000: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
@ -630,6 +632,9 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
%changelog %changelog
* Mon Feb 15 2016 Dave Airlie <airlied@redhat.com> 1.18.1-2
- fix issues with reverse prime and present.
* Mon Feb 08 2016 Adam Jackson <ajax@redhat.com> 1.18.1-1 * Mon Feb 08 2016 Adam Jackson <ajax@redhat.com> 1.18.1-1
- xserver 1.18.1 - xserver 1.18.1