Microsoft Lands HEVC Video Encode/Decode Within Mesa Using VA-API To Direct3D 12

Written by Michael Larabel in Mesa on 15 September 2022 at 01:31 PM EDT. 12 Comments
In addition to Microsoft continuing to work on OpenGL and OpenCL atop Direct3D 12 by leveraging Mesa in order to benefit Windows Subsystem for Linux (WSL2) and related use-cases, Microsoft engineers have also been working on exposing video acceleration to Linux software backed by Direct3D 12 Video Acceleration.

Being merged today is the work implementing HEVC (H.265) video encode and decode GPU acceleration using Direct3D 12. The Mesa D3D12 driver implemented the necessary bits while using the VA-API Gallium3D state tracker so that it is exposed to the Linux software under WSL2 using this common Linux video acceleration API.

In the process Microsoft engineer Sil Vilerino also extended the Gallium3D VA front-end to offer more capabilities like multi-slice and multi L0/L1 reference encoding. Microsoft tested out this VA-API to D3D12 video acceleration on Windows via the MPV video player for decode and then using FFmpeg for both HEVC encode and decode.

Getting this H.265 video encode/decode for D3D12 working for Mesa was around five thousand new lines of code across the span of two dozen commits. This merge request gets all the functionality into place and is merged for next quarter's Mesa 22.3 stable release.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week