(state of) Vulcan video platform in Fedora, and use of Vulcan API vs current VA-API on modern laptops?

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.

Supported AMD Platforms for Vulkan Video

  • RDNA 2 architecture (e.g., Radeon RX 5000 series, Ryzen 5000 mobile GPUs)
  • RDNA 3 architecture (e.g., Radeon RX 6000 and 7000 series, Ryzen 7000)
  • Limited or experimental support on Vega series GPUs
  • Very limited support on Polaris series GPUs

From the site you linked at the top of your post.

🔗 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

The rpmfusion repos can be enabled as shown here.

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.