[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