Recently, you may have noticed an ever-present flow of stories surrounding OpenGL and OpenGL ES successor Vulkan, a new low-level API from non-profit consortium the Kronos Group.
Most notably, we reported that Nvidia-powered Shield Android TV and Steam Machines would be getting Vulkan API support first, though eventually, the interface will help run games and graphics-heavy apps across PCs, consoles, smartphones, the cloud, and more.
Of course, all of this news might seem completely arbitrary if you’re not a software engineer. Most people don’t know what a low-level API is, or even care, for that matter. If you’re even mildly interested in gaming or computer technology, however, you’ve probably at least heard of DirectX, Microsoft’s own graphics API for Xbox and Windows PCs (it’s where the ‘X’ in Xbox gets its origin).
You may be wondering why Vulkan should matter to you, which, if you waste your nights avidly gaming them away much like myself, you’ll more than likely begin to reap its benefits soon enough. That said, it’s important to know what Vulkan is before making claims and bold and hyperbolic as “DirectX is dead” or “Metal for Mac never stood a chance.”
An API, or Application Programming Interface, essentially serves as a translator between the GPU and the game engine. Back when computer graphics of any kind were considered impressive — think back to the Atari 2600 and Commodore 64 — the games would converse directly with the hardware.
Nowadays, things aren’t quite that easy. With operating systems having grown more complex over the years, hardware functionality isn’t nearly as accessible to games and applications as it once was. The advent of device drivers, and later game engines like Unreal and Unity, added extra layers to the process. To accommodate these changes, we started to see APIs appear, the most commonly implemented being DirectX and OpenGL.
For those still clueless, Microsoft puts it nicely in its antiquated description of DirectX 8 for Windows XP:
“Windows supports DirectX 8.0, which enhances the multimedia capabilities of your computer. DirectX provides access to the capabilities of your display and audio cards, which enables programs to provide realistic three-dimensional (3-D) graphics and immersive music and audio effects. DirectX is a set of low-level Application Programming Interfaces (APIs) that provides Windows programs with high-performance hardware-accelerated multimedia support.”
In short, an API allows developers to optimize their games or programs for your specific PC build, without as much work on their end. But DirectX, the most common API, was created by Microsoft — and it only works with Windows. With Vulkan, Khronos is looking to offer an alternative that can work on any device.
Next generation hesitation
“OpenGL has evolved over 25 years and continues to meet industry needs,” the Khronos group boasted in a webinar that took place late last week, “but there is a need for a complementary API approach.”
Khronos is right. While Microsoft has been hard at work on DirectX 12 and, naturally, Apple has been doing something a little different with Metal for Mac, the question of “what about my other devices?” had persistently lingered. Generously, AMD handed over the code to its own API, Mantle, over to the Khronos Group in an effort to accelerate the production of a unified low-overhead API standard (ironically, the consortium is led by Nvidia vice president Neil Trevett, though there are some AMD members on the board).
As we learn more about Vulkan, it’s increasingly clear that Khronos is reluctant to allow OpenGL to fade into obscurity. Using words like “complementary” suggests Vulkan is designed to work in conjunction with OpenGL. And that’s not just a hunch. Also mentioned in the webinar was the fact that, for many developers, “OpenGL and OpenGL ES will remain the most effective API.”
How can developers move on to the next generation, if the previous generation is still considered relevant?
As optimistic as I am about Vulkan, the lack of commitment to moving forward leaves me skeptical. As the group said itself, OpenGL is 25 years old now. Vulkan was supposed to be its “next generation OpenGL initiative.” But how can developers move on to the next generation if the previous generation is still considered relevant?
Aside from moderately streamlined portability from its predecessor, and backwards compatibility with OpenGL ES 3.1/4.x GPUs, there’s no evidence suggesting a concrete relationship between the two APIs. It’s not clear why Khronos would continue to devote resources to keeping up OpenGL, unless it has a covert plan to ultimately phase out the old standard.
When doing less really does get you more
Nevertheless, Vulkan could pose a serious challenge to DirectX 12. Since releasing last July, only the beta versions of Fable Legends and Ashes of the Singularity actually support Microsoft’s new interface. In comparison, Vulkan is getting patched into The Talos Principle pretty soon, assuredly with more prominent implementations on the way.
In the webinar, a handful of surprisingly digestible visuals were exhibited, the most useful of which I’ve included below.
If the Khronos Group’s messaging is to be believed, Vulkan is not only easier to port to from OpenGL and OpenGL ES than DirectX 12, but it also provides more significant performance improvements. And that goes without mentioning, once again, that this is in fact a cross-platform API spanning a vast assortment of devices. The apparently inferior DirectX 12, on the other hand, is still limited to Windows 10 and Xbox One.
Given enough dev support, Vulkan could reign victorious
Vulkan is capable enough to leave Microsoft’s graphics API in the dust.
All in all, Vulkan presents some compelling advantages over OpenGL. Finally taking the initiative to combine support for embedded systems and for desktops was a much-needed amendment to the low-overhead API. It’s so potent, in fact, that its LunarG SDK is being sponsored by Valve, and its working group participants consist of companies as reputable as Google, Sony, Nvidia, Nintendo, and Epic Games.
Despite some commitment issues, Khronos could have the power to leave Microsoft’s DirectX team weak in the knees. Vulkan is capable and ubiquitous enough to leave Microsoft’s graphics API in the dust.
As graphics engine specialist for The Talos Principle Dean Sekulic was quoted: “Vulkan in just one sentence? The endless war between performance and portability is finally over!”
Perhaps there’s some amount of truth to that rhetoric.