(address . bug-guix@gnu.org)
Toggle quote (10 lines)
> It was only recently that I was able to fix an issue with the tutorial
> program not finding the .so for the validation layer, by patching the
> layer manifest file with the full store path of the .so. A similar
> phase would need to be added to the mesa package definition for its
> device selection layer to work properly. The error from the mesa layer
> not being found when I run the basic tutorial program is:
>
> !! validation layer: libVkLayer_MESA_device_select.so: cannot open
> shared object file: No such file or directory
And the mentioned patch is:
Toggle quote (12 lines)
> + #:phases #~(modify-phases %standard-phases
> + (add-after 'install 'set-layer-path-in-manifest
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (manifest (string-append out
> + "/share/vulkan/explicit_layer.d"
> + "/VkLayer_khronos_validation.json")))
> + (substitute* manifest
> + (("\"libVkLayer_khronos_validation.so\"")
> + (string-append "\"" out
> "/lib/libVkLayer_khronos_validation.so\"")))))))))
This errors actually appears in more packages, for example vulkan-info
prints this error.
Patches to all shared vulkan libraries should be added into mesa, so
applications can actually load vulkan.