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
D3DKMDT_STANDARDALLOCATION_TYPE