Bagikan melalui


Gambaran umum residensi

Ikhtisar

Saat ini driver mode pengguna membangun informasi daftar lokasi alokasi dan patch bersama dengan setiap buffer perintah yang dibangunnya. Informasi ini digunakan oleh manajer memori video untuk dua tujuan:

  • Daftar alokasi dan daftar lokasi patch digunakan untuk menambal buffer perintah dengan alamat segmen aktual sebelum dikirimkan ke mesin unit pemrosesan grafis (GPU). Dukungan alamat virtual GPU di Windows Display Driver Model (WDDM) v2 menghapus kebutuhan untuk patching ini.
  • Daftar alokasi dan daftar lokasi patch digunakan oleh manajer memori video untuk mengontrol residensi alokasi. Manajer memori video memastikan bahwa alokasi apa pun yang dirujuk oleh buffer perintah dibuat residen sebelum buffer perintah dikirim ke eksekusi untuk mesin tertentu.

Dengan pengenalan model residensi baru, residensi dipindahkan ke daftar eksplisit pada perangkat alih-alih daftar buffer per perintah. Manajer memori video akan memastikan bahwa semua alokasi pada daftar persyaratan residensi perangkat tertentu adalah residen sebelum konteks apa pun milik perangkat tersebut dijadwalkan untuk dieksekusi.

Untuk mengelola residensi, driver mode pengguna akan memiliki akses ke dua antarmuka driver perangkat (DDIs) baru, MakeResident dan Evict, serta diperlukan untuk menerapkan panggilan balik TrimResidency baru. MakeResident akan menambahkan satu atau beberapa alokasi ke daftar persyaratan residensi perangkat. Mengusir akan menghapus salah satu alokasi lainnya dari daftar tersebut. Panggilan balik TrimResidency akan dipanggil oleh manajer memori video ketika membutuhkan driver mode pengguna untuk mengurangi persyaratan residensinya.

MakeResident dan Evict juga telah diperbarui untuk menyimpan jumlah referensi internal, yang berarti beberapa panggilan ke MakeResident akan memerlukan jumlah panggilan Evict yang sama untuk benar-benar mengeluarkan alokasi.

Di bawah model residensi baru, alokasi buffer per perintah dan daftar lokasi patch sedang dikeluarkan secara perlahan. Meskipun daftar ini akan ada dalam beberapa skenario, daftar tersebut tidak akan lagi memiliki kontrol atas residensi.

Penting Residensi dalam WDDM v2 dikontrol secara eksklusif oleh daftar persyaratan residensi perangkat. Ini berlaku di semua mesin GPU dan untuk setiap API.

Phasing out alokasi dan daftar lokasi patch

Peran daftar lokasi alokasi dan patch akan berkurang secara signifikan dengan pengenalan model residensi baru dan benar-benar akan hilang sepenuhnya dengan pengenalan penjadwalan yang dibantu perangkat keras.

Di bawah model penjadwalan berbasis paket, daftar alokasi akan terus ada sebagai berikut:

  • Untuk mesin yang tidak mendukung alamat virtual GPU, daftar alokasi dan daftar lokasi patch akan terus ada, namun, mereka akan digunakan murni untuk tujuan patching dan tidak akan lagi memiliki kontrol atas residensi. Daftar alokasi dan daftar lokasi patch akan disediakan untuk driver mode pengguna dan driver mode kernel di berbagai DDI biasa, tetapi setiap referensi ke alokasi yang bukan penduduk akan menyebabkan penjadwal GPU menolak pengiriman dan menempatkan perangkat dalam kesalahan (hilang). Mode operasi ini dianggap warisan dan kami mengharapkan semua mesin GPU mendapatkan dukungan untuk alamat virtual GPU dalam rilis perangkat keras di masa mendatang. Diharapkan bahwa mode operasi ini akan dihilangkan dalam versi WDDM yang akan datang.
  • Untuk mesin yang mendukung alamat virtual GPU, bendera pembuatan konteks baru (DXGK_CONTEXTINFO_NO_PATCHING_REQUIRED) ditambahkan untuk menunjukkan bahwa konteks tertentu tidak memerlukan patching apa pun. Ketika bendera ini ditentukan, tidak ada daftar lokasi patch yang akan dialokasikan dan hanya daftar alokasi yang sangat kecil (16 entri) yang akan dialokasikan. Daftar alokasi akan digunakan untuk melacak referensi tulis ke permukaan utama dan tanpa tujuan lain. Penjadwal GPU perlu mengetahui kapan buffer perintah tertentu menulis ke permukaan utama sehingga dapat menyinkronkan eksekusi buffer tersebut dengan benar sehubungan dengan flip yang berpotensi terjadi ke permukaan utama.

Demikian pula, daftar alokasi digunakan dalam driver mode kernel Jalur sajikan hari ini untuk meneruskan informasi kepada driver tentang sumber dan tujuan operasi Sekarang . Dalam konteks ini daftar alokasi akan terus ada untuk meneruskan parameter, namun, daftar alokasi tidak akan digunakan untuk residensi. Pada GPU yang memerlukan patch daftar Alokasi saat ini akan berisi informasi pra-patch seperti saat ini dan paket Present akan di-patch ulang sebelum dijadwalkan jika salah satu sumber daya bergerak di sekitar memori antara waktu mereka mengantre ke penjadwal dan waktu mereka dijadwalkan untuk dieksekusi pada GPU.

Tabel di bawah ini merangkum ketika driver WDDM v2 seharusnya mengharapkan untuk menerima daftar lokasi alokasi dan patch di berbagai driver mode pengguna dan DDI driver mode kernel.

Mesin GPU Daftar Alokasi? Daftar Lokasi Patch?
Tidak ada dukungan alamat virtual GPU (memerlukan patching, default)

Ya, ukuran penuh, tetapi murni digunakan untuk tujuan patching.

Setiap referensi ke alokasi yang bukan residen akan mengakibatkan perangkat yang mengirimkan dimasukkan ke dalam kesalahan (hilang) dan pengiriman ditolak oleh penjadwal.
Ya, ukuran penuh.
Dukungan alamat virtual GPU (set bendera DXGK_CONTEXTINFO_NO_PATCHING_REQUIRED)

Ya, 16 entri.

Mereferensikan permukaan utama, jika ada, ditulis oleh buffer perintah. Digunakan oleh penjadwal GPU untuk sinkronisasi dengan bibir yang terjadi pada pengontrol tampilan. Permukaan utama harus sudah ada di daftar persyaratan residensi perangkat atau referensi akan ditolak.
Tidak
Dukungan alamat virtual GPU + penjadwalan perangkat keras Tidak Tidak