summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO2
-rw-r--r--0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch (renamed from 0002-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch)0
-rw-r--r--0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch43
-rw-r--r--0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch39
-rw-r--r--PKGBUILD18
5 files changed, 52 insertions, 50 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5cc480fa211c..22b8ddda9771 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = xorg-server-dev
pkgver = 1.18.2
- pkgrel = 3
+ pkgrel = 4
url = http://xorg.freedesktop.org
arch = i686
arch = x86_64
diff --git a/0002-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch b/0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
index 2dbbb85bffb8..2dbbb85bffb8 100644
--- a/0002-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
+++ b/0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
diff --git a/0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch b/0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
new file mode 100644
index 000000000000..adf5c7a470f0
--- /dev/null
+++ b/0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
@@ -0,0 +1,43 @@
+From 3b385105b2d19a1c55e9779ae88d775185eea231 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 xserver] 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>
+---
+ 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
+
diff --git a/0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch b/0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch
deleted file mode 100644
index e7582d68af9f..000000000000
--- a/0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 155768e794e31892037e1a082d8457f7f122b9f0 Mon Sep 17 00:00:00 2001
-From: Laurent Carlier <lordheavym@gmail.com>
-Date: Fri, 18 Mar 2016 15:10:37 +0100
-Subject: [PATCH xserver] Revert "present: Requeue if flip driver hook fails
- and target MSC not reached"
-
-This reverts commit eb5108b87017128f394ae31b5b7cd85dd8819bca.
----
- present/present.c | 14 --------------
- 1 file changed, 14 deletions(-)
-
-diff --git a/present/present.c b/present/present.c
-index 55f6aa7..d6df54f 100644
---- a/present/present.c
-+++ b/present/present.c
-@@ -724,20 +724,6 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
- if (window == screen_priv->flip_window)
- present_unflip(screen);
- }
--
-- /* If present_flip failed, we may have to requeue for the target MSC */
-- if (msc_is_after(vblank->target_msc, crtc_msc) &&
-- Success == present_queue_vblank(screen,
-- vblank->crtc,
-- vblank->event_id,
-- vblank->target_msc)) {
-- xorg_list_add(&vblank->event_queue, &present_exec_queue);
-- xorg_list_append(&vblank->window_list,
-- &present_get_window_priv(window, TRUE)->vblank);
-- vblank->queued = TRUE;
-- return;
-- }
--
- present_copy_region(&window->drawable, vblank->pixmap, vblank->update, vblank->x_off, vblank->y_off);
-
- /* present_copy_region sticks the region into a scratch GC,
---
-2.7.3
-
diff --git a/PKGBUILD b/PKGBUILD
index 6ecdcc0d6817..30f9c186678c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
_pkgbase=xorg-server
pkgname=('xorg-server-dev' 'xorg-server-xephyr-dev' 'xorg-server-xdmx-dev' 'xorg-server-xvfb-dev' 'xorg-server-xnest-dev' 'xorg-server-xwayland-dev' 'xorg-server-common-dev' 'xorg-server-devel-dev')
pkgver=1.18.2 # http://lists.x.org/archives/xorg/2016-March/057961.html
-pkgrel=3 # https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xorg-server&id=bb37fae55e67f14bc491ca6bcccde3907f73b21c
+pkgrel=4 # https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xorg-server&id=9fd963e75ec9745e07a5e2595dae57de3f925210
arch=('i686' 'x86_64')
license=('custom')
groups=('xorg')
@@ -20,8 +20,8 @@ source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig}
xvfb-run
xvfb-run.1
0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
- 0002-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
- 0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch)
+ 0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
+ 0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
@@ -31,7 +31,7 @@ sha256sums=('022142b07f6477d140dcc915902df326408a53ca3a352426a499f142b25d632d'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
'10c66c10f4f71930e2ac3f6e07881e228ca88542af449d2c69c7744ec87335df'
'72755a652e72144e3f28c8fa959b4a6df5def838db3cde5077a626e97baab591'
- '692cccb82ae20be237ac9fda9347c06952e9ca2971d63dc54cf63ad2223d41a0')
+ '70c84bf1f7cbc818692fb56f57c8b8ef2ea057bc05380b2f797ecba742b7ce31')
prepare() {
cd "${_pkgbase}-${pkgver}"
@@ -40,12 +40,10 @@ prepare() {
patch -Np1 -i ../0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
msg2 "Fix flooding of Xorg log file"
- patch -Np1 -i ../0002-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
-
- msg2 "FS#48549"
- # upstream https://bugs.freedesktop.org/show_bug.cgi?id=94515
- # upstream https://bugs.freedesktop.org/show_bug.cgi?id=94596
- patch -Np1 -i ../0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch
+ patch -Np1 -i ../0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
+
+ msg2 "Fix FS#48549"
+ patch -Np1 -i ../0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
}
build() {