structure DXGKARG_CREATEHWQUEUE (d3dkmddi.h)
La structure DXGKARG_CREATEHWQUEUE est utilisée avec DxgkDdiCreateHwQueue pour créer une file d’attente matérielle.
Syntaxe
typedef struct _DXGKARG_CREATEHWQUEUE {
HANDLE hHwQueue;
D3DDDI_CREATEHWQUEUEFLAGS Flags;
UINT PrivateDriverDataSize;
VOID *pPrivateDriverData;
D3DKMT_HANDLE hHwQueueProgressFence;
VOID *HwQueueProgressFenceCPUVirtualAddress;
D3DGPU_VIRTUAL_ADDRESS HwQueueProgressFenceGPUVirtualAddress;
} DXGKARG_CREATEHWQUEUE;
Membres
hHwQueue
[in/out] Lors de l’entrée, Dxgkrnlhandle de la file d’attente matérielle. En sortie, le handle du pilote vers la file d’attente matérielle.
Flags
[in] Structure D3DDDI_CREATEHWQUEUEFLAGS contenant les indicateurs de création de file d’attente.
PrivateDriverDataSize
[in] Taille en octets des données du pilote privé vers laquelle pPrivateDriverData pointe.
pPrivateDriverData
[in/out] Pointeur vers les données de pilote privé passées par la fonction pfnCreateHwContextCb du pilote en mode utilisateur. Étant donné que pPrivateDriverData est un paramètre in-out, KMD peut également retourner des données privées à l’UMD.
hHwQueueProgressFence
[in] Gérez l’objet de synchronisation GPU créé par le système d’exploitation pour cette file d’attente matérielle. La clôture de progression est utilisée pour synchroniser l’achèvement de la mémoire tampon DMA sur cette file d’attente matérielle. Voir les remarques.
HwQueueProgressFenceCPUVirtualAddress
[in] Adresse virtuelle du processeur en mode noyau qui peut être utilisée pour lire la valeur actuellement signalée de la clôture de progression de la file d’attente matérielle.
HwQueueProgressFenceGPUVirtualAddress
[in] Adresse virtuelle GPU qui peut être utilisée pour lire ou écrire la valeur de la clôture de progression de la file d’attente matérielle. La valeur de clôture de progression de la file d’attente doit augmenter de façon monotonique avec chaque nouvelle soumission à la file d’attente matérielle. Les instructions GPU pour mettre à jour la clôture de progression de la file d’attente doivent être insérées par le pilote en mode utilisateur à la fin du suivi de la mémoire tampon DMA.
Remarques
Pour la soumission de noyau HWQueues, le système d’exploitation alloue la clôture de progression en tant que type de clôture native sur les GPU qui prennent en charge les clôtures natives. Lorsque l’indicateur NativeProgressFence
Lors de la création d’une clôture native pour un HWQueue, le système d’exploitation définit également D3DKMT_CREATEHWQUEUE ::Flags.NativeProgressFence sur TRUE, afin que le runtime sache également que la clôture de progression de HWQueue a été allouée en tant que clôture native.
Pour la soumission d’utilisateurs HWQueues, le système d’exploitation alloue sa clôture de progression en tant que clôture native dans DxgkDdiCreateHwQueueForUserModeSubmission() par définition.
Remarque sur la compatibilité des pilotes : Dxgkrnl n’écrit que dans le champ hHwQueueNativeProgressFence sur les pilotes qui prennent en charge la limite NativeGpuFence. Cela garantit que le système d’exploitation référence uniquement ce champ sur les pilotes en développement et futurs compilés avec cet en-tête mis à jour. KMD lit uniquement ce champ si DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence a la valeur TRUE. Cela garantit que KMD référence uniquement ce champ sur les dernières builds du système d’exploitation qui prennent en charge la clôture de progression native et cet en-tête mis à jour.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10, version 1703 (WDDM 2.2) |
d’en-tête | d3dkmddi.h |