Condividi tramite


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

Vedi anche

DXGKARG_UPDATECURRENTVALUESFROMCPU