Vulkan Video Arrives For New Industry-Standard Video Encode/Decode

Written by Michael Larabel in Vulkan on 13 April 2021 at 09:00 AM EDT. 38 Comments
VULKAN
For years we have been eager to learn more about the long mentioned Vulkan Video API, which was supposed to come in H1-2020, but now has finally arrived with today's v1.2.175 update in provisional form. The new Vulkan Video extensions allow for GPU-accelerated video encode/decode. The initial public work is treated as a provisional specification and with limited codec coverage but will be expanded upon in time.

Vulkan Video allows for GPU-accelerated encode/decode and integration with the Vulkan API over scheduling, synchronization, and other Vulkan capabilities. The main new extensions for Vulkan Video are VK_KHR_video_queue, VK_KHR_video_decode_queue, and VK_KHR_video_encode_queue. Vulkan Video is designed to be extensible in terms of codec coverage while initially the new extensions there are VK_EXT_video_encode_h264, VK_EXT_video_decode_h264, and VK_EXT_video_decode_h265).

Notably absent right now is VP9 and AV1 open-source / royalty free video codecs... Fortunately, The Khronos Group says they will be coming in a future Vulkan update. Their initial focus was on ensuring the core architecture components are ready and once that is all settled will be broadening their codec support. Too bad they didn't make it for today's debut but hopefully won't be too long before seeing the expanded coverage. A Vulkan H.265 encode extension is also still in development.

The Khronos Group has published a blog post this morning on Khronos.org outlining the Vulkan Video functionality in much greater detail. Check that out to learn about Vulkan for video encode/decode/transcoding.


First out of the gate with Vulkan driver coverage for the video extensions are expected to be NVIDIA. NVIDIA should be releasing a new beta Vulkan driver this morning that supports these Vulkan video extensions. I haven't yet heard from AMD or Intel on when they plan to introduce Vulkan Video support with their (open-source) Linux Vulkan drivers. At least in the case of Intel hopefully it will come soon for ANV given their resources and already having their advanced open-source multimedia stack. On the AMD side for open-source they have been relying on Gallium3D-based video acceleration so far and will be interesting to see if/when they adapt AMDVLK to Vulkan Video and whether the independent RADV driver manages to tack on support for these video extensions too.

NVIDIA has published a Vulkan video decoder open-source example for those interested. The Khronos Group and their partners are also working on conformance test suite coverage, more code samples, and other additions around Vulkan Video.

Hopefully once Vulkan Video 1.0 specifications are finalized we will see more multimedia software make use of this video encode/decode API compared to the fragmentation seen now by different video interfaces especially with different supported APIs between Windows and Linux. With Vulkan Video 1.0 and when the expanded codec support is here we stand good chances of this hopefully becoming the dominant interface for GPU-accelerated video encode/decode... Well, hopefully it takes off better than OpenMAX.

The provisional Vulkan Video extensions are the most significant work found in today's spec update but there are also other new extensions in Vulkan 1.2.175.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com 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 OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week