Partager via


structure D3DKMDT_FENCESTORAGESURFACEDATA (d3dkmddi.h)

La structure D3DKMDT_FENCESTORAGESURFACEDATA décrit les segments de mémoire où le stockage de clôture doit être placé.

Syntaxe

typedef struct _D3DKMDT_FENCESTORAGESURFACEDATA {
  UINT                          PhysicalAdapterIndex;
  DXGKARG_FENCESTORAGEVALUETYPE FenceStorageValueType;
  D3DDDI_NATIVEFENCE_TYPE       FenceStorageType;
  UINT                          PrivateDriverDataSize;
  BYTE                          *pPrivateDriverData;
  DXGKARG_FENCESTORAGEFLAGS     Flags;
  UINT                          Reserved;
  DXGK_ALLOCATIONINFO           AllocationInfo;
} D3DKMDT_FENCESTORAGESURFACEDATA;

Membres

PhysicalAdapterIndex

[in] Index de l’adaptateur physique dans une configuration LDA où le stockage de clôture sera résident.

FenceStorageValueType

[in] Valeur DXGKARG_FENCESTORAGEVALUETYPE qui spécifie le type de la valeur de clôture native.

FenceStorageType

[in] Valeur D3DDDI_NATIVEFENCE_TYPE qui spécifie le type de la clôture native.

PrivateDriverDataSize

[in] Taille, en octets, des données du pilote privé vers laquelle pPrivateDriverData pointe.

pPrivateDriverData

[in] Pointeur vers les données du pilote privé. Réservé pour une utilisation ultérieure.

Flags

[in] Valeur DXGKARG_FENCESTORAGEFLAGS qui spécifie les indicateurs du stockage de clôture.

Reserved

[in] Réservé pour une utilisation ultérieure.

AllocationInfo

[out] Structure DXGK_ALLOCATIONINFO dans laquelle le pilote doit retourner des propriétés d’allocation.

Remarques

Lorsque le système d’exploitation appelle le du pilote en mode noyau DxgkDdiGetStandardAllocation fonction avec un type d’allocation standard de D3DKMDT_STANDARDALLOCATION_FENCESTORAGE, le pilote doit retourner les segments de mémoire où le stockage de clôture doit être placé dans D3DKMDT_FENCESTORAGESURFACEDATA.

En fonction des champs d’entrée, le pilote doit remplir les informations d’allocation suivantes dans AllocationInfo:

  • SupportedWriteSegmentSet
  • evictionSegmentSet
  • PreferredSegment

Le pilote doit ignorer le pointeur vers des données privées. Le pilote ne doit pas vérifier que le pointeur a la valeur NULL et ne doit pas demander de données privées en définissant sa taille.

Les valeurs surveillées des clôtures natives doivent être placées dans un segment de mémoire visible par le processeur, car elles sont mises à jour à l’aide de pointeurs d’UC.

Après la création d’un objet de clôture natif qui a le type D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU, le pilote en mode utilisateur doit toujours définir la valeur initiale en envoyant un paquet DMA à l’aide d’une adresse virtuelle GPU. Les valeurs actuelles sont empaquetées dans une page de mémoire 4K, qui peut se trouver dans un segment de mémoire locale non visible par l’UC. Par conséquent, le système d’exploitation n’a pas de moyen de définir la valeur initiale.

Les allocations partagées sont toujours placées dans la mémoire système.

Pour plus d’informations, consultez objets de clôture GPU natifs.

Exigences

Exigence Valeur
client minimum pris en charge Windows 11, version 24H2 (WDDM 3.2)
d’en-tête d3dkmddi.h

Voir aussi

D3DDDI_NATIVEFENCE_TYPE

D3DKMDT_STANDARDALLOCATION_TYPE

DXGK_ALLOCATIONINFO

DXGKARG_FENCESTORAGEFLAGS

DXGKARG_FENCESTORAGEVALUETYPE

DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA

DxgkDdiGetStandardAllocation