DXGKDDI_SUSPENDCONTEXT fungsi panggilan balik (d3dkmddi.h)
DxgkddiSuspendContext menginstruksikan GPU untuk menangguhkan konteks. Jika GPU tidak mengakui penyelesaian penangguhan dalam batas waktu TDR (deteksi dan pemulihan batas waktu), OS akan mendeteksi batas waktu mesin dan melakukan reset mesin.
Sintaks
DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;
NTSTATUS DxgkddiSuspendcontext(
IN_CONST_HANDLE hAdapter,
IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}
Parameter
hAdapter
[in] Konteks perangkat keras yang akan didahulukan dan ditandai sebagai ditangguhkan. Jenis permintaan pendahuluan ini tidak memiliki masa tenggang, dan diharapkan untuk dihormati oleh GPU sesegera mungkin.
pSuspendContext
[in] Penunjuk ke struktur DXGKARG_SUSPENDCONTEXT yang berisi argumen tambahan untuk fungsi ini.
Menampilkan nilai
DxgkddiSuspendContext mengembalikan STATUS_SUCCESS jika konteks sudah ditangguhkan pada saat panggilan ini. Jika tidak, nilai ini diatur ke STATUS_PENDING, dan operasi penangguhan akan selesai ketika contextSuspendFence disinyalir melalui gangguan.
Keterangan
Daftarkan implementasi Anda dari fungsi panggilan balik ini dengan mengaturnya di DRIVER_INITIALIZATION_DATA.
Meskipun preemption round robin dapat dimulai oleh GPU, OS masih membutuhkan cara untuk mendahului konteks karena alasan lain; misalnya, jika perlu memindahkan alokasinya atau melakukan transisi daya GPU.
Nilai penangguhan konteks diperlukan untuk menangani kasus ketika OS menangguhkan konteks, tidak menunggu pengakuan yang ditangguhkan, dilanjutkan, dan menangguhkan konteks lagi. Nilai suspensi akan memungkinkan OS membedakan antara pengakuan suspensi sebelumnya dan yang terbaru.
Setelah konteks ditangguhkan, diasumsikan bahwa semua referensi ke dalamnya hilang dari GPU, dan OS bebas untuk menghancurkan konteks atau memindahkan memorinya. Tidak seperti WDDM 2.3 atau yang lebih lama, tidak ada perintah pengalihan konteks NULL terpisah (sebelumnya ditunjukkan oleh bendera ContextSwitch di DxgkDdiSubmitCommandVirtual) ada dalam mode penjadwalan WDDM 2.4, karena DxgkddiSuspendContext seharusnya melakukan pekerjaan ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | d3dkmddi.h |