Delen via


Systemen met meerdere adapters

Beschrijft ondersteuning in Direct3D 12 voor systemen waarop meerdere adapters zijn geïnstalleerd, waarin scenario's worden beschreven waarin uw toepassing expliciet is gericht op meerdere GPU-adapters en scenario's waarbij stuurprogramma's impliciet meerdere GPU-adapters gebruiken namens uw toepassing.

Overzicht van meerdere adapters

Een GPU-adapter kan elke adapter zijn (graphics of compute, discreet of geïntegreerd), van elke fabrikant die Direct3D 12 ondersteunt.

Naar meerdere adapters wordt verwezen als knooppunten. Een aantal elementen, zoals de wachtrijen, zijn van toepassing op elk knooppunt, dus als er twee knooppunten zijn, zijn er twee standaard 3D-wachtrijen. Andere elementen, zoals de pijplijnstatus en basis- en opdrachthandtekeningen, kunnen verwijzen naar een of meer of alle knooppunten, zoals wordt weergegeven in het diagram.

wachtrijen zijn van toepassing op elke grafische adapter

Heaps delen tussen adapters

Zie het onderwerp Gedeelde heaps.

API's voor meerdere adapters en knooppuntmaskers

Net als bij eerdere Direct3D-API's wordt elke set gekoppelde adapters opgesomd als één IDXGIAdapter3-object. Alle uitvoer die is gekoppeld aan een adapter in de koppeling, wordt geïnventariseerd als gekoppeld aan het object met één IDXGIAdapter3.

Uw toepassing kan het aantal fysieke adapters bepalen dat is gekoppeld aan een bepaald apparaat door ID3D12Device::GetNodeCountaan te roepen.

Veel API's in Direct3D 12 accepteren een knooppuntmasker (een bitmasker), wat de set knooppunten aangeeft waarnaar de API-aanroep verwijst. Elk knooppunt heeft een op nul gebaseerde index. Maar in het knooppuntmasker wordt nul omgezet in bit 1; 1 vertaalt zich naar bit 2; enzovoort.

Eén knooppunt

Wanneer u de volgende API's (één knooppunt) aanroept, geeft uw toepassing één knooppunt op waarmee de API-aanroep wordt gekoppeld. Meestal wordt dit opgegeven door een knooppuntmasker. Elke bit in het masker komt overeen met één knooppunt. Voor alle API's die in deze sectie worden beschreven, moet u precies één bit instellen in het knooppuntmasker.

Meerdere knooppunten

Wanneer u de volgende (meerdere knooppunt)API's aanroept, geeft uw toepassing een set knooppunten op waarmee de API-aanroep wordt gekoppeld. U geeft knooppuntaffiniteit op als een knooppuntmasker, mogelijk met meerdere bitsset. Als uw toepassing 0 doorgeeft voor dit bitmasker, converteert het Direct3D 12-stuurprogramma dat naar het bitmasker 1 (waarmee wordt aangegeven dat het object is gekoppeld aan knooppunt 0).

API's voor het maken van resources

De volgende API's verwijzen naar knooppuntmaskers.

Bij het maken van een gereserveerde resource wordt er geen knooppuntindex of -masker opgegeven. De gereserveerde resource kan worden toegewezen aan een heap op elk knooppunt (volgens de regels voor delen tussen knooppunten).

De methode MakeResident intern werkt met adapterwachtrijen, hoeft uw toepassing hiervoor niets op te geven.

Wanneer u de volgende ID3D12Device API's aanroept, hoeft uw toepassing geen set knooppunten op te geven waaraan de API-aanroep wordt gekoppeld omdat de API-aanroep van toepassing is op alle knooppunten.

Direct3D 12 Programming Guide