System med flera kort

Beskriver stöd i Direct3D 12 för system som har flera nätverkskort installerade, som omfattar scenarier där programmet uttryckligen riktar sig mot flera GPU-kort och scenarier där drivrutiner implicit använder flera GPU-kort för programmets räkning.

Översikt över flera kort

En GPU-adapter kan vara vilken adapter som helst (grafik eller beräkning, diskret eller integrerad) från alla tillverkare som har stöd för Direct3D 12.

Flera kort refereras till som noder. Ett antal element, till exempel köerna, gäller för varje nod, så om det finns två noder kommer det att finnas två standardköer för 3D. Andra element, till exempel pipelinetillstånd och rot- och kommandosignaturer, kan referera till en eller flera eller alla noder, som visas i diagrammet.

köer gäller för varje grafikkort

Dela högar mellan kort

Se avsnittet Delade heaps.

API:er för flera kort och nodmasker

På samma sätt som tidigare Direct3D-API:er räknas varje uppsättning länkade kort upp som en enda IDXGIAdapter3 objekt. Alla utdata som är anslutna till ett nätverkskort i länken räknas upp som anslutna till det enda IDXGIAdapter3-objektet.

Programmet kan fastställa antalet fysiska kort som är associerade med en viss enhet genom att anropa ID3D12Enhet::GetNodeCount.

Många API:er i Direct3D 12 accepterar en nodmask (en bitmask), vilket anger den uppsättning noder som API-anropet refererar till. Varje nod har ett nollbaserat index. Men i nodmasken översätts noll till bit 1; 1 översätts till bit 2; och så vidare.

Enskilda noder

När du anropar följande API:er (enskild nod) anger ditt program en enda nod som API-anropet ska associeras med. För det mesta anges detta av en nodmask. Varje bit i masken motsvarar en enda nod. För alla API:er som beskrivs i det här avsnittet måste du ange exakt en bit i nodmasken.

Flera noder

När du anropar följande API:er (flera noder) anger ditt program en uppsättning noder som API-anropet ska associeras med. Du anger nodtillhörighet som en nodmask, eventuellt med flera bitar inställda. Om ditt program skickar 0 för den här bitmasken konverterar Direct3D 12-drivrutinen den till bitmasken 1 (vilket anger att objektet är associerat med nod 0).

API:er för resursskapande

Följande API:er refererar till nodmasker.

När du skapar en reserverad resurs anges inget nodindex eller mask. Den reserverade resursen kan mappas till en heap på valfri nod (enligt reglerna för delning mellan noder).

Metoden MakeResident fungerar internt med kortköer, finns det inget behov av att ditt program anger något för detta.

När du anropar följande ID3D12Enhet API:er behöver ditt program inte ange en uppsättning noder som API-anropet ska associeras med eftersom API-anropet gäller för alla noder.

Programmeringsguide för Direct3D 12