[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
18/22: gnu: mesa: Enable NVK driver for x86_64 architecture.
From: |
guix-commits |
Subject: |
18/22: gnu: mesa: Enable NVK driver for x86_64 architecture. |
Date: |
Sun, 27 Oct 2024 01:25:15 -0400 (EDT) |
podiki pushed a commit to branch mesa-updates
in repository guix.
commit 13bf9bd6119a18be31668e8b1adba2267aa2b616
Author: aurtzy <aurtzy@gmail.com>
AuthorDate: Mon Sep 9 12:12:11 2024 -0400
gnu: mesa: Enable NVK driver for x86_64 architecture.
* gnu/packages/gl.scm (mesa)[native-inputs]: Add rust, rust-bindgen-cli,
rust-cbindgen-0.26 for x86_64.
[arguments]<#:meson>: Use newer version of meson to satisfy NVK build
requirements.
<#:configure-flags>: Use "auto" for 'vulkan-drivers' flag when target arch
is
x86_64.
<#:phases>: Add 'patch-subproject-sources phase to patch rust subproject
sources when target arch is x86_64.
* gnu/packages/crates-io.scm (rust-paste-1, rust-proc-macro2-1,
rust-quote-1,
rust-syn-2, rust-unicode-ident-1): Add a comment about being dependencies of
mesa.
Change-Id: I76e3db5072ca3c718155b188ca64b52766d55f36
Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
---
gnu/packages/crates-io.scm | 5 ++++
gnu/packages/gl.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 67 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c08ccd29fd..4e4416574b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -51869,6 +51869,7 @@ Format (MCF).")
("rust-subtle" ,rust-subtle-2)
("rust-rand-core" ,rust-rand-core-0.6))))))
+;; WARNING: This package is a dependency of mesa.
(define-public rust-paste-1
(package
(name "rust-paste")
@@ -56703,6 +56704,7 @@ in your code.")
"Support for nested proc-macro-hack invocations.")
(license (list license:expat license:asl2.0))))
+;; WARNING: This package is a dependency of mesa.
(define-public rust-proc-macro2-1
(package
(name "rust-proc-macro2")
@@ -60144,6 +60146,7 @@ transport protocol in Rust.")
("rust-tokio" ,rust-tokio-1)
("rust-tracing" ,rust-tracing-0.1))))))
+;; WARNING: This package is a dependency of mesa.
(define-public rust-quote-1
(package
(name "rust-quote")
@@ -76953,6 +76956,7 @@ library that supports a wide range of audio formats.
This package contains Xiph
codecs and formats.")
(license license:mpl2.0)))
+;; WARNING: This package is a dependency of mesa.
(define-public rust-syn-2
(package
(name "rust-syn")
@@ -86613,6 +86617,7 @@ membership for characters in Rust.")
according to Unicode Standard Annex #31.")
(license (list license:expat license:asl2.0))))
+;; WARNING: This package is a dependency of mesa.
(define-public rust-unicode-ident-1
(package
(name "rust-unicode-ident")
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index c977c03949..14b24d3158 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
+;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,6 +43,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
@@ -57,6 +59,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
@@ -76,7 +79,8 @@
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (ice-9 match)
- #:use-module ((srfi srfi-1) #:hide (zip)))
+ #:use-module ((srfi srfi-1) #:hide (zip))
+ #:use-module (srfi srfi-26))
(define-public glu
(package
@@ -357,10 +361,19 @@ also known as DXTn or DXTC) for Mesa.")
pkg-config-for-build
wayland
wayland-protocols)
+ '())
+ (if (target-x86-64?)
+ ;; NVK dependencies
+ (list rust
+ (module-ref (resolve-interface '(gnu packages rust-apps))
+ 'rust-bindgen-cli)
+ (module-ref (resolve-interface '(gnu packages rust-apps))
+ 'rust-cbindgen-0.26))
'())))
(outputs '("out" "bin"))
(arguments
(list
+ #:meson meson-1.5
#:configure-flags
#~(list
#$@(cond
@@ -392,7 +405,7 @@
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
"-Dshared-glapi=enabled"
#$@(cond
- ((or (target-x86-32?) (target-x86-64?))
+ ((target-x86-32?)
;; This doesn't include nouveau (which is in "auto") as it needs
;; rust.
;; TODO: Enable nouveau/NVK.
@@ -486,6 +499,53 @@
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
(("'lp_test_arit', ") ""))))
(_
'((display "No tests to disable on this
architecture.\n"))))))
+ #$@(if (target-x86-64?)
+ #~((add-after 'unpack 'patch-subproject-sources
+ (lambda _
+ ;; Patch each relevant subproject source URL in
wrapfiles to
+ ;; use the store, which avoids an attempt to download
them
+ ;; mid-build.
+ (for-each
+ (match-lambda
+ ((name source)
+ (let ((wrap-file (string-append
+ "subprojects/" name ".wrap"))
+ (subproject-dest (string-append
+ "subprojects/" name))
+ (overlay-dir (string-append
+ "subprojects/packagefiles/"
name)))
+ (copy-recursively source subproject-dest)
+ ;; Normally when the patch_directory wrap file
property
+ ;; is specified, meson automatically copies from
+ ;; packagefiles, but this is not the case here
(only
+ ;; happens when downloading source?) so we
manually copy
+ ;; overlay-dir to subproject-dest.
+ (when (file-exists? overlay-dir)
+ (copy-recursively overlay-dir subproject-dest))
+ (call-with-output-file wrap-file
+ (lambda (port)
+ (format port "[wrap-file]
+directory = ~a
+"
+ name))))))
+ '#+(map (lambda (pkg)
+ (let ((name (package-upstream-name* pkg))
+ (version (package-version pkg)))
+ (list (package-upstream-name* pkg)
+ (file-append pkg
+ "/share/cargo/src/"
+ name "-" version))))
+ (let ((from-crates-io
+ (cut module-ref
+ (resolve-interface
+ '(gnu packages crates-io))
+ <>)))
+ (list (from-crates-io 'rust-syn-2)
+ (from-crates-io 'rust-unicode-ident-1)
+ (from-crates-io 'rust-quote-1)
+ (from-crates-io 'rust-proc-macro2-1)
+ (from-crates-io 'rust-paste-1))))))))
+ #~())
(add-before 'configure 'fix-dlopen-libnames
(lambda* (#:key inputs #:allow-other-keys)
(let ((out #$output))
- branch mesa-updates created (now 1172712f1a), guix-commits, 2024/10/27
- 03/22: gnu: Remove wayland-protocols-next., guix-commits, 2024/10/27
- 04/22: gnu: vulkan-headers: Hard-code libvulkan.so file name., guix-commits, 2024/10/27
- 13/22: gnu: wlroots: Update to 0.18., guix-commits, 2024/10/27
- 02/22: gnu: wayland-protocols: Update to 1.37., guix-commits, 2024/10/27
- 07/22: gnu: llvm-for-mesa: Build all targets., guix-commits, 2024/10/27
- 01/22: gnu: libdrm: Update to 2.4.123., guix-commits, 2024/10/27
- 06/22: gnu: llvm-for-mesa: Update to llvm-18., guix-commits, 2024/10/27
- 11/22: gnu: wayland: Update to 1.23.1., guix-commits, 2024/10/27
- 12/22: gnu: wlroots: Remove unneeded hwdata patch., guix-commits, 2024/10/27
- 18/22: gnu: mesa: Enable NVK driver for x86_64 architecture.,
guix-commits <=
- 15/22: gnu: qtwayland-6: Fix build., guix-commits, 2024/10/27
- 22/22: gnu: mesa: Update to 24.2.5., guix-commits, 2024/10/27
- 10/22: gnu: libinput: Update to 1.26.2., guix-commits, 2024/10/27
- 05/22: gnu: volk: Hard-code path of vulkan-loader for dynamic loading, guix-commits, 2024/10/27
- 08/22: gnu: mesa: Update to 24.2.2., guix-commits, 2024/10/27
- 14/22: gnu: mesa: Fix build on arm architectures., guix-commits, 2024/10/27
- 16/22: gnu: gtk-layer-shell: Update to 0.9.0., guix-commits, 2024/10/27
- 19/22: gnu: mesa: Update to 24.2.3., guix-commits, 2024/10/27
- 17/22: gnu: qtwayland: Fix build., guix-commits, 2024/10/27
- 09/22: gnu: mesa: Update configure flags., guix-commits, 2024/10/27