diff options
-rw-r--r-- | .SRCINFO | 2 | ||||
-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.patch | 43 | ||||
-rw-r--r-- | 0003-Revert-present-Requeue-if-flip-driver-hook-fails-and.patch | 39 | ||||
-rw-r--r-- | PKGBUILD | 18 |
5 files changed, 52 insertions, 50 deletions
@@ -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 - @@ -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() { |