Message ID | y765yg1hnql.wl-hako@ultrarare.space |
---|---|
State | New |
Headers | show |
Series | [bug#58887,staging] gnu: vulkan-loader: Add native-search-paths field. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | |
cbaines/issue | success | View issue |
Hi, Hilton Chain <hako@ultrarare.space> skribis: > * gnu/packages/vulkan.scm (vulkan-loader): Add native-search-paths field. > [source]: Change ICD and implicit layers looking up behaviour via snippet. One comment: [...] > + (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’.
Hi Ludo, > 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!
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.
On Mon, 19 Jun 2023 00:31:25 +0800, Kaelyn via Guix-patches via wrote: > > 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!
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")