DirectX 12 May Bring Vendor-Agnostic Multi-GPU Support
Earlier this week a source close to Microsoft Graphics API development spoke to Tomshardware, revealing some particularly interesting early information on an 'unspoken API'. Generally acknowledged to be referring to the upcoming DirectX12 API, this info is laden with gaming significance in the DX12 era.
The rumour is centered around a technique coming to DirectX12 called Explicit Asynchronous Multi-GPU Capabilities, which treats graphics hardware as a single pool of compute resources. Games which are developed specifically for DirectX12 environments and with this technique in mind would then be able to make use of graphics hardware in any way they see fit.
As all graphics resources are treated as one common pool this approach has the potential to make much more efficient use of hardware resources. One example in in doing away with Alternate Frame Rendering (as in multi-GPU rendering), which requires that frame buffers be duplicated on each card and as such effectively doubles the memory footprint. AFR also introduces a queue of frames, increasing latency even as the additional horsepower reduces the average time between frames. DirectX 12 would instead make use of Split Frame Rendering (SFR), where each GPU renders part of the frame and few (if any) frames are buffered in advance.
As well as the obvious benefits, DirectX 12's Explicit Asynchronous Multi-GPU capabilities is in theory architecture agnostic, i.e. NVIDIA hardware could work harmoniously with AMD and/or Intel GPUs. Or you could take advantage of an Maxwell-based GPU such as the GTX 980 in combination with a Kepler GTX 770. Perhaps most critical is the idea that you could finally pick and choose which proprietary technologies you want to tap in to, for instance you could configure your system for an AMD R9 290X for raw horsepower plus AMD FreeSync compatibility and relatively inexpensive NVIDIA GTX 750Ti for PhysX.
Of course, this may turn out to be a pipe-dream. Nvidia in particular have been adamant in the past that their hardware will not work in tandem with an AMD GPU, going so far as to deliberately break compatibility at the driver level. AMD themselves are hardly likely to appreciate any scenario where their graphics hardware is viewed as sidekick to more powerful Nvidia GPUs. And even were that monumental hurdle overcome developers still need to set aside time and resources to make use of the capability, and if the past few months of PC game releases have taught us anything it's that studios have precious little time to even optimise for current hardware configurations.
So perhaps the best we can hope for is improved multi-GPU support whilst still being locked into a particular hardware vendor, which potentially support for unmatched GPUs within and across generations. Even is that's all we see, it's still a clear win compared to the status quo.
For more detailed information and analysis check out TomsHardware's article on the subject. With DirectX12 seminars taking place throughout GDC it's possible that much more will be revealed soon.