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
|
Summary: X.Org X11 X server
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
Version: 1.18.0
|
Version: 1.18.0
|
||||||
Release: 0.3%{?gitdate:.%{gitdate}}%{dist}
|
Release: 0.4%{?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
|
||||||
@ -95,6 +95,9 @@ 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
|
||||||
|
|
||||||
|
# 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
|
# 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
|
||||||
|
|
||||||
@ -634,6 +637,10 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* Tue Sep 22 2015 Dave Airlie <airlied@redhat.com> 1.18.0-0.3
|
||||||
- hack to fix GLX_MESA_copy_sub_buffer regression (#1265395)
|
- hack to fix GLX_MESA_copy_sub_buffer regression (#1265395)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user