With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But despite all the credit hardware gets for advancements in graphical technology, none of what we have seen so far would have been possible without equally groundbreaking software advancements. And perhaps the most significant software advancement of this generation is the launch of the Vulkan 1.0 specification.
What Is Vulkan?
“Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms,” describes this new API its main developer, non-profit tech consortium Khronos Group, on its official website.
The Khronos Group first announced Vulkan at the Game Developers Conference in 2015, but the technological foundation upon which Vulkan stands dates to 2013, when AMD originally developed Mantle, a low-overhead rendering API targeted at 3D video games, in cooperation with DICE and donated it to the Khronos Group to kickstart Vulkan's development.
Vulkan is often called “a spiritual successor to OpenGL” even though its philosophy is very different. OpenGL and other older graphics APIs were designed back when photorealism was still a distant dream, and single-core CPUs and GPUs represented the cutting edge of technology. As hardware improved, OpenGL and its equivalents have been extended numerous times, allowing them to run on modern hardware as well as on hardware that's now essentially obsolete.
“The cost of this approach has been that the behavior of modern GPUs is so abstracted by the API that it is hard for the application and the driver to know each other's needs. The result is an unpredictable performance for the application and considerable complexity in the driver, as each vendor applies different driver optimizations in an attempt to make software run quickly,” explains Samsung.
According to Robert Hallock, AMD's Head of Global Technical Marketing, the company wanted to bring OpenGL, a high-level, cross-language, cross-platform application programming interface for rendering 2D and 3D graphics over to a low overhead approach. As an “explicit API,” Vulkan eliminates the need for complex drivers and moves control to the hands of software developers and the applications and games they create. This, in turn, means nicer graphics, better running games, and shorter development times.
How Does It Work?
Unlike older APIs such as DirectX 11 and the aforementioned OpenGL, which automate memory allocation, 3D command buffer construction, and other processes on the GPU, Vulkan brings software developers much closer to the bare hardware, giving them more control over the performance, efficiency, and capabilities of their software products.
Hallock said that developers “really, really wanted to be in control,” and that's exactly what Vulkan delivers: control and precision. Because Vulkan is intended to support current graphics hardware, it better utilizes multi-core GPUs and reduces CPU bottlenecks. And unlike DirectX 12, which was announced by Microsoft at GDC in 2014, Vulkan is platform agnostic, meaning it can run on everything from personal computers to consoles to smartphones, regardless of operating system.
What Does It Mean for Linux Users?
Until Vulkan's arrival, the number of games Linux users could enjoy was fairly limited because most game developers have been relying on DirectX, which is not available on Linux. Thanks to Vulkan, the number of AAA games available on Linux is growing rapidly, and Linux derivatives such as Valve's SteamOS, a Debian-based Linux operating system by Valve Corporation, have become viable alternatives to traditional consoles such as Xbox or PlayStation.
To enjoy Vulkan on Linux, it's necessary to own a graphics card that supports this new API, and it's also necessary to have up-to-date graphics drivers installed and properly configured. Right now, Steam provides by far the most convenient way how to try Vulkan-based games, such as The Talos Principle, Doom, Mad Max, or Wolfenstein II: The New Colossus.
According to tests by Phoronix, Vulkan is allowing for lower CPU utilization than OpenGL across the Intel Coffeelake processors from low-end to high-end as well as AMD's Ryzen processors. The lower CPU utilization and support for Linux means that budget-minded gamers can save a substantial amount of money by buying a less expensive processor and not paying for a Windows license.
What Does Vulkan Mean for the Gaming Ecosystem?
“For the developers of premium applications, who spend more time optimizing their software for portability and performance than in basic content creation, Vulkan should reduce overall development time and improve the customer experience. By moving more control to the application, Vulkan reduces the total amount of work that the CPU must do and allows application developers better control over how that work happens,” states Samsung.
A lot has been said lately about the rising cost of game development and the various ways how publishers try to offset it, for example by adding pre-order bonuses and microtransactions. Even though Vulkan alone isn't nearly enough to recoup the rise of development costs, it might enable indie developers to give us more AAA experiences without AAA prices, such as the critically acclaimed cinematic psychological horror action-adventure Hellblade: Senua's Sacrifice.
The greater degree of control Vulkan gives developers over graphics processing makes it a great fit for virtual reality, where low latency and high frame rates are critical for achieving immersion without feeling physically ill. In fact, the Khronos Group has added Vulkan Multi-GPU and Virtual Reality Support to the Vulkan API earlier this year, making one additional step toward 16,000 x 16,000 pixels per eye at 200 frames per second, which many see as the ultimate goal of virtual reality.
Vulcan is a huge step forward for Linux users who are interested in computer gaming, and it's also a huge step forward for the entire gaming ecosystem, allowing game developers to create better optimized games in less time. Best of all, you can try Vulcan right now-all you need is Steam and a Vulcan-ready graphics card.