Last month the Vulkan VK_EXT_present_timing extension was merged after 5+ years in development. VK_EXT_present_timing ended up debuting at the end of November within the Vulkan 1.4.335 spec update to much excitement for providing functionality to obtain information on the presentation engine’s display for accurate timing information and to assist in scheduling a present to happen no earlier than a desired time. This is a big win for helping avoid game stuttering and more while now the Mesa support for it is nearly complete and could be merged soon.
Hans-Kristian Arntzen of VKD3D-Proton fame and known for his countless contributions on Valve’s Linux graphics team has been working on the VK_EXT_present_timing support for Mesa’s Vulkan Windowing System Integration (WSI). In the merge request he opened last week for VK_EXT_present_timing with the Mesa Vulkan WSI, he commented that initially he’s focused on ensuring the X.Org support is in order:
“Getting the implementation off the ground. Focused on X11 first since it’s almost certain no-one has done that already :D
Xwl seems impossible to reliably implement. If there are better ways to do it, I’d be interested in hearing about it. I looked into PRESENT_CAPABILITY_UST, but it doesn’t seem to be supported in either Xorg or Xwl, at least on KDE.”
Over the past week there has been a fair amount of code comments/review and activity as well as working on additional features, Wayland support, KHR_display, and improving the XWayland support.
As of yesterday, Hans-Kristian Arntzen commented that he believes this VK_EXT_present_timing support for Mesa to be complete:
“I believe this MR is feature complete now. Looking for reviews.”
Eric Engestrom tested it on the Asahi code to great success with the right image being with VK_EXT_present_timing use:
The merge request enables VK_EXT_present_timing for the common Vulkan WSI code as well as wiring it up for the Radeon RADV, Qualcomm Adreno TURNIP, Intel ANV, HoneyKrisp for the Apple hardware as part of Asahi, and the open-source NVIDIA NVK drivers.
With how that merge request has matured over the past week and reached feature completion yesterday, hopefully this VK_EXT_present_timing support will soon be merged to Mesa Git – which should be well in time for making the Mesa 26.0 release in Q1.
