The standards body Khronos released the successor to OpenGL, Vulkan-1.0 in February 2016, ushering in the next generation of Open, Cross Platform API for graphics and compute.

Pros:

  • Very low CPU overhead enables low power consumption and higher performance.

  • Multi-threaded for modern CPUs and GPUs: Designed from the ground up for multi-threading, with state localized within command buffers and explicit synchronisation primitives.

  • Cross platform: source Wikipedia “Vulkan runs natively on Android, Linux, BSD Unix, QNX, Haiku, Nintendo Switch, Raspberry Pi, Stadia, Fuchsia, Tizen, and Windows 7, 8, 10, and 11. MoltenVK provides freely-licensed third-party support for macOS, iOS and tvOS by wrapping over Apple’s Metal API.”

  • Runtime extension system, enabling fine-grained support for latest hardware features, including:
    • Ray Tracing
    • Mesh Shaders
  • Vulkan layers that can be enabled at runtime:
    • Validation layers
    • API output layers
    • Best practice guides

Cons:

  • Low level, responsibility for many tasks moves from driver into application scope. Developers must explicitly configure settings, allocate and manage memory, manage transferring of data to/from GPU and dispatching and synchronizing CPU and GPU operations.

  • Requires more knowledge and code to implement even simple features - 1500 lines of code to just render a textured triangle!


Prev: Low Level APIs Next: High Level APIs