Today, the Khronos Group, the organization behind the OpenGL, OpenCL, WebGL and other open standards, announced the next-generation graphics API meant to replace OpenGL. The new API will be called Vulkan and is arising as an evolution of AMD's Mantle API, just like Apple's Metal and Microsoft's DirectX 12.When AMD announced the Mantle API that was "closer to the metal" than either OpenGL or DirectX in order to cut significant driver overhead and increase performance, many were skeptical, or even hostile toward AMD's mission.
Many believed that AMD might cause a fragmentation in the graphics API world, and that Intel or Nvidia would rather create their own APIs than work with AMD on Mantle, even if AMD extended an open invitation to all the other chip makers to join them and evolve the API together.
The risk wasn't non-existent, however the potential upside -- forcing Khronos and Microsoft to rethink their graphics APIs and tap into the hardware's full potential, much like you would with a console -- was too great to pass.
In the end, AMD's Mantle ended up fostering a revamping of everyone's graphics API, fearing that they would be replaced. Now both the new Vulkan API and DirectX 12 are heavily inspired by Mantle. And instead of creating fragmentation, we're getting much better standardized graphics APIs that perhaps we wouldn't have gotten in such a short period of time otherwise.
Some of Vulkan's main characteristics include:
- Completely cross-platform. No more OpenGL ES for mobile and OpenGL for desktop. There will be only one API for mobile, desktop, cars, consoles and so on.
- Direct access to the GPU for maximum console-like performance.
- Multi-threaded architecture to be optimized for all the multi-core processors we use today and use the CPUs' full potential.
- Extensible layered tools architecture, which should lead to increased innovation in a cross-vendor tools ecosystem.
- Simpler drivers that are easier to port across different hardware architectures.
- SPIR-V built into Vulkan's core (also in OpenCL 2.1), as native intermediate language, making it easier for developers to take advantage of multiple shading language front-ends
Most OpenGL developers have been complaining about the complexity and difficulty of using the API for many years. It's also one of the reasons why most prefer to work with DirectX, or didn't want to build games that also work on Linux.
OpenGL ES has generally been a much cleaner API, because the Khronos Group selected only the more basic (and more energy efficient) features to work on mobile. Vulkan however goes one step further and simplifies the API even more – giving direct control of the GPU to developers through a thinner driver layer. However, Vulkan is being designed to be able to run on any GPU with OpenGL ES 3.1 capabilities and upwards.
According to Khronos, game engine developers such as Valve and others have been surprisingly strong contributors of ideas to the Vulkan project. When AMD launched Mantle, the company said it also collaborated for a long time with EA's DICE, the creators of the Frostbite engine and the Battlefield series, in order to build and optimize the Mantle API for real-world use.
Valve has already been working with Nvidia to heavily optimize its GPU driver for OpenGL, to create the SteamOS and push the proliferation of Linux games. It's not a big surprise that now Valve is a main contributor to Vulkan as well.
"Industry standard APIs like Vulkan are a critical part of enabling developers to bring the best possible experience to customers on multiple platforms," said Valve's Gabe Newell. "Valve and the other Khronos members are working hard to ensure that this high-performance graphics interface is made available as widely as possible and we view it as a critical component of SteamOS and future Valve games."
Fortunately for Vulkan's future success, most of the important graphics players have been involved as well and will support the API in their devices or games. This includes companies from: AMD, Nvidia and Intel, to ARM, Imagination, Qualcomm, Epic Games, Unity and more.
The big initial worry about fragmentation seems to not have come true thanks a strong collaboration between all of these companies and Khronos' leadership in the project. Khronos started the project only last June, and now it already has a solid idea for how the API will work. The group will announce more information at GDC, including a Vulkan demo that will be shown on Thursday at GDC.
OpenGL ES alone was already on a trend of becoming the most popular graphics API for all computing machines. It's on billions of smartphones and tablets and starting with OpenGL 4.3 it is also available as a profile in the desktop drivers from Nvidia, AMD and Intel's Haswell GPUs.
Within a few years we may begin to see more and more games utilizing the Vulkan API over DirectX, in cases where developers want their games to work everywhere, including mobile. This could also give affordable Android consoles a big boost in game support, as the mobile hardware should be powerful enough by then to show advanced graphics in those games.