- Feb 12, 2013
- 3,818
- 1
- 0
http://gpuopen.com/amd-crossfire-api/
http://gpuopen-librariesandsdks.github.io/doc/AMD-CrossFire-guide-for-Direct3D11-applications.pdf
http://gpuopen-librariesandsdks.github.io/doc/AMD-CrossFire-guide-for-Direct3D11-applications.pdf
Alternate Frame Rendering (AFR) is the method used to take advantage of Multiple GPUs in DirectX® 11 and OpenGL® applications. The Crossfire guide describes AFR and how it is implemented in AMD drivers. The guide also provides recommendations on how to optimize a game engine to fully exploit AFR. As described in the guide the goal is to avoid inter-frame dependencies and resource transfers between GPUs. Transfers are initiated by the driver whenever it determines that a GPU has a stale resource. Transfers go through the PCI Express® bus and this is usually an expensive operation.
The Crossfire guide describes the limitations of the default AFR implementation. In summary:
The driver does not know what resources need tracking. It therefore tracks all of them by default.
The driver does not have knowledge of what region in a resource is updated. If a resource is stale all of it will be transferred.
The driver has to start the transfer at the end of the frame even if the resource is only used at the beginning of the frame.
The driver uses heuristics to detect if a resource is stale. The heuristics can fail resulting in rendering artifacts.