pull in candidate fix for clients getting stuck waiting indefinitely
for an idle event when a CRTC is turned off (#1256082,#1258084)
This commit is contained in:
parent
0307fa93a6
commit
fc966ac646
@ -0,0 +1,60 @@
|
||||
From e3cdf29473a15790d4dab818f42df429997d2dda Mon Sep 17 00:00:00 2001
|
||||
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||
Date: Wed, 16 Sep 2015 11:26:22 -0500
|
||||
Subject: [PATCH] present: Don't stash the MSC value when present_get_ust_msc
|
||||
fails
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Otherwise we stash an uninitalized value, and later use it to compute
|
||||
the msc_offset for the window. Also initialize ust and crtc_msc so we
|
||||
never use uninitalized values when present_get_ust_msc fails.
|
||||
|
||||
This fixes clients getting stuck waiting indefinitely for an idle
|
||||
event when a CRTC is turned off.
|
||||
|
||||
Signed-off-by: Fredrik Höglund <fredrik at kde.org>
|
||||
---
|
||||
present/present.c | 14 ++++++++------
|
||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/present/present.c b/present/present.c
|
||||
index a634601..7ddffbd 100644
|
||||
--- a/present/present.c
|
||||
+++ b/present/present.c
|
||||
@@ -710,9 +710,9 @@ present_pixmap(WindowPtr window,
|
||||
present_notify_ptr notifies,
|
||||
int num_notifies)
|
||||
{
|
||||
- uint64_t ust;
|
||||
+ uint64_t ust = 0;
|
||||
uint64_t target_msc;
|
||||
- uint64_t crtc_msc;
|
||||
+ uint64_t crtc_msc = 0;
|
||||
int ret;
|
||||
present_vblank_ptr vblank, tmp;
|
||||
ScreenPtr screen = window->drawable.pScreen;
|
||||
@@ -734,13 +734,15 @@ present_pixmap(WindowPtr window,
|
||||
target_crtc = present_get_crtc(window);
|
||||
}
|
||||
|
||||
- present_get_ust_msc(screen, target_crtc, &ust, &crtc_msc);
|
||||
+ ret = present_get_ust_msc(screen, target_crtc, &ust, &crtc_msc);
|
||||
|
||||
target_msc = present_window_to_crtc_msc(window, target_crtc, window_msc, crtc_msc);
|
||||
|
||||
- /* Stash the current MSC away in case we need it later
|
||||
- */
|
||||
- window_priv->msc = crtc_msc;
|
||||
+ if (ret == Success) {
|
||||
+ /* Stash the current MSC away in case we need it later
|
||||
+ */
|
||||
+ window_priv->msc = crtc_msc;
|
||||
+ }
|
||||
|
||||
/* Adjust target_msc to match modulus
|
||||
*/
|
||||
--
|
||||
2.5.0
|
||||
|
@ -45,7 +45,7 @@
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.18.0
|
||||
Release: 0.3%{?gitdate:.%{gitdate}}%{dist}
|
||||
Release: 0.4%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -95,6 +95,9 @@ Patch7027: xserver-autobind-hotplug.patch
|
||||
# submitted: http://lists.x.org/archives/xorg-devel/2013-October/037996.html
|
||||
Patch9100: exa-only-draw-valid-trapezoids.patch
|
||||
|
||||
# http://lists.x.org/archives/xorg-devel/2015-September/047304.html
|
||||
Patch9200: 0001-present-Don-t-stash-the-MSC-value-when-present_get_u.patch
|
||||
|
||||
# because the display-managers are not ready yet, do not upstream
|
||||
Patch10000: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
|
||||
|
||||
@ -634,6 +637,10 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Sep 24 2015 Rex Dieter <rdieter@fedoraproject.org> 1.18.0-0.4
|
||||
- pull in candidate fix for clients getting stuck waiting indefinitely
|
||||
for an idle event when a CRTC is turned off (#1256082,#1258084)
|
||||
|
||||
* Tue Sep 22 2015 Dave Airlie <airlied@redhat.com> 1.18.0-0.3
|
||||
- hack to fix GLX_MESA_copy_sub_buffer regression (#1265395)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user