Vulkan API: The Ultimate Guide for Cross-Platform Graphics and Compute
Vulkan: A Modern Graphics and Compute API for High-Performance Applications
Vulkan is a low-overhead, cross-platform API, open standard for 3D graphics and computing. It targets high-performance real-time 3D-graphics applications, such as video games and interactive media, and highly parallelized computing. Vulkan is intended to offer higher performance and more efficient CPU and GPU usage compared to the older OpenGL and Direct3D 11 APIs. It does so by providing a considerably lower-level API for the application than the older APIs that more closely resembles how modern GPUs work. Vulkan is comparable to Apple's Metal API and Microsoft's Direct3D 12, and is harder to use than the higher-level OpenGL and Direct3D 11 APIs. In addition to its lower CPU usage, Vulkan is designed to allow developers to better distribute work among multiple CPU cores.
History of Vulkan
Vulkan was first announced by the non-profit Khronos Group at GDC 2015. The Vulkan API was initially referred to as the "next generation OpenGL initiative", or "OpenGL next" by Khronos, but use of those names was discontinued when "Vulkan" was announced. Vulkan is derived from and built upon components of AMD's Mantle API, which was donated by AMD to Khronos with the intent of giving Khronos a foundation on which to begin developing a low-level API that they could standardize across the industry.
Features of Vulkan
Vulkan is intended to provide a variety of advantages over other APIs as well as its predecessor, OpenGL. Vulkan offers lower overhead, more direct control over the GPU, and lower CPU usage. The overall concept and feature set of Vulkan is similar to concepts seen in Mantle and later adopted by Microsoft with Direct3D 12 and Apple with Metal. Intended advantages of Vulkan over previous-generation APIs include the following:
Unified API: Vulkan provides a single API for both desktop and mobile graphics devices, whereas previously these were split between OpenGL and OpenGL ES respectively.
Cross platform: Vulkan is available on multiple modern operating systems. Like OpenGL, and in contrast to Direct3D 12, the Vulkan API is not locked to a single OS or device form factor. Vulkan runs natively on Android, Linux, BSD Unix, QNX, Haiku, Nintendo Switch , Raspberry Pi, Stadia, Fuchsia, Tizen, and Windows 7, 8, 10, and 11.
Explicit control: Vulkan gives developers more control over the GPU pipeline, memory management, synchronization, threading, and resource allocation. This allows for more fine-grained optimization and reduced CPU overhead.