[arch-commits] Commit in mesa/trunk (PKGBUILD gbm-fix-with-old-nvidia-drivers.patch)

Laurent Carlier lcarlier at gemini.archlinux.org
Mon Dec 6 09:22:41 UTC 2021


    Date: Monday, December 6, 2021 @ 09:22:40
  Author: lcarlier
Revision: 430721

upgpkg: mesa 21.3.1-1: upstream update 21.3.1

Added:
  mesa/trunk/gbm-fix-with-old-nvidia-drivers.patch
Modified:
  mesa/trunk/PKGBUILD

---------------------------------------+
 PKGBUILD                              |    9 ++-
 gbm-fix-with-old-nvidia-drivers.patch |   77 ++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-12-06 09:11:53 UTC (rev 430720)
+++ PKGBUILD	2021-12-06 09:22:40 UTC (rev 430721)
@@ -6,7 +6,7 @@
 pkgbase=mesa
 pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
 pkgdesc="An open-source implementation of the OpenGL specification"
-pkgver=21.3.0
+pkgver=21.3.1
 pkgrel=1
 arch=('x86_64')
 makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
@@ -18,11 +18,13 @@
 source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
         swr-llvm13-patch1.patch
         swr-llvm13-patch2.patch
+        gbm-fix-with-old-nvidia-drivers.patch
         LICENSE)
-sha512sums=('b27c0ccf2fc9b96bbece715612cec4f4e267ab25dc5386c3debd2346c385afa0146317c67a3d2eec198dbf5338fb182b458c5fe5567216b265153c0b7b560de1'
+sha512sums=('43f019d4810bafd177b1a41207ae20a77982e4e6df3ab2b7a700273748cbc766694bd44594c898c4bd7848a94200fd28237a67d290c4e06595e6eab71cb716e8'
             'SKIP'
             '073ea2bb4778b3151717b26e0ec737abb4916ea340c7193a7382c2e2197534e93e95622d530e2f731ae156fd6ca1fc86f315f6ecae0baaeab88846773fb98bba'
             'b59f18f4bc69b872e97b5f33a53b9c2398143bc1d0a1b42787ca2a0c204fc11b2837ca40f6f773a0b1bd49756754f9d755ac14d4eb10df6269570477ba8484fc'
+            '8484be4d1d3dc38cefe22edea33c5cfce98bb71711370e502cc812f41b0d5536857749cb337cb6a8feb370d87e38d6f2c294bea3470370e25dc2ddd1ab691bf2'
             'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7')
 validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D'  # Emil Velikov <emil.l.velikov at gmail.com>
               '946D09B5E4C9845E63075FF1D961C596A7203456'  # Andres Gomez <tanty at igalia.com>
@@ -38,6 +40,9 @@
   patch -Np1 -i ../swr-llvm13-patch1.patch
   # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13267
   patch -Np1 -i ../swr-llvm13-patch2.patch
+
+  # Fix KDE with old nvidia drivers
+  patch -Np1 -i ../gbm-fix-with-old-nvidia-drivers.patch
 }
 
 build() {

Added: gbm-fix-with-old-nvidia-drivers.patch
===================================================================
--- gbm-fix-with-old-nvidia-drivers.patch	                        (rev 0)
+++ gbm-fix-with-old-nvidia-drivers.patch	2021-12-06 09:22:40 UTC (rev 430721)
@@ -0,0 +1,77 @@
+From 873ce884fd217f2ca2a5fe9764b65e75102124d6 Mon Sep 17 00:00:00 2001
+From: James Jones <jajones at nvidia.com>
+Date: Fri, 19 Nov 2021 11:50:18 -0800
+Subject: [PATCH] gbm: Don't pass default usage flags on ABIs < 1
+
+Older drivers will not expect any flags from the
+GBM front-end when modifiers are in use, and will
+likely fail the allocation or handle them
+incorrectly as a result. Only specify usage flags
+when allocating from a backend with an ABI >= 1,
+as that's the ABI version that added support for
+specifying usage flags along with modifiers.
+
+Fixes: d50b47a14e9 ("gbm: assume USE_SCANOUT in create_with_modifiers")
+Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5709
+Signed-off-by: James Jones <jajones at nvidia.com>
+Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14049>
+---
+ src/gbm/main/gbm.c | 32 ++++++++++++++++++++++++++++++--
+ 1 file changed, 30 insertions(+), 2 deletions(-)
+
+diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
+index 476a03cb5b8..6b1b3248142 100644
+--- a/src/gbm/main/gbm.c
++++ b/src/gbm/main/gbm.c
+@@ -500,8 +500,22 @@ gbm_bo_create_with_modifiers(struct gbm_device *gbm,
+                              const uint64_t *modifiers,
+                              const unsigned int count)
+ {
++   uint32_t flags = 0;
++
++   /*
++    * ABI version 1 added the modifiers+flags capability. Backends from
++    * prior versions may fail if "unknown" flags are provided along with
++    * modifiers, but assume scanout is required when modifiers are used.
++    * Newer backends expect scanout to be explicitly requested if required,
++    * but applications using this older interface rely on the older implied
++    * requirement, so that behavior must be preserved.
++    */
++   if (gbm->v0.backend_version >= 1) {
++      flags |= GBM_BO_USE_SCANOUT;
++   }
++
+    return gbm_bo_create_with_modifiers2(gbm, width, height, format, modifiers,
+-                                        count, GBM_BO_USE_SCANOUT);
++                                        count, flags);
+ }
+ 
+ GBM_EXPORT struct gbm_bo *
+@@ -651,9 +665,23 @@ gbm_surface_create_with_modifiers(struct gbm_device *gbm,
+                                   const uint64_t *modifiers,
+                                   const unsigned int count)
+ {
++   uint32_t flags = 0;
++
++   /*
++    * ABI version 1 added the modifiers+flags capability. Backends from
++    * prior versions may fail if "unknown" flags are provided along with
++    * modifiers, but assume scanout is required when modifiers are used.
++    * Newer backends expect scanout to be explicitly requested if required,
++    * but applications using this older interface rely on the older implied
++    * requirement, so that behavior must be preserved.
++    */
++   if (gbm->v0.backend_version >= 1) {
++      flags |= GBM_BO_USE_SCANOUT;
++   }
++
+    return gbm_surface_create_with_modifiers2(gbm, width, height, format,
+                                              modifiers, count,
+-                                             GBM_BO_USE_SCANOUT);
++                                             flags);
+ }
+ 
+ GBM_EXPORT struct gbm_surface *
+-- 
+GitLab
+



More information about the arch-commits mailing list