Partager via


DXGKDDI_UPDATECURRENTVALUESFROMCPU fonction de rappel (d3dkmddi.h)

Le système d’exploitation appelle DxgkDdiUpdateCurrentValuesFromCpu pour mettre à jour currentValue d’un lot de clôtures natives à partir du processeur.

Syntaxe

DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;

NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
  IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}

Paramètres

pUpdateCurrentValuesFromCpu

[in] Pointeur vers une structure DXGKARG_UPDATECURRENTVALUESFROMCPU qui contient les valeurs actuelles à mettre à jour.

Remarques

Cette DDI est utilisée pour prendre en charge la sémantique existante de l’API « clôture de signal de l’UC ». Au lieu que Dxgkrnl écrive une nouvelle valeur CurrentValue, le pilote est invité à écrire dans CurrentValue afin de permettre aux pilotes d’insérer les barrières/synchronisation préalables à l’écriture requises. Le système d’exploitation synchronise les mises à jour côté processeur et garantit que la valeur la plus récente est disponible pour DxgkDdiUpdateCurrentValuesFromCpu. Après la mise à jour de CurrentValue, le pilote doit déclencher le GPU pour débloquer les files d’attente matérielles qui attendaient sur cette clôture et qui ont été débloquées avec la mise à jour vers CurrentValue.

En résumé, les étapes à suivre par le pilote sont les suivantes :


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

Le système d’exploitation garantit uniquement que le pointeur CurrentValueKernelCpuVa est valide pendant la durée de cet appel DDI, et non avant ou après celui-ci. Par conséquent, KMD ne doit jamais mettre en cache ce pointeur pour une utilisation ailleurs.

Pour plus d’informations sur les clôtures GPU natives, consultez Objets de clôture GPU natifs.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11, version 24H2
En-tête d3dkmddi.h
IRQL DISPATCH_LEVEL

Voir aussi

DXGKARG_UPDATECURRENTVALUESFROMCPU