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.
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 practise guides
Low level, responsibility for many tasks moves from driver into application scope. Developers must explicitly configure settings, allocate and manage memory, manage transfering 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!
VulkanSDK LUNARG’s website containing the VulkanSDK - provides a single package with headers and libs for Windows, Linux and macOS.
AndroidNDK - Googles Android NDK
vulkan.org - official website
|Prev: Low Level APIs||Next :High Level APIs|