DXGKDDI_UPDATECURRENTVALUESFROMCPU fungsi panggilan balik (d3dkmddi.h)
OS memanggil DxgkDdiUpdateCurrentValuesFromCpu untuk memperbarui CurrentValue dari batch pagar asli dari CPU.
Sintaks
DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;
NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}
Parameter
pUpdateCurrentValuesFromCpu
[in] Penunjuk ke struktur DXGKARG_UPDATECURRENTVALUESFROMCPU yang berisi nilai saat ini untuk diperbarui.
Keterangan
DDI ini digunakan untuk mendukung semantik API "pagar sinyal dari CPU" yang ada. Alih-alih Dxgkrnl menulis CurrentValue baru, driver diminta untuk menulis ke CurrentValue untuk memberi driver kesempatan untuk menyisipkan sinkronisasi/penghalang pra-tulis yang diperlukan. OS menyinkronkan pembaruan sisi CPU dan menjamin bahwa nilai terbaru tersedia untuk DxgkDdiUpdateCurrentValuesFromCpu. Setelah memperbarui CurrentValue, driver harus memicu GPU untuk membuka blokir antrean perangkat keras yang menunggu di pagar ini dan tidak diblokir dengan pembaruan ke CurrentValue.
Singkatnya, langkah-langkah yang harus diikuti oleh pengemudi adalah:
for i = 1 : NumFences
1. Insert pre-write memory barrier if required
2. write new value to CurrentValueCpuVa
3. trigger GPU to unblock any HwQueues that got unblocked by the updated CurrentValue
end
OS hanya menjamin bahwa pointer CurrentValueKernelCpuVa valid selama panggilan DDI ini, dan tidak sebelum atau sesudahnya. Oleh karena itu, KMD tidak boleh menyimpan pointer ini untuk digunakan di tempat lain.
Untuk informasi selengkapnya tentang pagar GPU asli, lihat Objek pagar GPU asli.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 11, versi 24H2 |
Header | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |