Vulkan

Vulkan is a low-overhead, cross-platform graphics and compute API published by the Khronos Group. It is designed to give applications direct, explicit control over GPU acceleration, minimizing driver overhead and CPU cost while enabling efficient use of multiple CPU threads to submit work. Unlike OpenGL, which presented a high-level state machine and relied on the driver to manage much of the work, Vulkan exposes a thinner, more predictable interface in which the application takes responsibility for memory allocation, synchronization, and command buffer construction.

The Khronos Group released the Vulkan 1.0 specification on February 16, 2016. According to the Khronos announcement, Vulkan was the result of about 18 months of collaboration among leading hardware, game engine, and platform vendors, and was intended to complement rather than replace OpenGL and OpenGL ES. The initial release supported Windows, Linux, SteamOS, Tizen, and Android, and major GPU vendors including AMD, ARM, Intel, NVIDIA, Qualcomm, and Imagination Technologies shipped or committed to drivers at launch.

A defining design choice is the use of SPIR-V, a binary intermediate representation, for shaders. Rather than compiling high-level shader source at runtime as OpenGL did with GLSL, Vulkan applications supply precompiled SPIR-V modules, which simplifies the driver, improves load-time performance, and decouples the API from any single shading language. The Vulkan Registry formally defines the core API and its extensions, specifying command prototypes, structures, and enumerants in machine-readable form, and serves as the basis for generating the API’s header files.

Because Vulkan moves validation and error checking out of the hot path, the specification is paired with optional validation layers that developers enable during development to catch incorrect API usage. LunarG released the first Vulkan SDK for Windows and Linux concurrently with the 1.0 specification, providing these validation layers and debugging tools. This separation lets shipping applications run with minimal overhead while still offering strong diagnostics during development.

Vulkan sits alongside Microsoft’s Direct3D 12 and Apple’s Metal as part of a generation of explicit, low-level graphics APIs that emerged in the mid-2010s. It is governed through the same open, royalty-free process that Khronos uses for its other standards, and it has been adopted across desktop, mobile, console, and embedded platforms, as well as serving as a backend for higher-level engines and portability layers.