Microsoft’s DirectX 12 and Apple’s Metal are next-generation graphics platforms. They provide lower-level access to graphics hardware, allowing game programmers to squeeze more performance out of the hardware. Vulkan is the cross-platform answer to Microsoft and Apple’s technologies.
As Vulkan is cross-platform, it brings this next-generation graphics technology to Google’s Android, Valve’s SteamOS, Linux, all versions of Windows, and potentially even Nintendo’s next console. Vulkan brings better gaming performance on absolutely any platform that wants to use it, and makes games more portable between different platforms.
It All Started With AMD’s Mantle
In order to understand where Vulkan came from, it’s important to know a little history. It all started with AMD’s work on Mantle, which was announced in 2013. Mantle was a new graphics system pitched directly to game developers. It promised to make games faster by providing a more efficient graphics layer. More technically, it promised lower CPU overhead and more direct access to lower-level graphics hardware features.
AMD provides the graphics hardware for both Microsoft’s Xbox One and Sony’s PlayStation 4, and said that Mantle was built on the optimizations it worked on for those next-generation game consoles.
Mantle competed with Microsoft’s DirectX and the cross-platform OpenGL, both of which were showing their age at the time. In fact, this was a direct attack on Microsoft’s own DirectX, which many PC games use. AMD executives at the time said they never expected Microsoft to even release another DirectX. So AMD just had to convince game developers to leave DirectX and OpenGL behind and use their newer, better system.
DirectX 12, Metal, and Vulkan
Microsoft responded. In 2014, Microsoft announced DirectX 12, which is now included in Windows 10 and the Xbox One. Microsoft pitched it in the same way, promising a more efficient graphics system than DirectX 11, and one that provided direct access to low-level graphics hardware features.
Apple also announced a similar technology in 2014 called Metal. It was added to iPhones and iPads with iOS 8, and to Macs with OS X 10.11 El Capitan.
AMD shifted gears after this. A few games implemented experimental Mantle support, but the technology was never really released to the public. AMD announced it would focus on Microsoft’s DirectX 12 and the “Next-Generation OpenGL Initiative” rather than pushing its own platform. That “next-generation OpenGL initiative” was managed by the Khronos Group, which also manages OpenGL, and ultimately became Vulkan. Even if you’ve never heard of OpenGL, you’ve certainly used it. All Android 3D games and most iPhone 3D games–until Apple’s Metal was announced, at least–have been written in OpenGL.
Vulkan brings a cross-platform, next-generation graphics system to Android, SteamOS, and Linux. Windows games can use Vulkan, too. Sony’s PlayStation 4 could add Vulkan support, just as Microsoft’s Xbox One added DirectX 12 support. Nintendo quietly joined the Khronos Group in 2015, so there’s a good chance Nintendo’s next console could use Vulkan as well.
Vulkan even works on Windows 7 and Windows 8.1, which will never receive Microsoft’s DirectX 12. Because it’s cross-platform, game developers can choose Vulkan and their optimized code can run on various different platforms, rather than just Windows 10, or just OS X.
That’s the point of Vulkan: it can be added to practically any platform. Developers could code games in Vulkan and they’d be easily portable between different platforms, which is a huge boon if it delivers on its promises.
Vulkan Is Already Here
The Khronos Group released version 1.0 of the Vulkan specification on February 16, 2016. Both NVIDIA and AMD added Vulkan support to their Windows and Linux graphics drivers, allowing Windows and Linux games to use Vulkan. Intel has released beta versions of their graphics drivers with Vulkan support for both Windows and Linux. Valve’s SteamOS gained Vulkan support by updating to these new drivers.
In short: As long as you update your drivers, Vulkan already works with a lot of existing graphics hardware. Now all we need are Vulkan-enabled games.
Google has even announced that future versions of Android will have built-in support for Vulkan, and evidence of work on Vulkan can be seen in the work on Android’s source code. Vulkan will probably appear on future consoles and various other hardware platforms, too.
Games Using Vulkan Are on the Horizon
Vulkan, just like DirectX 12 and Metal, isn’t really something you as a gamer can choose to use. They’re new graphics programming systems game developers can choose to use.
Like with DirectX 12 and Metal, you just have to wait for future games to support these technologies. Currently, The Talos Principle offers experimental support for Vulkan, which you can enable. However, that game wasn’t designed to use Vulkan, and its Vulkan code is early and not as optimized, so this won’t necessarily tell you much about Vulkan’s potential performance.
Vulkan won’t entirely replace OpenGL, of course. As Croteam, developers of The Talos Principle, put it: “For simple games, OpenGL (or Direct3D for that matter) is here to stay; [the] learning curve is not [as] steep as with Vulkan. However, Vulkan really shines when it comes to reducing application and driver CPU overhead. It is (or will be) much faster than Direct3D 9, 11 and OpenGL!”
But Vulkan isn’t just about choosing a new option in a graphics settings menu. It helps Linux and SteamOS catch up with Windows gaming and become much more competitive. It means Android will soon have a next-generation graphics layer competitive with Apple’s Metal. And it means game developers can choose Vulkan rather than DirectX 12 and more easily support a variety of platforms–including Windows. This is good for all gamers.
Like DirectX 12 on Windows and Metal on Apple’s platforms, Vulkan is an exciting new graphics technology that will promises to help game developers make their games faster. As a cross-platform technology, it also has other benefits–bringing these features to new platforms and promising to make it easier to port games between platforms.