I’m happy to see Nvidia making progress on Linux support for its GPUs, such as proper Wayland support, VRR and so on and so forth. Nevertheless, there is still a ( big ) nuance with Nvidia GPUs on Linux: VA-API.
As much as NVEC / NVDEC is cool and all, lots of apps support only VA-API ( Chromium, Electron based apps, etc… ). Are there any plans to fix the VA-API implementation for Nvidia graphics cards? If so, are there any ETAs? The only “solution” is to use nvidia-vaapi-driver, which is a community made solution, though it only supports NVDEC (and not NVENC ) and its mainly meant for Firefox.
And nvidia-vaapi-driver
uses NVDEC which depends on CUDA, so the GPU is locked to P2 state
Any updates? nvidia-vaapi-driver doesn’t work for me with VLC, mpv, avidemux, etc. (literally any “hardware accelerated” video application I use)
The only way I am able to play my videos back in real-time is using mpv --hwaccel=nvdec [filename]
, but it’s really limiting :(
Edit: I have an Intel i7-3770K which can’t even play back low-resolution videos created by my new camera without dropping all the frames, mpv+NVDEC and ffmpeg with hwdec on my 12 GB RTX 3060 is my only option for working with these videos
now that mesa dropped support for VDPAU on main, it’s basically guaranteed that no new software will support it, and Nvidia itself seems to not be too interested in maintaining it as it still lacks support for wayland, focusing instead on NVDEC and NVENC.
can you guys please reconsider oficial support for VA-API as there’s already projects like chromium where they decided to explicitly not support any other video api
…or at least fix bugs that block nvidia-vaapi-driver
from working better (like this one).
Summary of issues affecting VDPAU and NVENC/NVDEC:
VDPAU:
- No video encode support.
- No Wayland and DMA-BUF support.
- Poor application support.
NVENC/NVDEC:
- Not supported by all applications.
- Proprietary and only supported on Nvidia GPU.
- Forces the GPU to P2 state as it depends on CUDA.
Note that there’s one more option nowadays that may (slowly) start getting more widespread support over time and isn’t nvidia-specific, aka vulkan decode.
With mpv it’s mpv –hwdec=vulkan
(needs at least >=ffmpeg-7 and a recent mpv – Edit: not sure if vp9 is usable yet, afaik would at least need ffmpeg-8, nvidia-580.x, and a yet unreleased version of mpv), may still want –hwdec=vulkan,nvdec
to allow falling back for things not well supported yet though (incl. some pixel formats).
Not aware of browsers and such supporting this yet, but this is all still rather new/early.