Bagikan melalui


Sistem multi-adaptor

Menjelaskan dukungan di Direct3D 12 untuk sistem yang menginstal beberapa adaptor, mencakup skenario di mana aplikasi Anda secara eksplisit menargetkan beberapa adaptor GPU, dan skenario di mana driver secara implisit menggunakan beberapa adaptor GPU atas nama aplikasi Anda.

Gambaran umum multi-adaptor

Adaptor GPU dapat berupa adaptor apa pun (grafis atau komputasi, diskrit, atau terintegrasi), dari produsen apa pun, yang mendukung Direct3D 12.

Beberapa adaptor dirujuk sebagai simpul. Sejumlah elemen, seperti antrean, berlaku untuk setiap simpul, jadi jika ada dua simpul, akan ada dua antrean 3D default. Elemen lain, seperti status alur dan tanda tangan akar dan perintah, dapat merujuk ke satu atau beberapa atau semua simpul, seperti yang ditunjukkan dalam diagram.

antrean berlaku untuk setiap adaptor grafis

Berbagi timbunan di seluruh adaptor

Lihat topik Shared Heaps.

API multi-adaptor, dan masker node

Mirip dengan API Direct3D sebelumnya, setiap set adaptor tertaut dijumlahkan sebagai objek IDXGIAdapter3 tunggal. Semua output yang dilampirkan ke adaptor apa pun dalam tautan dijumlahkan sebagai dilampirkan ke objek IDXGIAdapter3 tunggal.

Aplikasi Anda dapat menentukan jumlah adaptor fisik yang terkait dengan perangkat tertentu dengan memanggil ID3D12Device::GetNodeCount.

Banyak API di Direct3D 12 menerima masker simpul (masker bit), yang menunjukkan set simpul yang dirujuk oleh panggilan API. Setiap simpul memiliki indeks berbasis nol. Tetapi dalam masker node, nol diterjemahkan menjadi bit 1; 1 diterjemahkan ke bit 2; dan sebagainya.

Simpul tunggal

Saat memanggil API (node tunggal) berikut, aplikasi Anda menentukan satu simpul yang akan dikaitkan dengan panggilan API. Sebagian besar waktu, ini ditentukan oleh masker simpul. Setiap bit dalam masker sesuai dengan satu simpul. Untuk semua API yang dijelaskan di bagian ini, Anda harus mengatur tepat satu bit dalam masker node.

Beberapa simpul

Saat memanggil API (beberapa simpul) berikut, aplikasi Anda menentukan sekumpulan simpul yang akan dikaitkan dengan panggilan API. Anda menentukan afinitas simpul sebagai masker simpul, berpotensi dengan beberapa bit yang ditetapkan. Jika aplikasi Anda melewati 0 untuk masker bit ini, maka driver Direct3D 12 mengonversinya ke bit mask 1 (menunjukkan bahwa objek dikaitkan dengan node 0).

API pembuatan sumber daya

Masker node referensi API berikut.

Saat membuat sumber daya yang dipesan, tidak ada indeks simpul atau masker yang ditentukan. Sumber daya yang dipesan dapat dipetakan ke timbunan pada simpul apa pun (mengikuti aturan berbagi lintas simpul).

Metode MakeResident bekerja secara internal dengan antrean adaptor, tidak perlu aplikasi Anda menentukan apa pun untuk ini.

Saat memanggil API ID3D12Device berikut, aplikasi Anda tidak perlu menentukan sekumpulan simpul yang akan dikaitkan dengan panggilan API karena panggilan API berlaku untuk semua simpul.

Panduan Pemrograman Direct3D 12