Connect with us

NEWS

Firefox Gains Vulkan Video Decoding Ahead of Its July Release

Firefox 153 merges Vulkan Video decoding, ending VA-API workarounds for NVIDIA Linux users and opening GPU video to Arm hardware. Ships July 21.

Published

on

Firefox picked up Vulkan Video decoding support this week, merging the code that lets the browser offload H.264, H.265, and AV1 video to the GPU’s dedicated decode engine on any hardware where Vulkan drivers carry that capability. The feature targets Firefox 153, scheduled for July 21, and closes a bug report that had been open for three months. The work came from Tymur Boiko, a GPU software engineer at NVIDIA, and Martin Stransky, a developer at Red Hat.

Linux users have had one path to GPU-accelerated video in Firefox: the Video Acceleration API (VA-API), an Intel-developed standard that NVIDIA’s proprietary driver has never natively supported. Arm and most embedded graphics hardware occupies similar territory. Vulkan Video, an extension set the Khronos Group finalized for the Vulkan API starting in December 2022, has production driver support across NVIDIA, AMD, and Intel, with Arm GPU families steadily joining the list.

Where the Merge Came From

The Vulkan Video decoding request in Mozilla’s bug tracker had drawn developer discussion for roughly three months before the merge landed in Firefox Git this week. Boiko and Stransky completed the integration work, closing a feature request that had become technically feasible as GPU driver support for Vulkan Video matured through 2022 and 2023 but hadn’t yet found a champion inside Firefox’s media codebase.

Boiko’s employer carries a direct interest in the result. NVIDIA has shipped Vulkan Video driver support on Windows and Linux since 2021 and watched NVIDIA GPU users on Linux work around Firefox’s VA-API dependency with community-maintained compatibility layers for years. Stransky’s position at Red Hat places him in the main contributor stream for Firefox’s Linux media layer, where his previous work includes DMABuf infrastructure improvements and other media pipeline fixes. Together they built the DMABuf surface export path that passes Vulkan Video decoded frames to Gecko’s rendering pipeline without copying pixel data between GPU and CPU, the same zero-copy mechanism the VA-API path relies on for efficient Linux playback.

Mozilla has not yet specified which codecs the initial Vulkan Video implementation covers or how the feature will surface in the final Firefox 153 build. Per Mozilla’s own enterprise release notes, version 153 will be the next Extended Support Release. Organizations that hold the ESR track typically stay on a version for around a year, so whatever state the Vulkan Video implementation lands in at that cutoff will follow enterprise Linux deployments well into 2027.

VA-API’s Structural Limits on Linux

VA-API has been Firefox’s only GPU decode path on Linux since version 80. Intel developed the API, and the open-source Mesa graphics stack has solid VA-API support for Intel and AMD hardware. On NVIDIA hardware, the situation has always been different.

NVIDIA’s proprietary driver includes no native VA-API support. The workaround that grew up around that gap is nvidia-vaapi-driver, a community project that layers VA-API calls on top of NVIDIA’s NVDEC hardware decode interface. With around 1,700 GitHub stars, it’s a rough indicator of how many users went looking for a solution. Reaching a working configuration involved multiple steps in sequence:

  1. Build or install nvidia-vaapi-driver from source, since distribution packages frequently lag behind NVIDIA driver releases and can fail silently on version mismatches.
  2. Set LIBVA_DRIVER_NAME=nvidia and, for NVIDIA drivers above version 525, add NVD_BACKEND=direct to the environment before launching Firefox.
  3. Disable Firefox’s remote decoding sandbox with MOZ_DISABLE_RDD_SANDBOX=1, which weakens the browser’s process isolation as a security tradeoff.
  4. Enable hardware acceleration in Firefox’s about:config via the media.ffmpeg.vaapi.enabled flag.

Even a complete setup is fragile. NVIDIA driver updates can break the integration. Users running Firefox as a Snap package, Ubuntu’s default Firefox installation method, find the sandbox blocks access to the system VA-API library entirely. A comment in the Mozilla bug tracker described VA-API’s Linux dependency chain as “kinda cyclic,” with version mismatches between libva and the underlying DRI driver being a common failure mode across distributions.

Arm and embedded graphics hardware faces the same exclusion from a different direction. Driver coverage for those chips in the VA-API ecosystem has always been sparse. A Raspberry Pi running Firefox uses software video decode entirely, as do most single-board computers and embedded Linux devices with Arm GPU silicon, where browser-based video streaming is often the primary use case and every decode cycle costs battery or thermal headroom.

Building the Vulkan Video Pipeline

The Khronos Group, the industry consortium behind Vulkan and OpenGL, published its first provisional Vulkan Video extensions in April 2021. The H.264 and H.265 decode extensions were finalized in December 2022 with Vulkan 1.3.238. AV1 decode support followed in early 2024 with Vulkan 1.3.277 and the ratification of the AV1 decode extension. Vulkan Video integrates directly into Vulkan’s command buffer and synchronization model, letting video decode operations share the device queue with graphics and compute work, and letting hardware vendors expose their video codec engines through the same driver stack they use for rendering.

