The Vulkan API (application programming interface) is a new graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs on a wide variety of devices from PCs to smartphones. Vulkan aims to lower overhead compared to older APIs like OpenGL and OpenGL ES and allow developers to get better performance out of their graphics hardware, especially for games.
Why Vulkan is Important for Linux and Android
Reduced Driver Overhead
One of the main goals of Vulkan is to reduce driver overhead and give developers more direct control over GPU hardware for better performance.
With older OpenGL drivers, there is a lot of CPU work that has to happen to translate OpenGL commands into GPU instructions. Vulkan drivers have less translation work to do, so there is less overhead.
This is especially important on Linux and Android where OpenGL driver overhead has traditionally been higher than on Windows. Vulkan allows the same game engine to get better frame rates on Linux/Android without having to specifically optimize for each platform.
Cross-Platform Portability
Vulkan provides the same API across Windows, Linux, Android, and more. This makes it easier to develop games that run well across PC and mobile.
Developers can write Vulkan code once and have it run fast across a range of Vulkan supported devices. They no longer have to maintain separate OpenGL and OpenGL ES render paths for desktop vs mobile.
Better Support for Multi-core CPUs
Vulkan is designed for multithreaded command creation and submission. It allows multiple CPU threads to generate work for the GPU simultaneously.
This maps better to today’s multi-core CPUs and allows games to fully utilize available CPU resources to feed the GPU. That’s especially beneficial for resource-constrained mobile devices.
New Features for Modern GPUs
Vulkan provides access to new GPU features and hardware capabilities that didn’t exist when OpenGL was first created.
Things like async compute, flexible pipelines, and descriptor sets better match what GPU hardware wants to do today. This allows games to use hardware more efficiently.
Vulkan Performance Examples
Here are some real-world examples that demonstrate the performance benefits Vulkan can provide on Linux and Android:
DOOM Eternal
The first-person shooter DOOM Eternal saw significant gains on Linux using Vulkan over OpenGL. In benchmarks, Vulkan provided over 2x better average framerate compared to OpenGL on Linux with an AMD RX 5700 XT.
Dota 2
Valve’s popular MOBA Dota 2 boosted its minimum FPS by over 50% on Linux by switching to the Vulkan renderer compared to OpenGL. Maximum FPS also increased substantially.
Fortnite
Epic Games’ Fortnite on Android using Vulkan performs 30-60% better than OpenGL ES on high-end devices like the Samsung Galaxy S9. It has much improved stability as well.
3DMark
In the 3DMark Time Spy benchmark, scores on Linux improved by 20-40% with Vulkan over OpenGL on a range of AMD and NVIDIA GPUs.
Summary
In summary, Vulkan is a big step forward for graphics performance on Linux, Android, and cross-platform game engines in general. By reducing driver overhead, exploiting multi-core CPUs, and matching modern GPU capabilities, Vulkan provides substantial gains over older APIs like OpenGL. As Vulkan usage increases, gamers can expect smoother framerates and better experiences on Linux and mobile platforms. Game developers are strongly encouraged to adopt Vulkan over legacy OpenGL where possible.