[arch-commits] Commit in xorg-server/trunk (3 files)

Jan Steffens heftig at archlinux.org
Fri May 25 22:35:37 UTC 2018


    Date: Friday, May 25, 2018 @ 22:35:36
  Author: heftig
Revision: 324993

1.20.0-5: FS#58705

Added:
  xorg-server/trunk/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
  xorg-server/trunk/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
Modified:
  xorg-server/trunk/PKGBUILD

------------------------------------------------------------------------------------------+
 PKGBUILD                                                                                 |   11 +++
 xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch            |   28 +++++++++
 xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch |   29 ++++++++++
 3 files changed, 67 insertions(+), 1 deletion(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-05-25 22:18:17 UTC (rev 324992)
+++ PKGBUILD	2018-05-25 22:35:36 UTC (rev 324993)
@@ -6,7 +6,7 @@
 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=4
+pkgrel=5
 arch=('x86_64')
 license=('custom')
 groups=('xorg')
@@ -21,6 +21,8 @@
         'xwayland-config.h.meson.in::https://cgit.freedesktop.org/xorg/xserver/plain/include/xwayland-config.h.meson.in?id=xorg-server-1.20.0'
         xserver-autobind-hotplug.patch
         0001-v2-FS-58644.patch
+        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
         xvfb-run # with updates from FC master
         xvfb-run.1)
 validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
@@ -32,6 +34,8 @@
             'd707e0870367de2665c3b82f09564d17ed3f62c9e8b4bd471c11af1fb1e9249e306e92c7961a04e355756eec9f5271bc8e66999e56c73c31bc9da4127ff30a8e'
             'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22'
             '74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363'
+            'a8f65ca23ae52865147bdc1bc059b1265ba4bc61527992cf054fe76a0396ef5dfd2386782be371e926184a63def3be7333bb37fc429627d4e6fa159d263f40f7'
+            'fc259a0a4acb7b70209fc599b0f4bc94942316bbc8c6995f783026b7cd455900bcb7527615d76c99bd2e0155e0035cbd619939a1f7ddf3af32ed854afe45b631'
             '55bbf520333f6e818b0125b37179a7039b69a0d3d2242b80a08da003d94cbf6c1fb912d880abcce318a85d7947e3eff8fbc4cdf57d7118572e8ebc56c4569af6'
             'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22')
 
@@ -47,6 +51,11 @@
   # Fix rootless xorg - FS#58644
   # 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() {

Added: xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
===================================================================
--- xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch	                        (rev 0)
+++ xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch	2018-05-25 22:35:36 UTC (rev 324993)
@@ -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

Added: xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
===================================================================
--- xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch	                        (rev 0)
+++ xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch	2018-05-25 22:35:36 UTC (rev 324993)
@@ -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



More information about the arch-commits mailing list