unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#65155] [PATCH] gnu: mesa: Add native-search-paths.
@ 2023-08-08 18:08 dan
  2023-11-28  5:54 ` John Kehayias via Guix-patches via
  0 siblings, 1 reply; 7+ messages in thread
From: dan @ 2023-08-08 18:08 UTC (permalink / raw)
  To: 65155

* gnu/packages/gl.scm (mesa) [native-search-paths]: Export XDG_DATA_DIRS.

According to
https://vulkan.lunarg.com/doc/view/1.3.231.1/linux/loader_and_layer_interface.html,
Vulkan loader search for manifest files in several directories.  Some of them
are in the $HOME directory, some of them are set during compile-time.  We
don't raelly want vulkan-loader to depend on mesa during compile-time, since
we couldn't assume that mesa is the only package providing Vulkan drivers.
Thus, it's better for us to export XDG_DATA_DIRS in mesa, so that when both
packages are installed, Vulkan loader could find the corresponding Vulkan
drivers by environment varaible.

---
 gnu/packages/gl.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index b53b42a9ba..583cd5a945 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
+;;; Copyright © 2023 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -518,7 +519,11 @@ (define-public mesa
             ;; Ensure the Mesa VDPAU drivers can be found.
             (variable "VDPAU_DRIVER_PATH")
             (separator #f)
-            (files '("lib/vdpau")))))
+            (files '("lib/vdpau")))
+           (search-path-specification
+            ;; Ensure the Vulkan drivers can be found by Vulkan loader.
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))))
     (home-page "https://mesa3d.org/")
     (synopsis "OpenGL and Vulkan implementations")
     (description "Mesa is a free implementation of the OpenGL and Vulkan

base-commit: 4547bc6fa3142dca77f7fc912368aeff31bd6e53
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#65155] [PATCH] gnu: mesa: Add native-search-paths.
  2023-08-08 18:08 [bug#65155] [PATCH] gnu: mesa: Add native-search-paths dan
@ 2023-11-28  5:54 ` John Kehayias via Guix-patches via
  2024-02-11 17:36   ` David Elsing
  0 siblings, 1 reply; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2023-11-28  5:54 UTC (permalink / raw)
  To: dan; +Cc: 65155

Hi,

Sorry for the long overdue reply here.

On Wed, Aug 09, 2023 at 02:08 AM, dan wrote:

> * gnu/packages/gl.scm (mesa) [native-search-paths]: Export XDG_DATA_DIRS.
>
> According to
> https://vulkan.lunarg.com/doc/view/1.3.231.1/linux/loader_and_layer_interface.html,
> Vulkan loader search for manifest files in several directories.  Some of them
> are in the $HOME directory, some of them are set during compile-time.  We
> don't raelly want vulkan-loader to depend on mesa during compile-time, since
> we couldn't assume that mesa is the only package providing Vulkan drivers.
> Thus, it's better for us to export XDG_DATA_DIRS in mesa, so that when both
> packages are installed, Vulkan loader could find the corresponding Vulkan
> drivers by environment varaible.
>

I'm not sure if this patch does what you intend. A search-path is
defined in the package that consumes the path, meaning the package that
looks there for something. The environment variable is then set whenever
there is package also in the profile that populates the specified
directory.

So perhaps this belongs in vulkan-loader? Although I admit I'm less sure
for XDG_* related paths. Is there a test case or something we can see if
this does what is intended for vulkan?

(This did not make it into the just merged mesa-updates but happy to do
it on the next round, which could also include changes to vulkan
packages if they need a branch.)

Apologies for the wait on this one, since I had looked at it a while
ago!

John

> ---
>  gnu/packages/gl.scm | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
> index b53b42a9ba..583cd5a945 100644
> --- a/gnu/packages/gl.scm
> +++ b/gnu/packages/gl.scm
> @@ -18,6 +18,7 @@
>  ;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
>  ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
>  ;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
> +;;; Copyright © 2023 dan <i@dan.games>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -518,7 +519,11 @@ (define-public mesa
>              ;; Ensure the Mesa VDPAU drivers can be found.
>              (variable "VDPAU_DRIVER_PATH")
>              (separator #f)
> -            (files '("lib/vdpau")))))
> +            (files '("lib/vdpau")))
> +           (search-path-specification
> +            ;; Ensure the Vulkan drivers can be found by Vulkan loader.
> +            (variable "XDG_DATA_DIRS")
> +            (files '("share")))))
>      (home-page "https://mesa3d.org/")
>      (synopsis "OpenGL and Vulkan implementations")
>      (description "Mesa is a free implementation of the OpenGL and Vulkan
>
> base-commit: 4547bc6fa3142dca77f7fc912368aeff31bd6e53





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#65155] [PATCH] gnu: mesa: Add native-search-paths.
  2023-11-28  5:54 ` John Kehayias via Guix-patches via
