Çok bağdaştırıcılı sistemler

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.

kuyrukları her grafik bağdaştırıcısına uygulanır

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.

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).

Kaynak oluşturma API'leri

Aşağıdaki API'ler düğüm maskelerine başvurur.

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

Direct3D 12 Programlama Kılavuzu