Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

Recently with the Vulkan 1.2.197 specification update, a new extension popped up that has plenty of developers happy with Dynamic Rendering and now The Khronos Group has formally announced it with a more detailed explanation. Extension info is of course aimed at developers, not most of us normal consumers but we still thought it interesting to highlight to bring more attention to it.

The Vulkan API is vitally important for Linux gaming, since it can provide much greater performance than OpenGL. It's used in the DXVK and VKD3D-Proton projects, which translate Direct 3D to Vulkan for use with Steam Play Proton, and it's the reason we see the performance level with it that we do when running Windows games.

When we were designing Vulkan 1.0, we had an idea to embed a task-graph-like object into Vulkan in the form of the render pass object. We knew the first version would be kind of restricted because we had an API to ship, and not long to do the work - but we had plans to extend the initial version, and those extensions would eventually provide significant flexibility to the API. Eventually, render passes would support all kinds of bells and whistles, including larger regions on input attachments, resolve shaders, and compute shaders! The idea was that these features would provide enough motivation to move all rendering to render pass objects and make the small amount of pain setting them up always worth it.

Fast forward to 2021, and the situation is not quite what we'd envisioned. On tiling GPUs, subpasses provide optimisation opportunities that can translate to impressive performance and efficiency wins. However, for many developers, subpasses either remain too restrictive to use or simply don't provide any practical benefit. For developers not using subpasses, render pass objects largely just get in the way.

It's time we addressed this.

The Vulkan Working Group

The newly announced extension is VK_KHR_dynamic_rendering, allowing developers to tell the API to just start rendering with no render pass objects. They continued to mention that if developers aren't using "multiple subpasses or input attachments" to rip out their render pass objects, as Dynamic Rendering offers up similar performance but with a much simpler interface that should make writing Vulkan renderers "just a bit more enjoyable".

On the subject of the future of Vulkan, that was touched on too. Many of the issues solved previously were what they called "low hanging fruit" (easier stuff) but now they're beginning to tackle some of the more challenging issues for developers using Vulkan like this. This new extension in particular took "a lot of care and patience" to get right, and some big technical challenges for "some hardware vendors" had to be overcome too.

During 2022 they said to expect to see some of the more ambitious projects getting a release. It will be thoroughly interesting to see what they're cooking for the Vulkan API.

See more on the announcement post. You can follow updates to the extension on GitHub.

Article taken from GamingOnLinux.com.
Tags: Game Dev, Misc, Vulkan
29 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
6 comments

scaine Nov 11, 2021
View PC info
  • Contributing Editor
  • Mega Supporter
Yeah, I rarely understand the grit of these posts, but I still enjoy reading about them. Definitely well worth posting! And you can always filter off the "Game Dev" tag if these posts don't interest you!
ShabbyX Nov 11, 2021
QuoteThis is of course aimed at developers, not most of us normal consumers

Since when are Vulkan extensions aimed at consumers? :D
Liam Dawe Nov 11, 2021
Quoting: ShabbyXSince when are Vulkan extensions aimed at consumers? :D
That was the point I literally made by saying that.
CatKiller Nov 11, 2021
View PC info
  • Supporter Plus
Quoting: Liam Dawe
Quoting: ShabbyXSince when are Vulkan extensions aimed at consumers? :D
That was the point I literally made by saying that.
ShabbyX's point is that if you're saying that this extension is just for developers, then all those other Vulkan extensions must be intended for a wider audience.
Liam Dawe Nov 11, 2021
Quoting: CatKiller
Quoting: Liam Dawe
Quoting: ShabbyXSince when are Vulkan extensions aimed at consumers? :D
That was the point I literally made by saying that.
ShabbyX's point is that if you're saying that this extension is just for developers, then all those other Vulkan extensions must be intended for a wider audience.
Got it now, edited, thanks.
ShabbyX Nov 12, 2021
@CatKiller, thanks, though I said that jokingly. "This" was ambiguous of course, Liam clearly meant "Vulkan extension work", but could have been mistaken for "this particular extension".

Anyway, joke's not funny anymore, we can stop.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.
Buy Games
Buy games with our affiliate / partner links: