Bagikan melalui


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

Lihat juga

DXGKARG_UPDATECURRENTVALUESFROMCPU