Vulkan has been out for around 9 years now, and The Khronos Group continue tweaking it for developers to remove frustrations. It's probably the most important thing to ever happen for Linux gaming as a whole, with it being the reason we have so many games performing so well inside of Proton.
No graphics API is ever going to be perfect though and Khronos have been listening to developers. They said "One of the most frequent developer frustrations has been the complexity of managing image layouts" and they've formally announced the "VK_KHR_unified_image_layouts" extension today which should help deal with the synchronization model.
More from the blog post:
It’s been over a decade since Vulkan’s synchronization model was first designed. At the time, the graphics development community strongly favored explicit control over synchronization, and the Vulkan Working Group responded with an API that prioritized performance on the hardware of that era, delivering maximum flexibility and control to application developers.
In hindsight—and perhaps unsurprisingly—synchronization has turned out to be one of Vulkan’s most challenging aspects, tripping up both new and seasoned developers. The synchronization model is complex enough that many applications struggle to issue synchronization commands that are efficient or even correct. The
VK_KHR_synchronization2
extension introduced several incremental improvements while largely preserving the foundational principles of Vulkan 1.0’s original approach.Since then, modern GPUs have evolved significantly, including how they handle synchronization, making many of Vulkan’s original design constraints increasingly outdated. Recognizing this, the Vulkan Working Group is now actively working to streamline synchronization, aiming to improve usability and make high-performance graphics development more accessible. The newly released
VK_KHR_unified_image_layouts
extension is a major milestone on that path.
In regards to Linux support, NVIDIA put up a Vulkan Beta driver on June 8th that added support for the extension. For the open source Mesa RADV AMD driver support for it was merged in two weeks ago, and I haven't seen any yet for Intel.
Read the full technical blog post for more.
Nice to see this graphics API continue to evolve, and in some ways get simpler for developers. Good news for the overall health of Vulkan and Linux gaming as a whole.