nix-community/nixGL

VA-API broken on AMD

TheSunCat opened this issue · 5 comments

Hi! I'm using nixGL and it works great. Thanks for maintaining this tool.
I noticed Firefox outputs an error about libva on my AMD laptop when launched with nixGL, and found that it exports LIBVA_DRIVERS_PATH to paths that only contains Intel drivers (i965_drv_video.so, i965_drv_video.la, and iHD_drv_video.so). When exporting LIBVA_DRIVERS_PATH=/lib/dri/, the error goes away.

[apm@apg ~]$ vainfo
vaInitialize failed with error code -1 (unknown libva error),exit
[apm@apg ~]$ LIBVA_DRIVERS_PATH=/lib/dri vainfo
vainfo: VA-API version: 1.15 (libva 2.15.0)
vainfo: Driver version: Mesa Gallium driver 22.1.7 for AMD YELLOW_CARP (LLVM 14.0.6, DRM 3.47, 5.19.7-arch1-g14-1)
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
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

Also for Fedora, you may need to add /lib64/dri as well.

Relevant: #27 #116

For clarity, are you running your distro's Firefox, or attempting to run the nixpkgs's Firefox trough nixgl?

I'm running my distro's native Firefox package (Arch), and it also happens with the native vainfo package.

hab25 commented

I'm running my distro's native Firefox package (Arch), and it also happens with the native vainfo package.

I think nixGL was made only for packages built by nix; I'm curious as to how it is helping you with an Arch package.

I'm running my Wayland compositor (Hyprland) which is installed through nix as the official package lacks support for hidpi XWayland apps, which the nix package has support for. Therefore I'm running Hyprland through nixGL, which ends up causing every program that is run from from Hyprland to inherit the nixGL setup (and therefore break vaapi, etc).