google-chrome: add /run/opengl-driver/share/vulkan/icd.d/ to path

NixOS stores ICDs at /run/opengl-driver/share/vulkan/icd.d/. Because
Chrome ships its own vulkan-loader and doesn't use the NixOS system
vulkan-loader, Chrome won't search the /run/opengl-driver directory
withou either adding it to the path or patching Chrome's libvulkan.so.1.

This change adds "${addOpenGLRunpath.driverLink}/share" unconditionally
to the path. addOpenGLRunpath is the same module that NixOS system
vulkan-loader uses as the path.

Tested by running `VK_LOADER_DEBUG=all google-chrome-unstable
--enable-features=Vulkan` and verifying Vulkan is enabled with
chrome://gpu.
This commit is contained in:
Brandon Weeks 2022-01-18 00:16:04 -08:00
parent fc6511e3c3
commit 007af34263

View File

@ -44,7 +44,7 @@
, libvaSupport ? true, libva
# For Vulkan support (--enable-features=Vulkan)
, vulkanSupport ? true, vulkan-loader
, addOpenGLRunpath
}:
with lib;
@ -70,7 +70,6 @@ let
libxkbcommon pipewire wayland
] ++ optional pulseSupport libpulseaudio
++ optional libvaSupport libva
++ optional vulkanSupport vulkan-loader
++ [ gtk3 ];
suffix = if channel != "stable" then "-" + channel else "";
@ -143,7 +142,7 @@ in stdenv.mkDerivation {
makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \
--prefix LD_LIBRARY_PATH : "$rpath" \
--prefix PATH : "$binpath" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:${addOpenGLRunpath.driverLink}/share" \
--add-flags ${escapeShellArg commandLineArgs}
for elf in $out/share/google/$appname/{chrome,chrome-sandbox,${crashpadHandlerBinary},nacl_helper}; do