DXGKDDI_UPDATECURRENTVALUESFROMCPU funzione di callback (d3dkmddi.h)
Il sistema operativo chiama DxgkDdiUpdateCurrentValuesFromCpu per aggiornare CurrentValue di un batch di recinzioni native dalla CPU.
Sintassi
DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;
NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}
Parametri
pUpdateCurrentValuesFromCpu
[in] Puntatore a una struttura DXGKARG_UPDATECURRENTVALUESFROMCPU contenente i valori correnti da aggiornare.
Commenti
Questo DDI viene usato per supportare la semantica dell'API "signal fence from CPU" esistente. Invece di scrivere un nuovo CurrentValue, il driver viene chiesto di scrivere in CurrentValue per consentire ai driver di inserire eventuali barriere/sincronizzazione pre-scrittura necessarie. Il sistema operativo sincronizza gli aggiornamenti lato CPU e garantisce che il valore più aggiornato sia disponibile per DxgkDdiUpdateCurrentValuesFromCpu. Dopo l'aggiornamento di CurrentValue, il driver deve attivare la GPU per sbloccare le code hardware in attesa di questo recinto ed essere sbloccato con l'aggiornamento a CurrentValue.
In breve, i passaggi da seguire per il driver sono:
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
Il sistema operativo garantisce solo che il puntatore CurrentValueKernelCpuVa sia valido per la durata di questa chiamata DDI e non prima o dopo. Di conseguenza, il KMD non deve mai memorizzare nella cache questo puntatore per l'uso altrove.
Per altre informazioni sulle barriere GPU native, vedere Oggetti di recinzione GPU nativa.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 11, versione 24H2 |
Intestazione | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |