From 74a6d0328a5dfd3be453d7192c931a6ea81f7bd6 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Sat, 2 Jun 2018 19:21:06 +1100 Subject: [PATCH] upgrel : 1.20.0-6 --- PKGBUILD | 10 ++++++- ...from-glamor_fds_from_pixmap-on-error.patch | 28 ++++++++++++++++++ ...ixmap-error-in-glamor_fd_from_pixmap.patch | 29 +++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch create mode 100644 xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch diff --git a/PKGBUILD b/PKGBUILD index ad6dd8f..d90328e 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -7,7 +7,7 @@ pkgbase=xorg-server pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel') pkgver=1.20.0 -pkgrel=5 +pkgrel=6 arch=('x86_64') license=('custom') groups=('xorg') @@ -26,6 +26,8 @@ source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pk xserver-autobind-hotplug.patch xvfb-run # with updates from FC master xvfb-run.1 + xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch + xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch 0001-v2-FS-58644.patch) validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C' 'C383B778255613DFDB409D91DB221A6900000011' @@ -49,6 +51,12 @@ prepare() { # https://bugs.freedesktop.org/show_bug.cgi?id=106588 patch -Np1 -i ../0001-v2-FS-58644.patch + + # Fix XWayland hangs - FS#58705 + # https://patchwork.freedesktop.org/series/43618/ + patch -Np1 -i ../xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch + patch -Np1 -i ../xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch + } build() { diff --git a/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch b/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch new file mode 100644 index 0000000..604af0f --- /dev/null +++ b/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch @@ -0,0 +1,28 @@ +diff --git a/glamor/glamor.c b/glamor/glamor.c +index d984d20f3..e2c74d17a 100644 +--- a/glamor/glamor.c ++++ b/glamor/glamor.c +@@ -836,20 +836,20 @@ glamor_fds_from_pixmap(ScreenPtr screen, PixmapPtr pixmap, int *fds, + glamor_get_screen_private(pixmap->drawable.pScreen); + + if (!glamor_priv->dri3_enabled) +- return -1; ++ return 0; + switch (pixmap_priv->type) { + case GLAMOR_TEXTURE_DRM: + case GLAMOR_TEXTURE_ONLY: + if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ? + GL_RGB10_A2 : GL_RGBA, 0)) +- return -1; ++ return 0; + return glamor_egl_fds_from_pixmap(screen, pixmap, fds, + strides, offsets, + modifier); + default: + break; + } +- return -1; ++ return 0; + } + + _X_EXPORT int diff --git a/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch b/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch new file mode 100644 index 0000000..beea2e4 --- /dev/null +++ b/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch @@ -0,0 +1,29 @@ +diff --git a/glamor/glamor.c b/glamor/glamor.c +index e2c74d17a..63f0947fa 100644 +--- a/glamor/glamor.c ++++ b/glamor/glamor.c +@@ -865,17 +865,15 @@ glamor_fd_from_pixmap(ScreenPtr screen, + &modifier); + + /* Pixmaps with multi-planes/modifier are not supported in this interface */ +- if (ret > 1) { +- while (ret > 0) +- close(fds[--ret]); +- return -1; ++ if (ret == 1 && offsets[0] == 0) { ++ *stride = strides[0]; ++ *size = pixmap->drawable.height * *stride; ++ return fds[0]; + } + +- ret = fds[0]; +- *stride = strides[0]; +- *size = pixmap->drawable.height * *stride; +- +- return ret; ++ while (ret > 0) ++ close(fds[--ret]); ++ return -1; + } + + _X_EXPORT int -- GitLab