Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
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.
- D3D12_COMMAND_QUEUE_DESC : har en NodeMask- medlem.
- CreateCommandQueue : skapar en kö från en D3D12_COMMAND_QUEUE_DESC struktur.
- CreateCommandList : tar en nodeMask parameter.
- D3D12_DESCRIPTOR_HEAP_DESC : har en NodeMask- medlem.
- CreateDescriptorHeap : skapar en beskrivande heap från en D3D12_DESCRIPTOR_HEAP_DESC struktur.
- D3D12_QUERY_HEAP_DESC : har en NodeMask- medlem.
- CreateQueryHeap : skapar en fråge-heap från en D3D12_QUERY_HEAP_DESC struktur.
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).
- D3D12_CROSS_NODE_SHARING_TIER : avgör stödet för delning mellan noder.
- D3D12_FEATURE_DATA_D3D12_OPTIONS : struktur som refererar till D3D12_CROSS_NODE_SHARING_TIER.
- D3D12_FEATURE_DATA_ARCHITECTURE : innehåller en NodeIndex- medlem.
- D3D12_GRAPHICS_PIPELINE_STATE_DESC : har en NodeMask- medlem.
- CreateGraphicsPipelineState : skapar ett objekt för status för grafikpipelines från en D3D12_GRAPHICS_PIPELINE_STATE_DESC struktur.
- D3D12_COMPUTE_PIPELINE_STATE_DESC : har en NodeMask- medlem.
- CreateComputePipelineState : skapar ett beräkningspipelinetillståndsobjekt från en D3D12_COMPUTE_PIPELINE_STATE_DESC struktur.
- CreateRootSignature: tar en nodeMask parameter.
- D3D12_COMMAND_SIGNATURE_DESC: har en NodeMask- medlem.
- CreateCommandSignature : skapar ett kommandosignaturobjekt från en D3D12_COMMAND_SIGNATURE_DESC struktur.
API:er för resursskapande
Följande API:er refererar till nodmasker.
- D3D12_HEAP_PROPERTIES : har både CreationNodeMask och VisibleNodeMask medlemmar.
- GetResourceAllocationInfo : har parametern visibleMask.
- GetCustomHeapProperties : har parametern nodeMask.
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.
- CreateFence
- GetDescriptorHandleIncrementSize
- SetStablePowerState
- CheckFeatureSupport
- CreateSampler
- CopyDescriptors
- CopyDescriptorsSimple
- CreateSharedHandle
- OpenSharedHandleByName
- OpenSharedHandle : med ett staket som parameter. Med en resurs eller en heap som parametrar accepterar den här metoden inte noder som parametrar eftersom nodmasker ärvs från tidigare skapade objekt.
- CreateCommandAllocator
- CreateConstantBufferView
- CreateRenderTargetView
- CreateUnorderedAccessView
- CreateDepthStencilView
- CreateShaderResourceView