‘It’s a matter of if, not when.’
DirectX 12 and Vulkan are supposed to be the wave of the future for PC gaming- that’s what we’ve been told. But while the two APIs continue to be engaged in a fierce battle for supremacy, uptake on them by most developers has been… slow, to put it bluntly.
So when we had the chance to speak with Brad Wardell, CEO of Stardock – who you may remember as one of the most vocal proponents of DirectX 12 – we made sure to ask him why developers aren’t using it and Vulkan all that well. According to Wardell, the lack of support right now comes down to the newness of both APIs, and the ensuing lack of documentation on properly exploiting them- but for both of them, widespread adoption is only a matter of time.
“DirectX 12 and Vulkan are certainly total game changers because they allow multiple threads to be talking to GPUs simultaneously,” he said. “It’s as simple as that. DirectX 11, no matter how fancy your engine was, only one of your threads could talk to the graphics engine at a time. And that was better than DX9, where only one fixed thread could talk to an engine at a time.
“But DirectX 12, if I have 8 or 16 cores, and all of them can talk to the engine at once- then that’s a hell of a performance boost. That was actually the reason I got a lot of scepticism about the benchmarks for Ashes of the Singularity, because we came out and said we are seeing a 400% boost in performance on an eight core machine. And when we shipped it, it ended up being even bigger than that. People thought the numbers were crazy, but think about it, they’re not. If in DirectX 11, only one core can talk to the GPU at once, and in DX12, we have eight- your theoretical limit would be eight times a boost. We don’t really get that, but a four times boost is not that crazy then.
Given how game changing these two are, the only reason they are not being supported right now is a lack of documentation, according to Wardell.
“The biggest reason is documentation. With DX11, there’s lots and lots of books out there for it. DX12 needs a lot more documentation before people will pick it up. The other thing is, people are now using off the shelf parts. And so, that can be tricky because if you have multiple threads talking to the graphics adaptor once, you have to be careful how those threads work, you can’t just- if you have two threads talking at once, your apps will crash. It’s actually quite tricky to do it right. And so because of that, it’s just slow going. I can say that Microsoft is doing some pretty exciting stuff on that end- but whether, in the long term, it’s all going to be DX12 and Vulkan, because you can’t just walk away from something like this. Wait until 16 core CPUs are the norm, if you’re using DX11 at that time still, you might be at 1/10th the speed of a DX12 game. That’s impossible to ignore.”
Given that multi-core CPUs are a wave of the future, and something that are only going to get more and more prevalent across all product categories as time goes on, it is only a matter of time before developers have to contend with programming for them. Given that, Wardell may be right- it will only be a matter of time before they are forced to come to terms with either DirectX 12, or Vulkan, or both.