fix: GPU device service missing graphics driver environment

Set HOME, LIBGL_DRIVERS_PATH, __EGL_VENDOR_LIBRARY_DIRS, and add
/run/opengl-driver/lib to LD_LIBRARY_PATH so mesa can find DRI
drivers and EGL vendors. Set HOME to the per-VM GPU runtime dir
to fix shader cache directory creation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Davíð Steinn Geirsson 2026-03-22 17:57:53 +00:00
parent 22f632df88
commit b1c4f57dcf

View file

@ -453,7 +453,14 @@ let
requiredBy = [ "vmsilo-${vm.name}-vm.service" ];
bindsTo = [ "vmsilo-${vm.name}-vm.service" ];
environment = {
LD_LIBRARY_PATH = "${pkgs.vulkan-loader}/lib";
HOME = "/run/vmsilo/${vm.name}/gpu";
LD_LIBRARY_PATH =
lib.makeLibraryPath [
pkgs.vulkan-loader
]
+ ":/run/opengl-driver/lib";
LIBGL_DRIVERS_PATH = "/run/opengl-driver/lib/dri";
__EGL_VENDOR_LIBRARY_DIRS = "/run/opengl-driver/share/glvnd/egl_vendor.d";
__GL_SHADER_DISK_CACHE_PATH = "/run/vmsilo/${vm.name}/gpu/shader-cache";
RUST_BACKTRACE = "full";
};