Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Direct3D 12'de, uygulamanızın açıkça birden çok GPU bağdaştırıcısını hedeflediği senaryoları ve sürücülerin uygulamanız adına örtük olarak birden çok GPU bağdaştırıcısı kullandığı senaryoları kapsayan, birden çok bağdaştırıcı yüklü sistemler için destek açıklanmaktadır.
Çok bağdaştırıcılı genel bakış
GPU bağdaştırıcısı, Direct3D 12'yi destekleyen herhangi bir üreticinin herhangi bir bağdaştırıcısı (grafik veya işlem, ayrık veya tümleşik) olabilir.
birden çok bağdaştırıcıyadüğüm olarak başvurulur. Kuyruklar gibi bir dizi öğe her düğüme uygulanır, dolayısıyla iki düğüm varsa iki varsayılan 3B kuyruk olur. İşlem hattı durumu, kök ve komut imzaları gibi diğer öğeler diyagramda gösterildiği gibi bir veya daha fazla veya tüm düğümlere başvurabilir.
Yığınları bağdaştırıcılar arasında paylaşma
paylaşılan yığınlar konusuna bakın.
Çok bağdaştırıcılı API'ler ve düğüm maskeleri
Önceki Direct3D API'lerine benzer şekilde, her bağlı bağdaştırıcı kümesi tek bir IDXGIAdapter3 nesnesi olarak numaralandırılır. Bağlantıdaki herhangi bir bağdaştırıcıya eklenen tüm çıkışlar, tek IDXGIAdapter3 nesnesine eklenmiş olarak numaralandırılır.
Uygulamanız id3D12Device::GetNodeCountçağırarak belirli bir cihazla ilişkili fiziksel bağdaştırıcı sayısını belirleyebilir.
Direct3D 12'deki birçok API, API çağrısının başvurduğu düğüm kümesini gösteren düğüm maskesi (bit maskesi) kabul eder. Her düğümün sıfır tabanlı dizini vardır. Ancak düğüm maskesinde sıfır, bit 1'e çevrilir; 1, bit 2'ye çevrilir; ve benzeri.
Tek düğümler
Aşağıdaki (tek düğümlü) API'leri çağırırken, uygulamanız API çağrısının ilişkilendirileceği tek bir düğüm belirtir. Çoğu zaman, bu bir düğüm maskesi tarafından belirtilir. Maskedeki her bit tek bir düğüme karşılık gelir. Bu bölümde açıklanan tüm API'ler için düğüm maskesinde tam olarak bir bit ayarlamanız gerekir.
- D3D12_COMMAND_QUEUE_DESC: NodeMask üyesi vardır.
- CreateCommandQueue: D3D12_COMMAND_QUEUE_DESC yapısından bir kuyruk oluşturur.
- CreateCommandList: bir nodeMask parametresi alır.
- D3D12_DESCRIPTOR_HEAP_DESC: NodeMask üyesi vardır.
- CreateDescriptorHeap: D3D12_DESCRIPTOR_HEAP_DESC yapısından bir tanımlayıcı yığını oluşturur.
- D3D12_QUERY_HEAP_DESC: NodeMask üyesi vardır.
- createQueryHeap: D3D12_QUERY_HEAP_DESC yapısından bir sorgu yığını oluşturur.
Birden çok düğüm
Aşağıdaki (birden çok düğüm) API'leri çağırırken, uygulamanız API çağrısının ilişkilendirileceği bir düğüm kümesi belirtir. Düğüm benzitesini düğüm maskesi olarak belirtirsiniz ve büyük olasılıkla birden çok bit ayarlanmıştır. Uygulamanız bu bit maskesi için 0'ı geçerse, Direct3D 12 sürücüsü bunu bit maskesi 1'e dönüştürür (nesnenin düğüm 0 ile ilişkilendirildiğini belirtir).
- D3D12_CROSS_NODE_SHARING_TIER: Düğümler arası paylaşım desteğini belirler.
- D3D12_FEATURE_DATA_D3D12_OPTIONS: D3D12_CROSS_NODE_SHARING_TIERbaşvuran yapı.
- D3D12_FEATURE_DATA_ARCHITECTURE: bir NodeIndex üyesi içerir.
- D3D12_GRAPHICS_PIPELINE_STATE_DESC: NodeMask üyesi vardır.
- CreateGraphicsPipelineState: D3D12_GRAPHICS_PIPELINE_STATE_DESC bir yapıdan grafik işlem hattı durumu nesnesi oluşturur.
- D3D12_COMPUTE_PIPELINE_STATE_DESC: NodeMask üyesi vardır.
- CreateComputePipelineState: D3D12_COMPUTE_PIPELINE_STATE_DESC bir yapıdan işlem işlem hattı durumu nesnesi oluşturur.
- CreateRootSignature: bir nodeMask parametresi alır.
- D3D12_COMMAND_SIGNATURE_DESC: NodeMask üyesi vardır.
- CreateCommandSignature: D3D12_COMMAND_SIGNATURE_DESC yapısından bir komut imzası nesnesi oluşturur.
Kaynak oluşturma API'leri
Aşağıdaki API'ler düğüm maskelerine başvurur.
- D3D12_HEAP_PROPERTIES: CreationNodeMask ve VisibleNodeMask üyeleri.
- getResourceAllocationInfo: visibleMask parametresine sahiptir.
- GetCustomHeapProperties: nodeMask parametresine sahiptir.
Ayrılmış kaynak oluştururken düğüm dizini veya maske belirtilmez. Ayrılmış kaynak herhangi bir düğümdeki bir yığına eşlenebilir (düğümler arası paylaşım kurallarına uyularak).
MakeResidentyöntemi bağdaştırıcı kuyruklarıyla birlikte çalışır; uygulamanızın bunun için herhangi bir şey belirtmesine gerek yoktur.
AŞAĞıDAKI ID3D12Device API'lerini çağırırken, API çağrısı tüm düğümler için geçerli olduğundan uygulamanızın API çağrısının ilişkilendirileceği bir düğüm kümesi belirtmesi gerekmez.
- CreateFence
- GetDescriptorHandleIncrementSize
- SetStablePowerState
- CheckFeatureSupport
- CreateSampler
- CopyDescriptors
- CopyDescriptorsSimple
- CreateSharedHandle
- OpenSharedHandleByName
- OpenSharedHandle: parametre olarak çit. Parametre olarak kaynak veya yığını, düğüm maskeleri daha önce oluşturulan nesnelerden devralındığından bu yöntem düğümleri parametre olarak kabul etmez.
- CreateCommandAllocator
- CreateConstantBufferView
- CreateRenderTargetView
- CreateUnorderedAccessView
- CreateDepthStencilView
- CreateShaderResourceView