Today, there’s probably been a lot of interesting discussion around the water coolers at Microsoft on the development of Project Vulkan, a graphics API developed and supported by the Khronos Group that adopted AMD’s Mantle API as its base, iterating on it and improving it with the goal of making it the direct competitor to DirectX in Microsoft’s Windows operating system. Vulkan is technically a low-level API, but it still abstracts things in ways similar to DirectX, giving developers the option of digging deep into the nuts and bolts of the hardware they’re targeting to get the best performance from it. Today, AMD, the Radeon Technologies Group, and the Khronos Group are jointly announcing the release of the Vulkan 1.0 API specification, and with it comes a new set of beta drivers that support this API for the first time.
“The release of the Vulkan 1.0 specification is a huge step forward for developers. The Vulkan API, which was derived from Mantle, will bring the benefits of low-overhead high-performance Graphics API to the benefit of cross-platform and cross-vendor targeted applications,“ said Raja Koduri, senior vice president and chief architect of the Radeon Technologies Group at AMD. “The promotion of open and scalable technologies continues to be the focus at AMD, as a pioneer in the low-overhead API space.”
“As a member of the Khronos Group, AMD is proud to collaborate with hardware and software industry leaders to develop the Vulkan API to ignite the next evolution in PC game development,” he added.
Vulkan is in a unique position in the market, because it is one of the few multi-platform APIs that work on mobile and desktop operating systems. If you’re a game developer porting your project to Vulkan, you can target all the modern Windows operating systems as well as Linux and Android-based platforms. The only place it doesn’t have a foot in is inside Apple’s OS X, which has been promised the Metal API to do the same thing.
Summarising what I’ve written about Vulkan before, here’s what the above chart tells us:
Mantle’s selling point was that it could understand Microsoft’s shader language that they developed for DirectX, called the High-Level Shader Language (HLSL), so that any existing project that was already targeting DirectX could be forked to provide Mantle support at the same time without deviating too much from the pre-set deadlines. This allowed Mantle to work directly with the existing code, and all the work instead went into performance optimisation and just plain making things work.
Vulkan does it very differently. It can work with GLSL shaders (which is what OpenGL understands) and Khronos is planning to create a translator to turn any shader code like GLSL into something called SPIR-V. SPIR-V is another shader language that Vulkan can understand, but it isn’t just made for Vulkan, as it will include and present data that isn’t GPU-related at all to other APIs.
Practically, Vulkan aims to embody the same efforts we’ve seen from other companies who’ve wanted to introduce a write-once-run-anywhere approach. It wants to be able to translate the shader code for multiple platforms reliably, and it wants to be able to tell any GPU exactly what to do with it based on what it knows the GPU is capable of. Once Khronos Group has a HLSL translator working, porting older games from Windows to Linux should be a lot easier for third party developers who might pick up those old licenses in order to develop a remaster.
Vulkan isn’t trying to be the be-all and end-all of graphics APIs, but it definitely wants to be the software that makes it possible for, say, Psyonix, to port Rocket League from the desktop PC to the Google Play store for suitable Android devices with very few code changes and acceptable performance.
AMD did not set out any dates for the driver release, although it’s possible that it could be released in the next few weeks. As for which games might come out with Vulkan support first, it is possible that Valve will be releasing a Source 2-based version of DOTA 2 that runs on the Vulkan API, making it the first commercially-available Vulkan title. Other studios that have expressed interest in Vulkan are Crytek, Eidos Montreal, Unity Technologies, and Epic Games.