VK_EXT_descriptor_heap proposal is a good read.
vulkan has come a long way, to the point that if you use all the modern improvements, it looks almost nothing like what came out in 2016.

dynamic rendering and unified image layouts were my favorites as obviating the most annoying (and often pointless on modern hw) parts of the api. this one is the best though, i've always hated descriptor sets.

https://docs.vulkan.org/features/latest/features/proposals/VK_EXT_descriptor_heap.html

VK_EXT_descriptor_heap :: Vulkan Documentation Project

@nicebyte Is there a writeup that summarizes how to do Vulkan nowadays? I have lost track of all the extensions that midigate the pain points of Vulkan 2016 (which I still use).

@pythno @nicebyte the Vulkan Guide is okay-ish and tries to keep uptodate with the core API and deprecations: https://docs.vulkan.org/guide/latest/index.html (better than any OpenGL documentation anyway).

For extensions it's the same mess though. The actual extension text is usually extremely sparse (and all in all useless), but sometimes there's the proposal text linked which is much more useful).

Khronos Vulkan Guide :: Vulkan Documentation Project

@pythno @nicebyte interestingly the biggest pain point is not the Vulkan API, but the swapchain / window system glue. I had a lot more trouble with that shit than with the actual rendering/compute API (each Vulkan driver seems to have different opinions about how the swapchain is supposed to work - but why is the swapchain implementation even vendor-specific in the first place?)

@pythno @nicebyte in sokol-gfx I basically use:

- Vulkan 1.3 core API features
- "synchronization2"
- dynamic rendering (e.g. Metal-style transient render passes instead of baked pass objects)
- VK_EXT_descriptor_buffer (eventually to be replaced with VK_EXT_descriptor_heap)

...the biggest surprise so far was how poorly VK_[EXT|KHR]_swapchain_maintenance1 is supported. It reads like it's a natural cleanup extension that everybody supports, but coverage is below 30% and not worth the hassle.

@pythno @nicebyte ...also my impression so far is that Vulkan on Linux is in much better shape than on Windows, but that might also be the limited number of configs I can test, OTH it wouldn't be surprising considering the "evolutionary pressure" via Proton, while on Windows by far most games go through D3D11/D3D12.
@pythno there is one by @sascha though I still haven't got around to reading it

@pythno @nicebyte That's https://www.howtovulkan.com

It's supposed to show how to do Vulkan rasterization in 2026.

How to Vulkan in 2026 - How to Vulkan

How to write Vulkan graphics code in 2026