Bagikan melalui


Meminta untuk Mengganti Nama Alokasi

Driver tampilan mode pengguna harus meminta agar manajer memori video mengganti nama alokasi yang terkait dengan permukaan ketika aplikasi menunjukkan untuk membuang konten permukaan sebagai bagian dari permintaan untuk mengunci permukaan (misalnya, buffer vertex). Runtime Microsoft Direct3D melewati bendera Buang bit-field untuk menunjukkan bahwa itu tidak lagi memerlukan konten permukaan saat ini. Driver dapat meminta agar manajer memori video mengalokasikan alokasi baru untuk menangani permintaan kunci jika alokasi saat ini yang memegang konten permukaan sibuk, daripada mengulur utas aplikasi sampai alokasi saat ini menjadi menganggur.

Driver tampilan mode pengguna meminta agar manajer memori video mengganti nama alokasi ketika driver mengatur anggota Buang struktur D3DDDICB_LOCKFLAGS dalam panggilan ke fungsi pfnLockCb . Manajer memori video menentukan apakah harus mengganti nama alokasi atau harus menyebabkan aplikasi terhenti sampai alokasi menganggur berdasarkan apakah alokasi saat ini sibuk dan pada kondisi memori saat ini. Untuk setiap alokasi yang diganti namanya, manajer memori video mempertahankan daftar alokasi yang secara berturut-turut digunakan untuk mengunci alokasi. Manajer memori video menelusuri daftar setiap kali aplikasi membuang konten alokasi. Panjang daftar ditentukan oleh persyaratan aplikasi dan tekanan memori. Manajer memori video mencoba untuk menjaga daftar cukup lama untuk menghindari mengulur-ulur utas aplikasi pada permintaan penguncian. Namun, di bawah tekanan memori, manajer memori video dapat memangkas daftar untuk menghindari menyebabkan tekanan memori ekstra.

Untuk memberlakukan batasan panjang daftar penggantian nama untuk alokasi, driver menetapkan anggota MaximumRenamingListLength dari struktur DXGK_ALLOCATIONINFO saat membuat alokasi. Jika driver mengatur MaximumRenamingListLength ke nilai bukan nol, manajer memori video menentukan panjang daftar penggantian nama yang sesuai tanpa melebihi batas yang diberlakukan oleh driver. Jika driver mengatur MaximumRenamingListLength ke 0, maka manajer memori dapat meningkatkan ukuran daftar penggantian nama ke ukuran apa pun yang diperlukan untuk meningkatkan performa.

Perhatikan bahwa ketika driver tampilan mode pengguna mengatur anggota BuangD3DDDICB_LOCKFLAGS, manajer memori video tidak memanggil driver miniport tampilan untuk mengalokasikan alokasi tambahan untuk alokasi asli. Manajer memori video membuat semua alokasi tambahan menggunakan parameter pembuatan alokasi asli. Dari perspektif driver miniport tampilan, alokasi yang sama dipaketkan di lokasi segmen yang berpotensi beberapa simultan.