Accepting request 382536 from home:tobijk:X11:XOrg

- Add patch U_present-Only-requeue-for-next-MSC-after-flip-failure.patch
  Fix a hang while using the present extension
  Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94515
            https://bugs.freedesktop.org/show_bug.cgi?id=94596

OBS-URL: https://build.opensuse.org/request/show/382536
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=623
This commit is contained in:
Stefan Dirsch 2016-04-01 12:17:40 +00:00 committed by Git OBS Bridge
parent a53b8160f0
commit 7c91935636
3 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,44 @@
From 07ad2fde78f07e98caaf3e9b6b67af15359fefe4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
Date: Thu, 24 Mar 2016 17:42:47 +0900
Subject: [PATCH] present: Only requeue for next MSC after flip failure
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This code was added to deal with the driver present hook failing, in
which case we need to wait for the next MSC before executing the
presentation.
However, it could also take effect in cases where the driver incorrectly
thinks the current MSC matches the target one (e.g. due to the kernel
interface only supporting 32-bit MSC values), in which case it could
result in the presentation getting requeued over and over.
To prevent such issues, check specifically for the target MSC
immediately following the current MSC.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94596
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 3b385105b2d19a1c55e9779ae88d775185eea231)
---
present/present.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/present/present.c b/present/present.c
index 55f6aa7..105e2bf 100644
--- a/present/present.c
+++ b/present/present.c
@@ -726,7 +726,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
}
/* If present_flip failed, we may have to requeue for the target MSC */
- if (msc_is_after(vblank->target_msc, crtc_msc) &&
+ if (vblank->target_msc == crtc_msc + 1 &&
Success == present_queue_vblank(screen,
vblank->crtc,
vblank->event_id,
--
2.7.4

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu Mar 31 14:27:29 UTC 2016 - tobias.johannes.klausmann@mni.thm.de
- Add patch U_present-Only-requeue-for-next-MSC-after-flip-failure.patch
Fix a hang while using the present extension
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94515
https://bugs.freedesktop.org/show_bug.cgi?id=94596
-------------------------------------------------------------------
Tue Mar 29 08:56:43 UTC 2016 - eich@suse.com

View File

@ -202,6 +202,8 @@ Patch1229: U_kdrive-introduce-input-hot-plugging-support-for-udev.patch
Patch1230: U_kdrive-add-options-to-set-default-XKB-properties.patch
Patch1232: U_config-udev-distinguish-between-real-keyboards-and-o.patch
Patch1300: U_present-Only-requeue-for-next-MSC-after-flip-failure.patch
%description
This package contains the X.Org Server.
@ -330,6 +332,8 @@ sh %{SOURCE92} --verify . %{SOURCE91}
%patch1232 -p1
%patch1300 -p1
%build
test -e source-file-list || \
find . -type f \! -name '*.orig' \! -path ./source-file-list > \