Condividi tramite


DXGKDDI_UPDATECURRENTVALUESFROMCPU funzione di callback (d3dkmddi.h)

Il sistema operativo chiama DxgkDdiUpdateCurrentValuesFromCpu per aggiornare il CurrentValue di un batch di recinto nativi dalla CPU.

Sintassi

DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;

NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
  IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}

Parametri

pUpdateCurrentValuesFromCpu

[in] Puntatore a una struttura DXGKARG_UPDATECURRENTVALUESFROMCPU che contiene i valori correnti da aggiornare.

Osservazioni

Questa DDI viene usata per supportare la semantica dell'API "signal fence from CPU" esistente. Invece di Dxgkrnl 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 aver aggiornato CurrentValue, il driver deve attivare la GPU per sbloccare le code hardware in attesa su questo recinto ed essere sbloccato con l'aggiornamento a CurrentValue.

In breve, i passaggi da seguire dal 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 l'CurrentValueKernelCpuVa puntatore sia valido per la durata di questa chiamata DDI e non prima o dopo. Di conseguenza, kmd non deve mai memorizzare nella cache questo puntatore per l'uso altrove.

Per altre informazioni sui recinto GPU nativi, vedere oggetti di isolamento GPU nativi.

Fabbisogno

Requisito Valore
client minimo supportato Windows 11, versione 24H2
intestazione d3dkmddi.h
IRQL DISPATCH_LEVEL

Vedere anche

DXGKARG_UPDATECURRENTVALUESFROMCPU