• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

GPUOpen: CrossfireAPI11

Associate
Joined
7 Aug 2014
Posts
175
AMD have published some interesting documentation on how to program DX11 games with Crossfire in mind.

It includes some guidance on what various Crossfire modes do behind the scenes and goes into some detail on how data is transferred and updated between GPUs.

The documentation also suggests that AMD originally intended to call the Radeon Pro Duo the R9 Fury X2, as it makes reference to the latter!

GPUOpen Link:

http://gpuopen.com/gaming-product/crossfireapi11/

Documentation:

http://gpuopen-librariesandsdks.github.io/doc/AMD-CrossFire-guide-for-Direct3D11-applications.pdf

Github:

https://github.com/GPUOpen-LibrariesAndSDKs/CrossfireAPI11/
 
It certainly looks like the onus is on the dev to a certain extent.

What I found interesting is the difference between AFR Friendly and AFR Compatible. AFR friendly appears to alternately render without any resource checking (flickering galore probably). The AFR Compatible mode appears to have a best-effort approach using heuristics to decide what has to be copied through running a check on every resource.

Unfortunately checking every resource has its overheads and that's where a combination of the developer reducing dependency on previous frame data and a crossfire profile to tell the driver what it doesn't need to check is important for performance.

I'm guessing nvidia also has a similar system in its NVAPI for DX11. DX12 might be advantageous in that there is one programming interface for utilising multiple gpus without having to consider vendor specifics. On the other hand the opposite could be true being a lower level API closer to the metal.
 
Back
Top Bottom