@ 2024-02-11 17:36   ` David Elsing
  2024-03-06  5:55     ` John Kehayias via Guix-patches via
  0 siblings, 1 reply; 7+ messages in thread
From: David Elsing @ 2024-02-11 17:36 UTC (permalink / raw)
  To: John Kehayias; +Cc: 65155, i

Hello,

John Kehayias <john.kehayias@protonmail.com> writes:

> So perhaps this belongs in vulkan-loader? Although I admit I'm less sure
> for XDG_* related paths. Is there a test case or something we can see if
> this does what is intended for vulkan?

I also noticed the same problem and agree that the search path belongs
in the vulkan-loader package:

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 285d6be7f5..98ce979652 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -303,6 +303,11 @@ (define-public vulkan-loader
            wayland))
     (inputs
      (list vulkan-headers libxrandr))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "XDG_DATA_DIRS")
+       (files '("share")))))
     (home-page
      "https://github.com/KhronosGroup/Vulkan-Loader")
     (synopsis "Khronos official ICD loader and validation layers for Vulkan")
--8<---------------cut here---------------end--------------->8---

I tested it with
--8<---------------cut here---------------start------------->8---
guix shell -C vulkan-tools vulkan-loader mesa --no-grafts -- vulkaninfo
--8<---------------cut here---------------end--------------->8---
which works with the patch applied. As documented in [1], vulkan-loader
still needs to be part of the profile for the search path to take effect.

Cheers,
David

[1] https://guix.gnu.org/manual/en/html_node/Search-Paths.html




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#65155] [PATCH] gnu: mesa: Add native-search-paths.
  2024-02-11 17:36   ` David Elsing
@ 2024-03-06  5:55     ` John Kehayias via Guix-patches via
  2024-03-06  6:59       ` dan
  0 siblings, 1 reply; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2024-03-06  5:55 UTC (permalink / raw)
  To: David Elsing; +Cc: 65155, i

Hi David and dan,

On Sun, Feb 11, 2024 at 05:36 PM, David Elsing wrote:

> Hello,
>
> John Kehayias <john.kehayias@protonmail.com> writes:
>
>> So perhaps this belongs in vulkan-loader? Although I admit I'm less sure
>> for XDG_* related paths. Is there a test case or something we can see if
>> this does what is intended for vulkan?
>
> I also noticed the same problem and agree that the search path belongs
> in the vulkan-loader package:
>
> diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
> index 285d6be7f5..98ce979652 100644
> --- a/gnu/packages/vulkan.scm
> +++ b/gnu/packages/vulkan.scm
> @@ -303,6 +303,11 @@ (define-public vulkan-loader
>             wayland))
>      (inputs
>       (list vulkan-headers libxrandr))
> +    (native-search-paths
> +     (list
> +      (search-path-specification
> +       (variable "XDG_DATA_DIRS")
> +       (files '("share")))))
>      (home-page
>       "https://github.com/KhronosGroup/Vulkan-Loader")
>      (synopsis "Khronos official ICD loader and validation layers for Vulkan")
>

Thanks for the diff, which I also tried.

>
> I tested it with
>
> guix shell -C vulkan-tools vulkan-loader mesa --no-grafts -- vulkaninfo
>
> which works with the patch applied. As documented in [1], vulkan-loader
> still needs to be part of the profile for the search path to take effect.
>
> Cheers,
> David
>
> [1] https://guix.gnu.org/manual/en/html_node/Search-Paths.html

Yes, this also works for me. It is also works on my machine when
dropping "mesa" and the "-C" without this diff; presumably because of
how my environment exists and XDG_DATA_DIRS. Probably in most desktop
setups things already work for Vulkan (or we'd have more bug reports?)
with any typical desktop/graphical packages. Still, this seems like this
should be more explicit like in the above diff for exactly the case of
things like containers or minimal testing environments.

I can apply such a change on mesa-updates soon when I make the other
mesa/vulkan/etc. updates we have pending. Feel free to submit a more
formal patch here so I can credit you as the author, though I should be
able to do the same on my own anyway.

Thanks for the diff and testing!

John





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#65155] [PATCH] gnu: mesa: Add native-search-paths.
  2024-03-06  5:55     ` John Kehayias via Guix-patches via
@ 2024-03-06  6:59       ` dan
  2024-03-25  1:05         ` John Kehayias via Guix-patches via
  0 siblings, 1 reply; 7+ messages in thread
From: dan @ 2024-03-06  6:59 UTC (permalink / raw)
  To: John Kehayias, David Elsing; +Cc: 65155

Hi John and David,

On 3/6/2024 1:55 PM, John Kehayias wrote:
> I can apply such a change on mesa-updates soon when I make the other
> mesa/vulkan/etc. updates we have pending. Feel free to submit a more
> formal patch here so I can credit you as the author, though I should be
> able to do the same on my own anyway.

This is actually included in my patch when trying to update vulkan-sdk 
packages: <https://issues.guix.gnu.org/69461#5>

-- 
dan





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#65155] [PATCH] gnu: mesa: Add native-search-paths.
  2024-03-06  6:59       ` dan
@ 2024-03-25  1:05         ` John Kehayias via Guix-patches via
  2024-04-18  4:46           ` bug#65155: " John Kehayias via Guix-patches via
  0 siblings, 1 reply; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2024-03-25  1:05 UTC (permalink / raw)
  To: dan; +Cc: David Elsing, 65155

Hi David and Dan,

On Wed, Mar 06, 2024 at 02:59 PM, dan wrote:

> Hi John and David,
>
> On 3/6/2024 1:55 PM, John Kehayias wrote:
>> I can apply such a change on mesa-updates soon when I make the other
>> mesa/vulkan/etc. updates we have pending. Feel free to submit a more
>> formal patch here so I can credit you as the author, though I should be
>> able to do the same on my own anyway.
>
> This is actually included in my patch when trying to update vulkan-sdk
> packages: <https://issues.guix.gnu.org/69461#5>

Thanks both! Will look to have that series on mesa-updates soon.

John





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#65155: [PATCH] gnu: mesa: Add native-search-paths.
  2024-03-25  1:05         ` John Kehayias via Guix-patches via
@ 2024-04-18  4:46           ` John Kehayias via Guix-patches via
  0 siblings, 0 replies; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2024-04-18  4:46 UTC (permalink / raw)
  To: dan; +Cc: David Elsing, 65155-done

On Sun, Mar 24, 2024 at 09:05 PM, John Kehayias wrote:

> Hi David and Dan,
>
> On Wed, Mar 06, 2024 at 02:59 PM, dan wrote:
>
>> Hi John and David,
>>
>> On 3/6/2024 1:55 PM, John Kehayias wrote:
>>> I can apply such a change on mesa-updates soon when I make the other
>>> mesa/vulkan/etc. updates we have pending. Feel free to submit a more
>>> formal patch here so I can credit you as the author, though I should be
>>> able to do the same on my own anyway.
>>
>> This is actually included in my patch when trying to update vulkan-sdk
>> packages: <https://issues.guix.gnu.org/69461#5>
>
> Thanks both! Will look to have that series on mesa-updates soon.
>
> John

This was fixed on mesa-updates and then merged to master in
2d5736cc3e869fadd2592cc13a8d332fac63b144





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-04-18  4:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-08 18:08 [bug#65155] [PATCH] gnu: mesa: Add native-search-paths dan
2023-11-28  5:54 ` John Kehayias via Guix-patches via
2024-02-11 17:36   ` David Elsing
2024-03-06  5:55     ` John Kehayias via Guix-patches via
2024-03-06  6:59       ` dan
2024-03-25  1:05         ` John Kehayias via Guix-patches via
2024-04-18  4:46           ` bug#65155: " John Kehayias via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).