Back in August with the Vulkan 1.4.327 spec update was the introduction of VK_VALVE_video_encode_rgb_conversion as a Valve vendor extension. The open-source Radeon Vulkan “RADV” driver has now merged support for this extension that is being used now by Steam Link VR.
VK_VALVE_video_encode_rgb_conversion builds on the VK_KHR_video_encode_queue extension to allow software to pass in RGB/RGBA images in video encode operations.
Autumn Ashton of Valve worked on the VK_VALVE_video_encode_rgb_conversion Vulkan spec itself and subsequently worked out the implementation for the Mesa RADV Vulkan driver. Ashton explained in the merge request adding the support:
radv/video: Implement VK_VALVE_video_encode_rgb_conversion
This is used by Steam Link VR (driver_vrlink) to avoid doing YUV conversion itself.
There’s some extra color models (eg. 2020), etc that can be implemented but they are not exposed in ac_vcn_enc.h right now, so I haven’t hooked them up in this initial implementation.
After the merge request was open the past month, this RADV support for VK_VALVE_video_encode_rgb_conversion is now merged ahead of the Mesa 26.0 release due out in mid-Q1.
