Bagikan melalui


Fungsi D3DKMTNotifyWorkSubmission (d3dkmthk.h)

Penting

Beberapa informasi berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.

D3DKMTNotifyWorkSubmission memberi tahu driver tampilan mode kernel (KMD) bahwa driver tampilan mode pengguna (UMD) telah mengirimkan pekerjaan ke GPU.

Sintaks

NTSTATUS D3DKMTNotifyWorkSubmission(
  D3DKMT_NOTIFY_WORK_SUBMISSION *unnamedParam1
);

Parameter

unnamedParam1

Arahkan ke struktur D3DKMT_NOTIFY_WORK_SUBMISSION yang mengidentifikasi antrean perangkat keras tempat pekerjaan dikirimkan.

Menampilkan nilai

D3DKMTNotifyWorkSubmission mengembalikan STATUS_SUCCESS jika berhasil melakukan ping KMD. Jika tidak, ia mengembalikan kode kesalahan yang sesuai seperti STATUS_INVALID_PARAMETER jika antrean atau bendera perangkat keras yang tidak valid ditentukan.

Keterangan

Dalam model pengiriman kerja mode pengguna , KMD tidak terlibat dalam pengiriman kerja dan karenanya tidak menyadari kapan pekerjaan baru dikirimkan pada HWQueue. Jalur pengiriman pekerjaan latensi rendah ini adalah motivasi utama model. Namun, ada skenario niche tertentu dan batasan perangkat keras ketika KMD perlu diberi tahu setiap kali pekerjaan dikirimkan pada HWQueue. Misalnya, penjadwal perangkat keras GPU mengharuskan KMD untuk mengalihkan runlist perangkat keras dari normal ke realtime ketika konteks realtime mengirimkan pekerjaan. Jika KMD tidak terlibat dalam pengiriman kerja, maka kmd tidak dapat segera memicu pengalihan runlist, yang menyebabkan penundaan eksekusi kerja realtime.

Untuk mengakomodasi kebutuhan ini, KMD dapat menentukan status koneksi bel pintu sebagai D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY pada waktu pembuatan bel pintu. Setiap kali UMD melihat status bel pintu ini, UMD menyesuaikan alur kerja pengiriman kerjanya sia-sia sehingga setelah menulis perintah baru dan membunyikan bel pintu, ia memanggil kernel menggunakan D3DKMTNotifyWorkSubmission. Dxgkrnl meneruskan panggilan ini ke KMD menggunakan DxgkDdiNotifyWorkSubmission.

D3DKMTNotifyWorkSubmission adalah ping sederhana dari UMD ke Dxgkrnl ke KMD, memberi tahu yang terakhir bahwa pekerjaan baru telah dikirimkan pada HWQueue tertentu sehingga KMD dapat memulai tindakan tertentu seperti mengalihkan runlist ke realtime.

KMD juga dapat meminta pemberitahuan secara dinamis setelah pembuatan bel pintu. Jika KMD mendeteksi kondisi di mana ia harus diberi tahu tentang pengiriman kerja pada antrean perangkat keras ini, maka pertama-tama dapat memutuskan bel pintu dengan memanggil DxgkrnlDxgkCbDisconnectDoorbell dengan status D3DDDI_DOORBELL_STATUS_DISCONNECTED_RETRY. Kemudian, ketika UMD mencoba menyambungkan kembali bel pintu, KMD dapat membuat koneksi dengan status D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY.

Driver harus menggunakan mekanisme ini dalam skenario yang sangat spesifik dan jarang karena melibatkan perjalanan pulang pergi dari UMD ke KMD pada setiap pengiriman pekerjaan, dan jika digunakan untuk skenario yang luas maka itu mengalahkan tujuan model pengiriman mode pengguna latensi rendah.

Untuk informasi selengkapnya, lihat Pengiriman kerja mode pengguna.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11, versi 24H2 (WDDM 3.2)
Header d3dkmthk.h

Lihat juga

D3DKMT_NOTIFY_WORK_SUBMISSION

D3DKMTCreateDoorbell

DxgkCbDisconnectDoorbell

DxgkDdiNotifyWorkSubmission