Simplifying Vulkan one subsystem at a time
Perceived Improvements in Vulkan
- Commenters welcome dynamic rendering, descriptor buffers/heaps, and push descriptors as big reductions in boilerplate, comparable to the jump from render passes to dynamic rendering.
- New descriptor heap extension is seen as a good evolution of descriptor buffer: “descriptors as memory,” closer to a “no-graphics-API” style model.
- Some hope these changes will bring Vulkan closer to OpenCL feature parity and simplify compute workloads.
Ongoing Pain Points
- Core complaint: the API is still extremely verbose and conceptually heavy (memory allocation, descriptors, queues, synchronization). Many want a “one-line malloc” and a simple default queue.
- The layering of old and new features (like OpenGL) makes it hard to know which of several ways is current, deprecated, or performant.
- Swapchain and frame-loop setup is highlighted as particularly error-prone, with even official samples triggering validation errors on some hardware.
Adoption, Coverage, and Drivers
- Major obstacle is inconsistent feature support and driver quality, especially across OS versions (Ubuntu LTS, RHEL) and hardware generations.
- New extensions often have very low coverage for years, making them unusable for general-purpose apps (e.g., editors like Zed).
- Some argue we should abandon laggard GPU vendors; others stress the need to support users on older hardware/OS.
Desktop vs Mobile and Android
- Vulkan on Android is widely described as fragile; developers report device-specific bugs and often stick with OpenGL ES as the safer option.
- There is debate over efforts to make GLES run atop Vulkan and whether this will force OEMs to improve Vulkan drivers.
Vulkan vs Other APIs
- OpenGL is defended as “good enough” and simpler for many workloads, despite being considered “dead for new projects” by others.
- Metal and D3D11 are praised as much less verbose, with Vulkan seen as shifting complexity from drivers to applications.
- CUDA is cited as a positive example of “easy first, opt-in complexity later.”
WebGPU Discussion
- WebGPU is seen as modeled on early Vulkan/D3D12 concepts, with heavy pipeline and binding machinery and no buffer device address.
- Many feel it lags even OpenGL 4.6 in flexibility, but acknowledge it must target lowest-common-denominator hardware and browser constraints.