[PATCH][staging] gnu: vulkan-loader: Add native-search-paths field.

  • Done
  • quality assurance status badge
Details
3 participants
  • Hilton Chain
  • Kaelyn
  • Ludovic Courtès
Owner
unassigned
Submitted by
Hilton Chain
Severity
normal
H
H
Hilton Chain wrote on 30 Oct 2022 06:41
(address . guix-patches@gnu.org)
y765yg1hnql.wl-hako@ultrarare.space
* gnu/packages/vulkan.scm (vulkan-loader): Add native-search-paths field.
[source]: Change ICD and implicit layers looking up behaviour via snippet.
---
gnu/packages/vulkan.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index f5c619a2b2..1371860583 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -215,6 +215,22 @@ (define-public vulkan-loader
(url "https://github.com/KhronosGroup/Vulkan-Loader")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "loader/loader.c"
+ ;; v1.3.207-
+ (("VK_ICD_FILENAMES_ENV_VAR, NULL")
+ "\"VK_ICD_PATH\", override_paths")
+ (("false, NULL, NULL")
+ "false, \"VK_ILAYER_PATH\", override_paths")
+ ;; v1.3.207+
+ (("VK_ICD_FILENAMES_ENV_VAR")
+ "\"VK_ICD_PATH\"")
+ (("relative_location = VK_ILAYERS_INFO_RELATIVE_DIR;" all)
+ (string-append "override_env = loader_secure_getenv"
+ "(\"VK_ILAYER_PATH\", inst);" all))
+ (("\\(IMPLICIT_LAYER, \\)NULL" m)
+ (string-append m "override_paths"))))
(sha256
(base32
"15gx9ab6w1sjq9hkpbas7z2f8f47j6mlln6p3w26qmydjj8gfjjv"))))
@@ -251,6 +267,13 @@ (define-public vulkan-loader
("wayland" ,wayland)))
(inputs
(list vulkan-headers))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "VK_ICD_PATH")
+ (files '("share/vulkan/icd.d")))
+ (search-path-specification
+ (variable "VK_ILAYER_PATH")
+ (files '("share/vulkan/implicit_layer.d")))))
(home-page
"https://github.com/KhronosGroup/Vulkan-Loader")
(synopsis "Khronos official ICD loader and validation layers for Vulkan")

base-commit: 63bf06013820aa26aca7dc8f18cb79403b94e9a5
--
2.38.0
L
L
Ludovic Courtès wrote on 1 Dec 2022 16:49
(name . Hilton Chain)(address . hako@ultrarare.space)(address . 58887@debbugs.gnu.org)
87edtjyvhq.fsf@gnu.org
Hi,

Hilton Chain <hako@ultrarare.space> skribis:

Toggle quote (3 lines)
> * gnu/packages/vulkan.scm (vulkan-loader): Add native-search-paths field.
> [source]: Change ICD and implicit layers looking up behaviour via snippet.

One comment:

[...]

Toggle quote (8 lines)
> + (native-search-paths
> + (list (search-path-specification
> + (variable "VK_ICD_PATH")
> + (files '("share/vulkan/icd.d")))
> + (search-path-specification
> + (variable "VK_ILAYER_PATH")
> + (files '("share/vulkan/implicit_layer.d")))))

Should these read “lib” rather than “share”, given that they contain
binaries if I’m not mistaken?

Should it be versioned too, like “lib/vulkan/3.0/icd.d”?

Other than that it LGTM.

Thanks,
Ludo’.
H
H
Hilton Chain wrote on 23 Dec 2022 08:53
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 58887@debbugs.gnu.org)
87wn6i5zen.wl-hako@ultrarare.space
Hi Ludo,

Toggle quote (3 lines)
> Should these read “lib” rather than “share”, given that they contain
> binaries if I’m not mistaken?

Actually they don't contain binaries, they are configuration files.

FYI, you can take a look at "$(guix build mesa)/share/vulkan/".

As it's been some time since I submitted the patch, I'll dive into the docs again to find out if
adjustments are needed.

Thanks!
K
K
Kaelyn wrote on 18 Jun 2023 18:31
Re: [PATCH][staging] gnu: vulkan-loader: Add native-search-paths field.
(name . 58887@debbugs.gnu.org)(address . 58887@debbugs.gnu.org)
OV4xuhjolEj41ZhXkwwdeNKQId3R1AMnwO3uys6GLuXkEaZecvr2ccOD6e5oRrXtVqFmuQrV-XcnFCDhUPr0uT_YjdpqiNyDJ6DJVtjxeOw=@protonmail.com
While the original patch description doesn't mention why the native-search-paths variables and associated snippet are needed, if they are to fix error messages like:


!! validation layer: libVkLayer_MESA_device_select.so: cannot open shared object file: No such file or directory

when running Vulkan programs including vulkaninfo, then this issue can be closed. Commit 61a326442442f9b09911d35b3a3a48cf5335d7d7 fixed the remaining Vulkan layer manifest files to include the full paths to the shared libraries, which resolved the error messages like the one above about not finding the shared object files for layers without introducing new environment variables.
H
H
Hilton Chain wrote on 19 Jun 2023 08:14
Re: [bug#58887] [PATCH][staging] gnu: vulkan-loader: Add native-search-paths field.
(name . Kaelyn)(address . kaelyn.alexi@protonmail.com)(address . 58887-close@debbugs.gnu.org)
87v8fkvuzv.wl-hako@ultrarare.space
On Mon, 19 Jun 2023 00:31:25 +0800,
Kaelyn via Guix-patches via wrote:
Toggle quote (8 lines)
>
> While the original patch description doesn't mention why the native-search-paths variables and associated snippet are needed, if they are to fix error messages like:
>
>
> !! validation layer: libVkLayer_MESA_device_select.so: cannot open shared object file: No such file or directory
>
> when running Vulkan programs including vulkaninfo, then this issue can be closed. Commit 61a326442442f9b09911d35b3a3a48cf5335d7d7 fixed the remaining Vulkan layer manifest files to include the full paths to the shared libraries, which resolved the error messages like the one above about not finding the shared object files for layers without introducing new environment variables.

Thank you!
?