Mesa 23.1 RADV Driver Lands Vulkan Video Decoding For H.264/H.265


The work led by Red Hat’s David Airlie on supporting Vulkan Video with the Mesa RADV driver has seen the work mainlined today for Mesa 23.1!

As of this morning the Mesa 23.1-devel RADV driver code now has Vulkan Video decoding wired up for both H.264 and H.265 content. At the moment though it’s not exposed by default but until it’s proven itself the code is hidden behind the RADV_VIDEO_DECODE=1 environment variable.

Video decoding tests with FFmpeg and its experimental Vulkan Video API support are working but isn’t formally passing the Vulkan Video tests yet, due to what is believed to be some AMDGPU firmware limitations around video interleaving. With the Mesa 23.1 code landing today it’s also only for Vulkan Video decode and not yet the encode extensions.

This RADV Vulkan Video implementation in turn is backed by the Radeon Unified Video Decode (UVD) and Video Core Next (VCN) accelerated video blocks, similar to the Mesa VA-API state tracker use, etc. But from the application perspective it allows multimedia software to target the new Vulkan Video API as a cross-platform video acceleration interface. Vulkan Video 1.0 was firmed up back in December after being in provisional form the past year.

Vulkan Video transcoding pipeline
Khronos Group Vulkan Video slide.

At the moment Vulkan Video is (sadly) just focused on H.264 and H.265 but VP9 and AV1 extensions are expected to be published this year. Airlie has even worked on experimental AV1 decode support via a Mesa vendor extension.

This RADV Vulkan Video work has been in development for months out-of-tree so it’s great to see it finally mainlined in time for next quarter’s Mesa 23.1 stable release.