DXGKDDI_SUSPENDCONTEXT fungsi panggilan balik (d3dkmddi.h)

Instruksikan 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

Konteks perangkat keras yang akan didahulukan dan ditandai sebagai ditangguhkan. Jenis permintaan pemangsaan ini tidak memiliki masa tenggang, dan diharapkan untuk dihormati oleh GPU sesegera mungkin..

pSuspendContext

Penunjuk ke struktur DXGKARG_SUSPENDCONTEXT yang berisi nilai per konteks yang meningkat secara monoton yang akan dilaporkan oleh konteks GPU ditangguhkan interupsi setelah permintaan pemanggilan selesai. Sampai pagar diberi sinyal, OS tidak dapat menganggap GPU ditangguhkan.

Nilai kembali

Kembalikan 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 disinyalkan melalui interupsi.

Keterangan

Daftarkan implementasi Anda dari fungsi panggilan balik ini dengan mengatur anggota DXGKARG_SUSPENDCONTEXT yang sesuai dan kemudian memanggil DxgkddiSuspendContext.

Meskipun pemindahan 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 untuk 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 sakelar konteks NULL terpisah (sebelumnya ditunjukkan oleh bendera ContextSwitch di DdiSubmitCommandVirtual) ada dalam mode penjadwalan WDDM 2.4, karena DdiSuspendContext seharusnya melakukan pekerjaan ini.

Persyaratan

Persyaratan Nilai
Header d3dkmddi.h