Microsoft Lands HEVC Video Encode/Decode Within Mesa Using VA-API To Direct3D 12
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.