[PATCH 0/2][core-updates] gnu: mesa: Update to 22.1.2.

OpenSubmitted by John Kehayias.
One participant
  • John Kehayias
John Kehayias wrote 3 days ago
(name . Guix-patches)(address . guix-patches@gnu.org)
Hi Guix,

Incoming are two patches to update Mesa to the latest stable version, 22.1.2 (as of this writing, they move quickly though).

The first patch does the update which needed to drop the configure-flag dri-drivers as those have been dropped from Mesa. They do exist on an alternative branch, but should only be for really old hardware, while there are more current drivers that have been in Mesa for years (the Gallium ones). The configure-flag we had set needed to be dropped for Mesa to build. I could also reenable a test on i686 that was disabled due to it failing with an upstream bug (now closed).

It is hard to parse all the codenames and hardware, but discussion on IRC leads me to believe this is for probably 10+ year old hardware, while some old hardware is supported by newer drivers like the crocus one. Here is one place to see the announcement and related links: https://www.phoronix.com/scan.php?page=news_item&px=Mesa-Classic-Retired

Second patch does a minor clean up to use "auto" where available for gallium-drivers and vulkan-drivers. From parsing the meson build here: https://cgit.freedesktop.org/mesa/mesa/tree/meson.buildI tried to make sure that the "auto" setting is available for the listed architecture and that it has at least as many drivers enabled as we had previously. For example, for vulkan-drivers on x86 it also adds the swrast driver. In other cases either "auto" is not listed for the architecture or it has less drivers than what we currently build. One effect is that the crocus and i915 Gallium drivers are built, which I believe is needed to support some Intel hardware with the dri-drivers dropped.

(I added my copyright line in the second patch, forgot it in the first.)

Note that I tested this builds for x86_64 and i686. I have not tried to run anything with this Mesa nor build on other architectures.

John Kehayias wrote 3 days ago
[PATCH 1/2] gnu: mesa: Update to 22.1.2.
(name . 56150@debbugs.gnu.org)(address . 56150@debbugs.gnu.org)
Empty Message
From e89039567166f84f14aab61fa2c0982ac9f40543 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Wed, 22 Jun 2022 11:09:33 -0400
Subject: [PATCH 1/2] gnu: mesa: Update to 22.1.2.

* gnu/packages/gl.scm (mesa): Update to 22.1.2.
[configure-flags]: Remove dri-drivers as from v22.0 the Mesa classic OpenGL
drivers were removed.
[phases]: Re-enable test that previously failed on i686.
* gnu/packages/patches/mesa-skip-tests.patch: Update patch for current version.
gnu/packages/gl.scm | 20 ++++----------------
gnu/packages/patches/mesa-skip-tests.patch | 19 +++++++++----------
2 files changed, 13 insertions(+), 26 deletions(-)

Toggle diff (83 lines)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index c740c087dd..6c4594a9a1 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -261,7 +261,7 @@ (define libva-without-mesa
 (define-public mesa
     (name "mesa")
-    (version "21.3.8")
+    (version "22.1.2")
         (method url-fetch)
@@ -273,7 +273,7 @@ (define-public mesa
                                   version "/mesa-" version ".tar.xz")))
-          "19wx5plk6z0hhi0zdzxjx8ynl3lhlc5mbd8vhwqyk92kvhxjf3g7"))
+          "1smrvvh8l7xcccwfbccx9k0ihzh1whrnnwsmqb7i0gba99mj4w89"))
          (search-patches "mesa-skip-tests.patch"))))
     (build-system meson-build-system)