By the time Firefox merged Vulkan Video support, the application layer had already adopted it. FFmpeg gained Vulkan Video decode with version 6.1. GStreamer received framework-level support through Igalia’s contributions to the Vulkan driver and framework ecosystem. The mpv media player shipped Vulkan Video decode as an experimental hardware decode option around the same time. Firefox was the most widely used Linux application still relying entirely on VA-API for GPU-accelerated video. One contributor from the Khronos working group put the standardization motivation plainly when the AV1 extension landed:

The proliferation of APIs across platforms has seriously hampered development in this area, and the chance to standardize on a solution with a consistent set of expectations and testing is very exciting.

Dave Airlie, a Mesa developer and Linux kernel maintainer, said that after the AV1 decode extension published in early 2024. His work on the open-source RADV and ANV Vulkan driver implementations in Mesa helped establish the Linux driver foundation that Vulkan Video applications now rely on.

The two decode paths Firefox now carries on Linux:

Attribute VA-API Vulkan Video
Original developer Intel Khronos Group (industry consortium)
NVIDIA proprietary support None natively; community shim required Production drivers since 2021
Arm and embedded coverage Limited; per-chip driver support varies Growing via Vulkan driver ecosystem
Finalized decode codecs H.264, H.265, VP9, AV1 (driver-dependent) H.264, H.265, AV1
Platform scope Linux Windows, Linux, Android, embedded
Firefox support before version 153 Yes, since version 80 None

How GPU Coverage Breaks Down

NVIDIA Users Lose the Workaround

NVIDIA backed Vulkan Video from the specification’s preview phase in 2021 and shipped production Linux drivers with decode support alongside the H.264 and H.265 finalization in December 2022. The company has been among the primary contributors to the Khronos working group, and its Vulkan Video developer documentation covers the full decode and encode extension set across GeForce, RTX, and Quadro products on both Windows and Linux.

For Firefox users on NVIDIA hardware, the practical result is reaching the GPU’s hardware decoder through the same driver path that games and Vulkan applications already use. No environment variables, no source builds, no sandbox weakening. NVIDIA’s Jetson embedded computing platform, which runs the same Linux driver stack on Arm-based hardware with NVIDIA silicon, is within scope of the same implementation.

Intel and AMD users see less immediate change. The open-source Intel ANV and AMD RADV Vulkan drivers in Mesa both expose Vulkan Video decode extensions, with both available in production Mesa releases well before Firefox implemented the consuming side. Those GPU families already have functional VA-API paths in Firefox, so the new route reduces the failure surface when a VA-API configuration breaks on a specific distro or hardware combination, rather than replacing something that wasn’t working.

Where Arm Coverage Falls Short

Arm has publicly committed to Vulkan support across its Immortalis and Mali GPU families, and Arm, Intel, NVIDIA, AMD, Qualcomm, and Samsung all have development drivers that have passed Vulkan 1.4 conformance testing. Vulkan Video decode is a specific extension layer on top of core Vulkan, and coverage for it in the Arm ecosystem is building more slowly than the base specification.

Mesa’s PanVK open-source Vulkan driver landed initial support for Arm Mali-G610 and Mali-G310 GPUs in 2024, establishing the foundation before Vulkan Video decode extensions can follow. Older Arm chips with no active Vulkan driver development won’t gain anything from Firefox’s new path. The benefit skews toward newer silicon with active upstream driver work rather than the long tail of boards and devices running older GPU generations.

What Ships With the Merge

VA-API is staying in Firefox. The Vulkan Video implementation is an additional decode path, not a replacement, and the browser will continue using VA-API on systems where it works. AMD and Intel Linux users with functional VA-API setups don’t lose anything. On NVIDIA hardware, or on Arm chips where Vulkan Video driver support is present, a decode path that previously required significant manual configuration or was absent entirely now becomes an option.

The rough-edges question is real. Early media feature launches in Firefox have typically come with narrower codec coverage or higher CPU overhead than the mature VA-API path. The mpv media player, which adopted Vulkan Video decode before Firefox, documented early-release performance being slower than VA-API on some older AMD GPU configurations. The codec coverage for version 153 also remains unspecified: Vulkan Video’s finalized extensions cover H.264, H.265, and AV1, but whether Firefox ships all three or starts with a subset is something Mozilla has not yet addressed in any public-facing release notes or developer blog post.

Firefox 151, released May 19 and notable for a significant batch of AI-discovered security fixes, is the current stable version. Firefox 152 is expected around June 16. The Vulkan Video code is in the development tree as of this week, which gives it the full nightly and beta testing cycle before Firefox 153 ships on July 21.

Logan Pierce is a writer and web publisher with over seven years of experience covering consumer technology. He has published work on independent tech blogs and freelance bylines covering Android devices, privacy focused software, and budget gadgets. Logan founded Oton Technology to publish clear, no nonsense tech news and reviews based on real hands on testing. He has personally tested and reviewed dozens of mid range and budget Android phones, written extensively about app privacy, and built and managed multiple WordPress publications over the past decade. Logan holds a bachelor's degree in English and studied digital marketing at a certificate level.

Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Trending