Microsoft has been busy showing off the features of the upcoming DirectX 12 API, and its last big reveal is a doozy. A feature called Multiadapter will allow DirectX 12 to use multiple GPUs—more specifically, Multiadapter will allow developers to use the integrated GPUs in Intel's modern desktop processors and AMD's APUs alongside a dedicated graphics card. This could mean a nice little performance bump in DX12 games, as developers can draw on hardware that's been sitting dormant until now.
Previously, for a system to utilize multiple graphics cards, those GPUs needed to be linked either via Nvidia's SLI or AMD's Crossfire technology—both of which typically required the same GPU series to be compatible. Multiadapter, on the other hand, will allow individual GPUs to be addressed separately, send unique commands, and store unique data in memory.
There are a couple layers to Multiadapter: Implicit and Explicit Multiadapter. Implicit will work more or less like previous versions of DirectX, where the API handles alternate frame rendering across a pair of linked GPUs in SLI/Crossfire. AMD and Nvidia will still need to work with developers to create multi-GPU profiles for games to best take advantage of both cards.
Things get more complicated with Explicit Multiadapter, which is new in DX12. Explicit Multiadapter will have two distinct API patterns: Linked GPUs and Unlinked GPUs. Linked GPUs refer to the special pairing of specific hardware, similar to what we're familiar with via SLI and Crossfire. DirectX 12 will view linked GPUs as a single GPU, allowing them to collaborate more closely and share resources in each other's rendering pipeline.
Unlinked GPUs, meanwhile, will allow systems to benefit from, say, installing an Nvidia card alongside one from AMD, as was rumored a few months ago. It will also allow systems with a dedicated GPU to take advantage of onboard graphics, which is the biggest feature Microsoft is touting.
Microsoft posted these slides as examples, showing a single Nvidia graphics card running a benchmark against a multiadapter setup pairing the same graphics card with the integrated Intel Core processor GPU.
"We recognized that most mixed GPU systems in the world were not making the most out of the hardware they had," Microsoft's Andrew Yeung said in a blog post. "So in our quest to maximize performance, we set out to enable separable and contiguous workloads to be executed in parallel on separate GPUs. One such example of separable workloads is postprocessing.
"Virtually every game out there makes use of postprocessing to make your favorite games visually impressive; but that postprocessing work doesn’t come free. By offloading some of the postprocessing work to a second GPU, the first GPU is freed up to start on the next frame before it would have otherwise been able to improving your overall framerate."
As you can see in the example above, adding in the processing power of an integrated GPU doesn't make a big difference. But it does make a difference. And since virtually every desktop gaming PC has an integrated GPU in it currently going to waste, that's performance you're getting without spending an extra dime.
It may be free performance for gamers, but that doesn't mean it's free for developers to implement. As PCPer points out, "Unlinked Explicit Multiadapter is also the bottom of three-tiers of developer hand-holding. You will not see any benefits at all, unless the game developer puts a lot of care in creating a load-balancing algorithm, and even more care in their QA department to make sure it works efficiently across arbitrary configurations."
Likewise, DirectX12 making it possible for Nvidia and AMD graphics cards to work together doesn't guarantee either company will happily support that functionality. But the potential is promising. If you need a visual representation, just watch the DX12 demo Square Enix and Microsoft put together.