@@ -357,15 +357,8 @@ (define-public mesa
          ;; Also enable the tests.
-         ;; on non-intel systems, drop i915 and i965
-         ;; from the default dri drivers
-         ,@(match (%current-system)
-             ((or "x86_64-linux" "i686-linux")
-              '("-Ddri-drivers=i915,i965,nouveau,r200,r100"))
-             (_
-              '("-Ddri-drivers=nouveau,r200,r100")))
-                "-Dllvm=enabled")       ; default is x86/x86_64 only
+         ;; Enable LLVM; default is x86/x86_64 only.
+         "-Dllvm=enabled")
        ;; XXX: 'debugoptimized' causes LTO link failures on some drivers.  The
        ;; documentation recommends using 'release' for performance anyway.
@@ -413,11 +406,6 @@ (define-public mesa
                     ;; This test times out and receives SIGTERM.
                     (substitute* "src/amd/common/meson.build"
                       (("and not with_platform_windows") "and with_platform_windows"))))
-                 ("i686-linux"
-                  ;; Disable new test from Mesa 19 that fails on i686.  Upstream
-                  ;; report: <https://bugs.freedesktop.org/show_bug.cgi?id=110612>.
-                  `((substitute* "src/util/tests/format/meson.build"
-                      (("'u_format_test',") ""))))
                   ;; The ir3_disasm test segfaults.
                   ;; The simplest way to skip it is to run a different test instead.
diff --git a/gnu/packages/patches/mesa-skip-tests.patch b/gnu/packages/patches/mesa-skip-tests.patch
index 7ff571dcf5..af61ea1658 100644
--- a/gnu/packages/patches/mesa-skip-tests.patch
+++ b/gnu/packages/patches/mesa-skip-tests.patch
@@ -5,15 +5,14 @@ completely with this patch:
 diff --git a/src/util/meson.build b/src/util/meson.build
-index 319b22d9bf7..93790c72675 100644
+index 2a1028f0d3a..0d31f38b671 100644
 --- a/src/util/meson.build
 +++ b/src/util/meson.build
-@@ -344,7 +344,7 @@ if with_tests
-     )
-   endif
--  foreach t: ['bitset', 'register_allocate', 'u_debug_stack', 'u_qsort']
-+  foreach t: ['bitset', 'register_allocate', 'u_qsort']
-     test(
-       t,
-       executable(
+@@ -330,7 +330,6 @@ if with_tests
+     'tests/set_test.cpp',
+     'tests/sparse_array_test.cpp',
+     'tests/u_atomic_test.cpp',
+-    'tests/u_debug_stack_test.cpp',
+     'tests/u_printf_test.cpp',
+     'tests/u_qsort_test.cpp',
+     'tests/vector_test.cpp',
John Kehayias wrote 3 days ago
[PATCH 2/2] gnu: mesa: Update configure flags.
(name . 56150@debbugs.gnu.org)(address . 56150@debbugs.gnu.org)
Empty Message
From e18f9c4c1a1875b3ce7a1c5e5585eb4512e7e468 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Wed, 22 Jun 2022 11:19:39 -0400
Subject: [PATCH 2/2] gnu: mesa: Update configure flags.

* gnu/packages/gl.scm (mesa)[configure-flags]: Adjust the gallium-drivers and
vulkan-drivers flags to use "auto" where it is available and enables at least
the previously listed drivers.
gnu/packages/gl.scm | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 6c4594a9a1..a46e06827d 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
-;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; This file is part of GNU Guix.
@@ -320,10 +320,10 @@ (define-public mesa
               ;; Freedreno FTBFS when built on a 64-bit machine.
-             ((or "powerpc64le-linux" "powerpc-linux" "riscv64-linux")
+             ((or "powerpc64le-linux" "powerpc-linux")
-              '("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
+              '("-Dgallium-drivers=auto")))
          ;; Enable various optional features.  TODO: opencl requires libclc,
          ;; omx requires libomxil-bellagio
@@ -340,14 +340,10 @@ (define-public mesa
          ;; Explicitly enable Vulkan on some architectures.
          ,@(match (%current-system)
-             ((or "i686-linux" "x86_64-linux")
-              '("-Dvulkan-drivers=intel,amd"))
              ((or "powerpc64le-linux" "powerpc-linux")
-             ("riscv64-linux"
-              '("-Dvulkan-drivers=amd,swrast"))
John Kehayias wrote 3 days ago
Re: [PATCH 0/2][core-updates] gnu: mesa: Update to 22.1.2.
(name . 56150@debbugs.gnu.org)(address . 56150@debbugs.gnu.org)
I forgot to mention that while I tagged this for core-updates due to the number of rebuilds (and since core-updates should be the next big merge coming?), I wrote and tested this only on master. There one needs the libdrm and wayland-protocols updates from core-updates (just a version bump). I didn't include those changes since they have already been made on core-updates.