Hey, i’ve looked though this helpful page (Hardware Video Acceleration - Fedora Project Wiki) and noticed that there’s a vulcan video API that with its proper drivers that is supposed to be more efficient for:
4K+ video content;
modern laptops.
I know little about it, so decided to have a look at it a bit deeper.
It seems that there are currently 3 major video APIs:
1) VDPAU (Video Decode and Presentation API for UNIX)
legacy; used for fallback only
2) VA-API (Video Acceleration API)
current Fedora standard; widspread use
3) Vulkan Video
extra performance & optimizations, but considered experimental yet.
Vulcan video seems to be an extension, so it’s safe enabling it in addition to VA-API, right?
Does anybody use it currently?
Manufacturer
Driver
Fedora Component
Purpose
Status
AMD
mesa-vulkan-drivers-freeworld
mesa-vulkan-drivers-freeworld
Vulkan decoding of H.264 and H.265
Experimental
Intel
mesa-vulkan-drivers-freeworld
mesa-vulkan-drivers-freeworld
Vulkan decoding, experimental
Experimental
Intel
intel-media-driver + ANV_DEBUG
-
Vulkan video decoding/encoding, requires ANV_DEBUG environment variable
Experimental
NVIDIA
TBD
Proprietary NVIDIA driver
Vulkan video decoding/encoding for NVIDIA (currently experimental)
Partial Support
Supported Intel Platforms for Vulkan Video
Tiger Lake (11th Gen Intel Core)
Alder Lake (12th Gen Intel Core)
Raptor Lake (13th Gen Intel Core)
Meteor Lake (14th Gen Intel Core)
Arrow Lake (15th Gen Intel Core)
all upcoming
These generations include integrated GPUs with experimental or emerging Vulkan Video support, especially if environment variables like ANV_DEBUG=video-decode,video-encode are set for enhanced functions.
🔗 nVIDIA
Accelerated video decoding works on NVIDIA proprietary drivers thanks to Stephen "elFarto" and his nvidia-vaapi-driver project. It's VA-API implemention using NVIDIA's NVDEC decoder.
You can enable VA-API on NVIDIA by these steps:
Install NVIDIA proprietary drivers. Don't forget to install cuda/nvdec/nvenc support.
Install ffmpeg-free from Fedora, install libavcodec-freeworld from RPM Fusion repository for H.264 and H.265 decoding.
Install nvidia-vaapi-driver from RPM Fusion repository non-free.
I would also note that the same applies to the current nvidia drivers from rpmfusion as was noted for the proprietary drivers.
Install the drivers with cuda using the command sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda and install the full ffmpeg version from rpmfusion with sudo dnf swap ffmpeg-free ffmpeg --allowerasing
This section seems to be outdated as rpmfusion doesn’t provide nvidia-vaapi-driver now. I think libva-nvidia-driver provided by fedora may be a better choice since it has the same upstream.
You are probably correct in that over time things tend to migrate between repos. In this case it appears that fedora has decided that the vaapi driver for nvidia is appropriate to distribute and has a different name in the fedora repo.
This message may not apply here, but this is one of the pages where Google direct people searching for "my GPU isn’t GPUing videos, my CPU is decoding 'hem; wot? ", so I might as well link this here:
I’m also wondering how to get vulkan acceleration working on nvidia gpu. The hardware video acceleration wiki just says “TBD”, and I can’t tell if there’s still no solution or if the wiki is just outdated.