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.