Vulkan 1.4.317 was made public on Friday with a number of exciting new extensions, including VP9 video decoding for Vulkan Video, 8-bit floating-point data type support, and other additions.
Beyond the usual assortment of different specification fixes/clarifications, Vulkan 1.4.317 is notable for several new extensions including VK_KHR_maintenance9, VK_KHR_present_id2, VK_KHR_present_wait2, VK_KHR_unified_image_layouts, VK_KHR_video_decode_vp9, VK_ARM_tensors, and VK_EXT_shader_float8.
The brief summary of these new Vulkan API extensions include:
VK_KHR_video_decode_vp9 – There’s finally VP9 video decode with Vulkan Video! This VK_KHR_video_decode_vp9 extension worked on by AMD, NVIDIA, Collabora, Intel, and others allows for VP9 video support with Vulkan Video.
VK_EXT_shader_float8 – The VK_EXT_shader_float8 extension enables support for 8-bit floating point operations within shaders. This 8-bit FP support with VK_EXT_shader_float8 was added with an emphasis on opening up the Vulkan API to more machine learning software / AI.
VK_KHR_unified_image_layouts – The unified image layouts extension aims to significantly simplify synchronization in Vulkan by removing the need for image layout transitions. This will hopefully clear up at least some of the Vulkan synchronization complexities that have made some aspects of this API difficult by removing image layouts.
VK_ARM_tensors – This vendor extension from Arm adds support for tensors and the associated SPIR-V tensor capabilities.
VK_KHR_present_id2 – A proposed design for replacing VK_KHR_present_id. The main difference from VK_KHR_present_id is that VK_KHR_present_id2 allows quueryable per surface behavior rather than per device behavior.
VK_KHR_present_wait2 – This extension worked on by Valve’s Hans-Kristian Arntzen for VKD3D-Proton and other developers is for allowing applications to use the VK_KHR_swapchain extension to wait for present operations to complete. Using VK_KHR_present_wait2 can allow an application to use it to monitor and control the pacing of the application by managing the number of outstanding images to be presented.
VK_KHR_maintenance9 – Various minor changes like supporting VkDevice without any queues, adding a property to enable sparse support with VK_EXT_image_2d_view_of_3d, and other minor maintenance items.
More details on this exciting Vulkan API spec update via the Vulkan-Docs GitHub.