Last month we wrote about the possibility that Mantle and DirectX 12 could seriously boost the performance of multi-GPU systems. Now it seems the days of Nvidia’s SLI and AMD’s CrossFire technologies could be numbered, because the latest rumours are that DirectX 12 is going to ignore such proprietary nonsense.
The idea, touted by Tom’s Hardware, is that Microsoft’s upcoming graphics API is going to be able to aggregate all the graphics sub-systems in a machine as one big GPU, regardless of the manufacturer they hail from.
When Robert Hallock of AMD first tweeted about the new multi-GPU capabilities of both the Mantle and DirectX 12 APIs he was talking about them being able to split the rendering of a game across different GPUs as and when the developers saw fit. That meant they could then treat the entirety of the combined frame buffers as one big mess of graphics memory and that would help enable multi-GPU systems to perform more efficiently.
The source at Tom’s seems to be claiming that such a setup would then be completely manufacturer agnostic. We’re talking about a PC gaming world where AMD and Nvidia graphics cards live together in perfect harmony, like Paul McCartney and Kanye West.
The implications for such a thing are pretty immense. We could happily skip over all the fanboyism attached to graphics cards and use both manufacturer’s cards at the same time. It could also mean when you buy a new card you could simply have that as the master and your old GPU still contributing to the system as a little slave GPU. Love seeing Lara’s locks rendered using AMD’s TressFX? No problem. Desperate for detailed gardening simulators with Nvidia’s Turf Effects? That's all good too.
But forget the discrete GPU stuff for a second: this could also work alongside the integrated GPUs most of us have nestled within our processors. In comparison with the beefy discrete GPUs we’ve got powering our games those chips aren’t massively powerful, but every little bit helps.
If it all sounds too good to be true, well, it probably is. Even if DirectX 12 can work with multiple types of GPUs at once, you can bet neither AMD nor Nvidia would be particularly happy having mixed graphics systems in a PC. They'll likely block such an implementation from happening, even if DX12 supports it.
We’ve seen folk try and get the two GPU camps playing nicely before, most recently Lucid Logix Hydra setups. Their tech did essentially work at getting different GPUs combining forces to plough through a game’s graphical loads, but it was incredibly inefficient, wasting a lot of GPU power in the process.
There’s also the fact we’re still talking about developers actually having to make this a feature of whatever game they’re working on. If such support was enabled at a game engine level that would make things a bit easier, but the sorts of split frame rendering shenanigans and minute control over a given GPU’s resources we’re talking about here would still need dev work. And multi-GPU is still such a small subset of PC gaming machines that it arguably would not be worth their time.
Agnostic multi-GPU support could, however, be more evidence of the "close to the metal" nature of DirectX 12. With such fine grain control over the use of a graphics card we could see some quite spectacular things being done in PC exclusive games.
The guys at Tom’s could be completely wrong, however. They took the inference that their source was talking about DX12—what if they were talking about Vulkan, the next-gen version of the OpenGL API instead? That new open source API is another 'close to the metal' option, which was shown at GDC last week. Vulkan already has AMD's backing: the company has advised developers to stop using Mantle 1.0, and adopt Vulkan for their upcoming games.
As it turns out, Vulkan is essentially the bones of Mantle built into a new graphics API. Vulkan is the successor to OpenGL, with a focus on low-level programming just like DX12. AMD wrote that "as the product of an incredible collaboration between many industry hardware and software vendors, Vulkan paves the way for a renaissance in cross-platform and cross-vendor PC games with exceptional performance, image quality and features."
Of course, "cross-vendor" support doesn't mean Vulkan will enable the use of AMD and Nvidia cards at the same time. Most likely, it simply means the API will support both vendors, and will of course work across Windows, Mac, and Linux. With Mantle sidelined, developers will be able to focus on DirectX 12, Vulkan, or both, which means that even if agnostic multi-GPU support is a pipe dream, the next year's going to be very interesting for low-level API programming.