If you follow graphics APIs, you've probably heard some terms tossed around over the last year thanks to AMD's Mantle and Microsoft's DirectX 12: "Faster," "leaner," "closer to the metal."
Get ready to hear them again, because Vulkan is doing all those things. I got the chance to speak with Khronos Group president Neil Trevett late last week, and we ran down the details of Vulkan--what it is, what it's for, and who it's aimed at. (Note: Trevett also works at Nvidia as its VP of Mobile Ecosystem).
Read on for a first look into what's looking like a strong, platform-agnostic competitor for DirectX 12 (and technically Mantle, although Mantle's future is currently...unclear, to say the least). If Valve's Steam Machines take off, Vulkan is the tech that will power them.
Love one another
"It's important that there's an open standard, cross-platform API that is up-to-date and truly modern and is providing state-of-the-art levels of performance," says Trevett.
"The number of platforms that want to use GPUs--it's not just PCs and mobile phones anymore. It's augmented reality systems. It's virtual reality. Cars use GPUs for vision processing. There's such a diversity of platforms coming, if every one of these platforms has its own specific API the world is going to be a very sad place."
Vulkan is a new cross-platform open standard aimed specifically at video games. That's an important distinction, for reasons we'll get into later.
Saying OpenGL is "inefficient" is a bit harsh, but in terms of gaming it's not far from the mark. Not only does it have 25 years of legacy fluff built into it, plus all sorts of baggage due to its usage in non-gaming applications, but the API itself prevents you from taking full advantage of the GPU due to issues like context management, error tracking, and the like. OpenGL controls the GPU the way it thinks you want to use it, not necessarily how you actually want to use it.
Vulkan "We're calling it an 'explicit' API," says Trevett. "Vulkan lays the GPU out in front of you and you can control it how you wish. You can do things like multithreading much more efficiently, and you get much more flexibility."
That power comes at a cost--namely, a greater likelihood to completely tank the system if you're not careful.
"It will appeal to a different type of developer," says Trevett. "Game engine developers--people like Valve and Epic and Unity--their business depends on getting every last ounce of performance out of cross-platform applications. They want to invest the time and effort to use a tool like Vulkan to extract every ounce from the GPU."
OpenGL is dead. Long live OpenGL.
Which brings up something important: What happens to OpenGL After all, Vulkan used to be called the "Next Generation OpenGL Initiative." It was pitched as a successor to OpenGL, plain and simple. Language like "It will appeal to a different type of developer," sounds more reserved.
"This is one of the key messages here," says Trevett. "Vulkan is nice and new and shiny, but of course it's just at the beginning of its development cycle. OpenGL, they're in their prime. They're enabling access to billions of devices. There's going to be business imperatives that we not just maintain those APIs--we evolve those APIs. For years, probably, to come. We're not abandoning OpenGL."
Got that While DirectX, Mantle, and now Vulkan tend to get a lot of attention due to their roles in the gaming community, Trevett is quick to draw a line between gaming and other GPU uses--many of which have relied on OpenGL for years because it's a more general-use API.
On the other hand, "If we didn't have Vulkan, OpenGL would begin to look more and more out of date for the people who want this kind of functionality versus Mantle and DirectX 12," concedes Trevett.
Vulkan essentially invokes the have-your-cake-and-eat-it adage: Khronos can continue to support those who need a more padded graphics API with a long legacy while still courting game developers who need a more flexible, stripped-down solution.
If Vulkan wasn't created, then the open-standard graphics movement would be beaten into the ground by newer, more powerful technologies like DirectX 12. Steam Machines would be dead before they even got started.
My kingdom for a port
"It's never a perfect world," Trevett jokes, "and of course DirectX is going to be a significant API on Windows, no doubt."
OpenGL, despite its cross-platform abilities, has been battling against DirectX for years now, and that's undoubtedly going to continue with Vulkan. On the other hand, there's good news for Linux gamers who are starting to see more and more big-name games on their open-source operating systems of choice with the promise of Steam Machines hanging in the air: "Porting between Vulkan and DirectX 12 we suspect won't be too hard," says Trevett.
"Porting from DirectX 12 to Vulkan will be easier than porting from DirectX 12 to OpenGL," he continues. "DirectX 12 and Vulkan and Mantle are going to be similar in the next generation. We're all solving the same problem in a similar kind of way."
And good news for basically everyone: You probably won't need new hardware to take advantage of Vulkan. Just like DirectX 12, Khronos is hoping to extend compatibility back a few hardware generations, which means you'll potentially notice a performance increase even on your old hardware once the API is officially released and introduced in new games.
"We are setting a design goal. We have a very specific goal," says Trevett. "Any hardware capable of supporting OpenGL ES 3.1 will be capable of supporting Vulkan. That basically means any GPU that can do compute shaders."
On the PC side, that equates to OpenGL 4.3, released in August of 2012. OpenGL 4.3 support extended back to the Nvidia GeForce 400 series and the ATI Radeon HD 5000 series--a.k.a. basically any GPU purchased after late 2009/early 2010. Judging by the Steam Hardware Survey those specs also encompass quite a huge amount of the PC gaming community.
It's early days for Vulkan still, and there's no formal specification yet, but Khronos has managed to get my attention. We'll potentially have more information to share later this week, as Valve and Khronos officially co-present the API to developers at their GDC panel Thursday morning-- glNext: The Future of High Performance Graphics (Presented by Valve).