@ogra @abeato I had to reinstall my machine so now I’m using a fresh Ubuntu 24.04 with wslg and I did a simple test with sudo snap install --devmode graphics-test-tools. The galium driver instructions followed per msdn I mentioned before.
Here’s a test where I run vainfo that is directly installed on the host ( so no confinment, apparmor, cgroup, chroots etc).
MESA_D3D12_DEFAULT_ADAPTER_NAME=nvidia GALLIUM_DRIVER=d3d12 LIBVA_DRIVER_NAME=d3d12 LD_LIBRARY_PATH=/usr/lib/wsl/lib vainfo --display drm --device /dev/dri/card0
libva info: VA-API version 1.20.0
Xlib: extension "DRI2" missing on display ":0".
libva info: User environment variable requested driver 'd3d12'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/d3d12_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 25.2.4 - kisak-mesa PPA for D3D12 (NVIDIA GeForce RTX 3060 Laptop GPU)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
And here’s the comparision with vainfo from graphics-test-tools to check for hardware acceleration (provided by gpu-snap, installed in devmode).
MESA_D3D12_DEFAULT_ADAPTER_NAME=nvidia GALLIUM_DRIVER=d3d12 LIBVA_DRIVER_NAME=d3d12 LD_LIBRARY_PATH=/usr/lib/wsl/lib snap run graphics-test-tools.vainfo --display drm --device /dev/dri/card0
libva info: VA-API version 1.20.0
Xlib: extension "DRI2" missing on display ":0".
libva info: User environment variable requested driver 'd3d12'
libva info: Trying to open /snap/graphics-test-tools/580/gpu-2404/usr/lib/x86_64-linux-gnu/dri//d3d12_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva error: /snap/graphics-test-tools/580/gpu-2404/usr/lib/x86_64-linux-gnu/dri//d3d12_drv_video.so init failed
libva info: va_openDriver() returns 2
vaInitialize failed with error code 2 (resource allocation failed),exit
Same environment variables, different outcomes. sudo snappy-debug and sudo journalctl -k | grep apparmor shows no messages at all, not when I run the commands and follow the output, not when I try to read it back in the logs. sudo dmesg -w shows this but the messages don’t seem to generate when I run the application, so I think they are just host related.
[ 4248.917656] WSL (263) ERROR: CheckConnection: getaddrinfo() failed: -5
[ 4248.946580] WSL (263) ERROR: CheckConnection: connect() failed: 101
Here’s a test of running mpv directly on the host, and you can see it basically has no problem requesting and obtaining hardware acceleration.
MESA_D3D12_DEFAULT_ADAPTER_NAME=nvidia GALLIUM_DRIVER=d3d12 LIBVA_DRIVER_NAME=d3d12 mpv 5103988-hd_1920_1080_30fps.mp4
(+) Video --vid=1 (*) (h264 1920x1080 29.970fps)
libEGL warning: failed to get driver name for fd -1
libEGL warning: MESA-LOADER: failed to retrieve device information
libEGL warning: failed to get driver name for fd -1
VO: [gpu] 1920x1080 yuv420p
Exiting... (Quit)
V: 00:00:06 / 00:00:17 (39%)Segmentation fault (core dumped)
Here’s a test that uses normal mpv from a snap, you see it basically fails on hardware acceleration and falls back to software rendering.
MESA_D3D12_DEFAULT_ADAPTER_NAME=nvidia GALLIUM_DRIVER=d3d12 LIBVA_DRIVER_NAME=d3d12 sudo snap run mpv 5103988-hd_1920_1080_30fps.mp4
● Video --vid=1 (h264 1920x1080 29.97 fps) [default]
[vo/gpu/libplacebo] Found no suitable device, giving up.
[vo/gpu/libplacebo] Failed initializing vulkan device
libEGL warning: DRI3: Screen seems not DRI3 capable
libEGL warning: DRI3: Screen seems not DRI3 capable
MESA: error: ZINK: failed to choose pdev
libEGL warning: egl: failed to create dri2 screen
[vo/gpu/opengl] Suspected software renderer or indirect context.
[vo/gpu/drm] VT_GETMODE failed: Inappropriate ioctl for device
[vo/gpu/drm] Failed to set up VT switcher. Terminal switching will be unavailable.
[vo/gpu/drm] No primary DRM device could be picked!
[vo/gpu/drm] Failed to find a usable DRM primary node!
[vo/gpu-next/libplacebo] Found no suitable device, giving up.
[vo/gpu-next/libplacebo] Failed initializing vulkan device
libEGL warning: DRI3: Screen seems not DRI3 capable
libEGL warning: DRI3: Screen seems not DRI3 capable
MESA: error: ZINK: failed to choose pdev
libEGL warning: egl: failed to create dri2 screen
[vo/gpu-next/opengl] Suspected software renderer or indirect context.
[vo/gpu-next/drm] Can't handle VT release - signal already used
[vo/gpu-next/drm] Failed to set up VT switcher. Terminal switching will be unavailable.
[vo/gpu-next/drm] No primary DRM device could be picked!
[vo/gpu-next/drm] Failed to find a usable DRM primary node!
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vo/vdpau] Error when calling vdp_device_create_x11: 1
[vo/xv] No Xvideo support found.
[vaapi] libva: vaGetDriverNames() failed with unknown libva error
[vaapi] Failed to initialize VAAPI: unknown libva error
[vo/x11] Warning: this legacy VO has bad performance. Consider fixing your graphics drivers, or not forcing the x11 VO.
[vaapi] libva: /snap/mpv/233/gpu-2404/usr/lib/x86_64-linux-gnu/dri//d3d12_drv_video.so init failed
[ffmpeg/video] h264: Device does not support the VK_KHR_video_decode_queue extension!
[ffmpeg/video] h264: Failed setup for format vulkan: hwaccel initialisation returned error.
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
VO: [x11] 1920x1080 yuv420p
(process:75750): GLib-GIO-CRITICAL **: 21:45:26.963: g_dbus_connection_emit_signal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
V: 00:00:03 / 00:00:17 (21%)
Exiting... (Quit)
(process:75750): GLib-GIO-CRITICAL **: 21:45:30.323: g_dbus_connection_emit_signal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
(process:75750): GLib-GIO-CRITICAL **: 21:45:30.323: g_dbus_connection_unregister_object: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
(process:75750): GLib-GIO-CRITICAL **: 21:45:30.323: g_dbus_connection_unregister_object: assertion 'G_IS_DBUS_CONNECTION (connection)' failed