
Who wrote Mantle, Vulkan, and DirectX 12? That’s before we get into technical issues, like PCI Express bandwidth limitations or the increased overhead required to spin workloads out to more than two GPUs, only to put it all back together again. On the minus side, however, the new multi-GPU modes require explicit developer support (which means the developer is the one doing the heavy lifting), while the legacy modes may or may not provide the same scaling capabilities. On the plus side, DX12 gives you more CPU threads to work with, which could help with dispatching work. When you start adding additional complexity in the form of three or four GPUs, you start slamming into multiple system bottlenecks, some of which may or may not be alleviated by DX12. There is ONE fast path, and it’s the narrowest path of all. (And I don’t even know what the hardware side looks like.) If you’ve ever tried to independently build an app that uses multi GPU - especially if, god help you, you tried to do it in OpenGL - you may have discovered this insane rabbit hole. I suspect that more than half of the total software effort within the IHVs is dedicated strictly to making multi-GPU setups work with existing games. You cannot begin to conceive of the number of failure cases that are involved until you see them in person. Multi GPU (SLI/CrossfireX) is complicated.
#4 way crossfirex driver#
Ever wondered why nearly every major game release is accompanied by a matching driver release from AMD and/or NVIDIA? There you go… There are lots of optional patches already in the driver that are simply toggled on or off as per-game settings, and then hacks that are more specific to games - up to and including total replacement of the shipping shaders with custom versions by the driver team.

#4 way crossfirex Patch#
Then somebody would go in, find out what the game screwed up, and patch the driver to deal with it.

These things were day to day occurrences that went into a bug tracker. Some are mistakes or oversights - one shipped bad shaders that heavily impacted performance on NV drivers. In some cases, we’re talking about blatant violations of API rules - one D3D9 game never even called BeginFrame / EndFrame. We’re talking major AAA titles from vendors who are everyday names in the industry.

The first lesson is: Nearly every game ships broken. The problems with multi-GPU development and driver development in general were explored very well in a post to.
