structure DXGK_VIDSCHCAPS (d3dkmddi.h)
La structure DXGK_VIDSCHCAPS a des indicateurs de champ binaire qui identifient les fonctionnalités de planification du GPU qu’un pilote de miniport (KMD) en mode noyau peut prendre en charge.
Syntaxe
typedef struct _DXGK_VIDSCHCAPS {
union {
struct {
UINT MultiEngineAware : 1;
UINT VSyncPowerSaveAware : 1;
UINT PreemptionAware : 1;
UINT NoDmaPatching : 1;
UINT CancelCommandAware : 1;
UINT No64BitAtomics : 1;
UINT LowIrqlPreemptCommand : 1;
UINT HwQueuePacketCap : 4;
UINT NativeGpuFence : 1;
UINT OptimizedNativeFenceSignaledInterrupt : 1;
#if ...
UINT Reserved : 19;
#elif
UINT Reserved : 21;
#elif
UINT Reserved : 25;
#elif
UINT Reserved : 27;
#else
UINT Reserved : 30;
#endif
};
UINT Value;
};
} DXGK_VIDSCHCAPS;
Membres
MultiEngineAware
Valeur UINT qui spécifie si le pilote prend en charge la création et la destruction d’un contexte d’appareil (via le DxgkDdiCreateContext et fonctions DxgkDdiDdiDestroyCon text) et l’utilisation d’un contexte d’appareil (via les fonctions DxgkDdiPresent et fonctions DxgkDdiRender). Si le pilote ne prend pas en charge la création de contexte, pour chaque appel au pilote qui passerait un handle à un contexte, le sous-système du noyau graphique Microsoft DirectX remplace le handle par un handle sur l’appareil.
VSyncPowerSaveAware
Valeur UINT qui spécifie si le pilote prend en charge la fonctionnalité d’économie d’alimentation de synchronisation verticale.
Si VSyncPowerSaveAware est défini sur 1 (TRUE), le système d’exploitation peut économiser de l’énergie en désactivant et en activant l’interruption de synchronisation verticale qui se produit à partir de l’utilisation de certaines applications. Si VSyncPowerSaveAware est défini sur zéro (FALSE), le système d’exploitation ne désactive jamais l’interruption de synchronisation verticale pour les applications susceptibles de provoquer l’interruption de synchronisation verticale. Prise en charge à partir de Windows Server 2008 et Windows Vista avec SP1.
PreemptionAware
Valeur UINT qui spécifie si le pilote prend en charge la stratégie de préemption GPU de Windows 8 et versions ultérieures de Windows. Avec cette stratégie, le système d’exploitation émet toujours des demandes de préemption sur le GPU avant de lancer le processus **Détection et récupération du délai d’attente (TDR). Prise en charge à partir de Windows 8.
Si preemptionAware est défini sur 1 (TRUE), le pilote prend en charge la stratégie de préemption de Windows 8 et les versions ultérieures de Windows. Notez que si preemptionAware est défini sur 1, le membre MultiEngineAware doit également avoir la valeur 1. Si preemptionAware est défini sur 1, mais MultiEngineAware est défini sur zéro, le système d’exploitation arrête le processus d’initialisation du pilote et retourne un code d’échec.
Si preemptionAware est défini sur zéro (FALSE), le pilote prend en charge la stratégie de préemption de Windows 7. Avec cette stratégie, le système d’exploitation peut ne pas émettre de demandes de préemption alors que des opérations potentiellement longues sont exécutées sur le GPU. Par conséquent, ces requêtes GPU ne sont pas préemptées avant le lancement du processus TDR. Cela peut entraîner la réinitialisation répétée du processus TDR qui peut entraîner une erreur d’arrêt du système.
NoDmaPatching
Valeur UINT qui spécifie si le pilote désactive la détection des fuites pour les mémoires tampons DMA fractionnées en plusieurs parties. Cette détection est effectuée après que la fonctionDxgkDdiPatchdu pilote est appelée pour affecter, ou correctif, adresses physiques à chaque partie de la mémoire tampon DMA. Prise en charge à partir de Windows 8.
Les appareils d’affichage qui prennent en charge les adresses virtuelles peuvent réprogrammer une adresse virtuelle vers un nouvel emplacement de mémoire vidéo sans avoir à corriger la valeur de l’adresse de mémoire tampon DMA. Pour ces types d’appareils d’affichage, le pilote doit définir NoDmaPatching sur 1.
Si noDmaPatching a la valeur 1 (TRUE), le pilote désactive la détection des fuites et le comportement du fractionnement de mémoire tampon DMA est identique à celui de Windows 7. Notez que lorsque NoDmaPatching a la valeur 1, les PreemptionAware et membres multiEngineAware doivent également être définis sur 1. Si NoDmaPatching a la valeur 1, mais PreemptionAware ou MultiEngineAware sont définis sur zéro, le système d’exploitation arrête le processus d’initialisation du pilote et retourne un code d’échec.
Si NoDmaPatching a la valeur 0 (FALSE), le pilote active la détection des fuites pour les adresses de mémoire tampon DMA corrigées. Le système d’exploitation effectue la détection des fuites avant d’appeler la fonction DxgkDdiPatchdu pilote.
CancelCommandAware
Valeur UINT qui spécifie si le pilote prend en charge le nettoyage des ressources internes (via la fonction DxgkDdiCancelCommand) après la suppression d’une commande de la file d’attente matérielle. Prise en charge à partir de Windows 8.
Si cancelCommandAware a la valeur 1 (TRUE), le pilote prend en charge le nettoyage des ressources associées à un paquet DMA annulé. Notez que lorsque cancelCommandAware a la valeur 1, le membre MultiEngineAware doit également être défini sur 1. Si cancelCommandAware est défini sur 1, mais MultiEngineAware est défini sur zéro, le système d’exploitation retourne un code d’échec.
Si cancelCommandAware a la valeur zéro (FALSE), le pilote ne prend pas en charge le nettoyage des ressources.
No64BitAtomics
Si No64BitAtomics a la valeur 1 (TRUE), le pilote indique que le GPU est capable de mettre à jour uniquement les valeurs 32 bits atomiquement. Dans ce cas, le système d’exploitation gère automatiquement le cas wraparound de clôture, mais il place une restriction indiquant qu’une attente en attente et les valeurs de clôture de signal ne peuvent pas être supérieures à UINT_MAX/2 en dehors de la dernière valeur de clôture signalée. Prise en charge à partir de Windows 10.
Si No64BitAtomics est défini sur zéro (FALSE), le pilote indique que le GPU est capable de mettre à jour les valeurs 64 bits de manière atomique comme visible par l’UC.
LowIrqlPreemptCommand
HwQueuePacketCap
Nombre maximal de paquets DMA autorisés à être mis en file d’attente vers un nœud.
NativeGpuFence
Si le système d’exploitation a activé la fonctionnalité de DXGK_FEATURE_NATIVE_FENCE, le pilote peut déclarer la prise en charge de la fonctionnalité de clôture GPU native lors de l’initialisation de l’adaptateur en définissant la NativeGpuFence bit sur 1. Cette fonctionnalité est exposée au mode utilisateur via un D3DKMT_WDDM_3_1_CAPS ::NativeGpuFenceSupported bit correspondant. Pour plus d’informations, consultez objets de clôture GPU natifs. Disponible à partir de Windows 11, version 22H2 (WDDM 3.1).
OptimizedNativeFenceSignaledInterrupt
Le pilote définit cette valeur TRUE si, sur une interruption signalée, le GPU peut spécifier dans DXGKARGCB_NOTIFY_INTERRUPT_DATA ::NativeFenceSignaled uniquement le handle KMD du HWQueue en cours d’exécution. Pour plus d’informations, consultez objets de clôture GPU natifs. Disponible à partir de Windows 11, version 22H2 (WDDM 3.1).
Reserved
Ce membre est réservé et doit être défini sur zéro.
Value
Une autre façon d’accéder aux indicateurs de champ binaire dans l’union.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
d’en-tête | d3dkmddi.h (include D3dkmddi.h) |