structure DXGK_VIDSCHCAPS (d3dkmddi.h)

La structure DXGK_VIDSCHCAPS identifie les fonctionnalités de planification de l’unité de traitement graphique (GPU), dans les indicateurs de champ de bits, qu’un pilote 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;
#if ...
      UINT Reserved : 20;
#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 les fonctions DxgkDdiCreateContext et DxgkDdiDestroyContext ) et l’utilisation d’un contexte d’appareil (via les fonctions DxgkDdiPresent et 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 dans le contexte par un handle à l’appareil.

Définir ce membre équivaut à définir le premier bit du membre Value 32 bits (0x00000001).

VSyncPowerSaveAware

Valeur UINT qui spécifie si le pilote prend en charge la fonctionnalité d’économie d’énergie de synchronisation verticale.

Si VSyncPowerSaveAware a la valeur 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 qui peuvent provoquer l’interruption de synchronisation verticale.

La définition de ce membre équivaut à définir le deuxième bit du membre Value 32 bits (0x00000002).

Pris 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 au GPU avant d’initier le processus **Timeout Detection and Recovery (TDR).

Si PreemptionAware a la valeur 1 (TRUE), le pilote prend en charge la stratégie de préemption de Windows 8 et versions ultérieures de Windows.

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, ce qui peut entraîner une erreur d’arrêt du système.

Notes

Si PreemptionAware a la valeur 1, le membre MultiEngineAware doit également avoir la valeur 1. Si PreemptionAware a la valeur 1, mais que MultiEngineAware a la valeur zéro, le système d’exploitation arrête le processus d’initialisation du pilote et retourne un code d’échec.

La définition de ce membre équivaut à définir le troisième bit du membre Value 32 bits (0x00000004).

Pris en charge à partir de Windows 8.

NoDmaPatching

Valeur UINT qui spécifie si le pilote désactive la détection des fuites pour les mémoires tampons DMA qui sont divisées en plusieurs parties. Cette détection est effectuée une fois que la fonction DxgkDdiPatch du pilote est appelée pour affecter ou corriger des adresses physiques à chaque partie de la mémoire tampon DMA.

Notes

Les appareils d’affichage qui prennent en charge les adresses virtuelles peuvent reprogrammer 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 de périphériques 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 la mémoire tampon DMA est le même que dans Windows 7.

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 DxgkDdiPatch du pilote.

Notes

Si NoDmaPatching a la valeur 1, les membres PreemptionAware et MultiEngineAware doivent également avoir la valeur 1. Si NoDmaPatching a la valeur 1, mais que PreemptionAware ou MultiEngineAware ont la valeur zéro, le système d’exploitation arrête le processus d’initialisation du pilote et retourne un code d’échec.

La définition de ce membre équivaut à définir le quatrième bit du membre Value 32 bits (0x0000008).

Pris en charge à partir de Windows 8.

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.

Si CancelCommandAware a la valeur 1 (TRUE), le pilote prend en charge le nettoyage des ressources associées à un paquet DMA annulé. Si CancelCommandAware est défini sur zéro (FALSE), le pilote ne prend pas en charge le nettoyage des ressources.

Notes

Si CancelCommandAware a la valeur 1, le membre MultiEngineAware doit également avoir la valeur 1. Si CancelCommandAware a la valeur 1, mais que MultiEngineAware a la valeur zéro, le système d’exploitation retourne un code d’échec.

La définition de ce membre équivaut à définir le cinquième bit du membre Value 32 bits (0x0000010).

Pris en charge à partir de Windows 8.

No64BitAtomics

Valeur Signification
TRUE Indique qu’un GPU est capable de mettre à jour uniquement les valeurs 32 bits de manière atomique. Dans ce cas, le système d’exploitation gère automatiquement le cas wraparound de clôture, mais il impose une restriction selon laquelle les valeurs d’attente et de clôture de signal en attente ne peuvent pas être supérieures à UINT_MAX/2 en dehors de la dernière valeur de clôture signalée.
FALSE Indique qu’un GPU est capable de mettre à jour des valeurs 64 bits de manière atomique, comme visible par le processeur.

Pris en charge à partir de Windows 10.

LowIrqlPreemptCommand

HwQueuePacketCap

Nombre maximal de paquets DMA autorisés à être mis en file d’attente vers un nœud.

NativeGpuFence

Reserved

Ce membre est réservé et doit être défini sur zéro.

Value

Membre de l’union que contient DXGK_VIDSCHCAPS qui peut contenir une valeur 32 bits qui identifie les fonctionnalités de planification GPU que le pilote peut prendre en charge.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
En-tête d3dkmddi.h (inclure D3dkmddi.h)

Voir aussi

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender