Skip to content

Multi GPU

Chuck Walbourn edited this page Apr 26, 2022 · 9 revisions
DirectXTK

DirectX 12 requires the application explicitly support multi-GPU scenarios through multiple devices.

To support multi-GPUs, you need to create more than one Direct3D 12 device and create a GraphicsMemory instance for each one.

When creating resources or DirectX Tool Kit rendering objects, you need to create one for each device and submit the draw for each. When creating GeometricPrimitive shapes or using Model loader functions, there is a defaulted ID3D12Device* parameter that is used to control which instance of GraphicsMemory is used.

Further reading

Multi-Engine and Multi-Adapter Synchronization

Explicit DirectX 12 MultiGPU, the Affinity Layer helper library, and your game

Multi-Adapter Support in DirectX* 12 (Intel)

GDC 2016: Explicit Multi GPU Programming with DirectX 12 (PDF, nVidia)

For Use

  • Universal Windows Platform apps
  • Windows desktop apps
  • Windows 11
  • Windows 10
  • Xbox One
  • Xbox Series X|S

Architecture

  • x86
  • x64
  • ARM64

For Development

  • Visual Studio 2022
  • Visual Studio 2019 (16.11)
  • clang/LLVM v12 - v18
  • MinGW 12.2, 13.2
  • CMake 3.20

Related Projects

DirectX Tool Kit for DirectX 11

DirectXMesh

DirectXTex

DirectXMath

Tools

Test Suite

Model Viewer

Content Exporter

DxCapsViewer

See also

DirectX Landing Page

Clone this wiki locally