Partager via


structure DXGK_VIDMMCAPS (d3dkmddi.h)

La structure DXGK_VIDMMCAPS identifie les fonctionnalités de gestion de la mémoire vidéo prises en charge par un pilote de miniport (KMD) en mode noyau.

Syntaxe

typedef struct _DXGK_VIDMMCAPS {
  union {
    struct {
      UINT OutOfOrderLock : 1;
      UINT DedicatedPagingEngine : 1;
      UINT PagingEngineCanSwizzle : 1;
      UINT SectionBackedPrimary : 1;
      UINT CrossAdapterResource : 1;
      UINT VirtualAddressingSupported : 1;
      UINT GpuMmuSupported : 1;
      UINT IoMmuSupported : 1;
      UINT ReplicateGdiContent : 1;
      UINT NonCpuVisiblePrimary : 1;
      UINT ParavirtualizationSupported : 1;
      UINT IoMmuSecureModeSupported : 1;
      UINT DisableSelfRefreshVRAMInS3 : 1;
      UINT IoMmuSecureModeRequired : 1;
      UINT MapAperture2Supported : 1;
      UINT CrossAdapterResourceTexture : 1;
      UINT CrossAdapterResourceScanout : 1;
      UINT AlwaysPoweredVRAM : 1;
#if ...
      UINT Reserved : 14;
#elif
      UINT Reserved : 15;
#elif
      UINT Reserved : 18;
#elif
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 22;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
  UINT  PagingNode;
} DXGK_VIDMMCAPS;

Membres

OutOfOrderLock

Spécifie si le pilote peut verrouiller des instances d’allocation autres que la dernière instance. Le pilote définit généralement cette valeur pour le thread DDI et l’équilibrage de charge si un thread DDI doit verrouiller une mémoire tampon de vertex qu’un thread d’application avait précédemment verrouillé et ignoré.

DedicatedPagingEngine

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

PagingEngineCanSwizzle

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

SectionBackedPrimary

Spécifie si le pilote prend en charge les allocations primaires sauvegardées par une section. Prise en charge à partir de Windows 8.

CrossAdapterResource

Spécifie si le pilote fournit une prise en charge de niveau 1 de la copie vers et depuis des ressources inter-adaptateurs dans un système hybride . Prise en charge à partir de Windows 8.1.

À compter de WDDM 2.4, DXGI active les optimisations de présentation hybride actuelles pour le scénario plus large où que le rendu soit sur un GPU et la présentation sur le moniteur d’un autre GPU. Cela n’est possible que si les deux GPU prennent en charge les ressources inter-adaptateurs.

Les propriétés des ressources inter-adaptateurs sont répertoriées ci-dessous.

  • La ressource peut être paginée uniquement sur le segment de mémoire GPU d’ouverture
  • La ressource est allouée en tant que partage.
  • La ressource doit être marquée comme étant visible par le processeur.
  • L’allocation sera créée par le système d’exploitation en tant que combinaison d’écriture.
  • La ressource n’a qu’une seule allocation et a le format linéaire.
  • La ressource a un alignement de tangage standard (128 octets). La définition D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT est ajoutée pour l’alignement de l’emplacement. La ressource doit être créée au plus petit multiple de cet alignement qui contiendra le contenu de la ressource.
  • La ressource a un alignement de hauteur standard (4 lignes). La D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT est ajoutée. La ressource doit être créée au plus petit multiple de cet alignement qui contiendra le contenu de la ressource.
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • L’adresse de début de la mémoire de ressource est alignée sur une limite de page.
  • La ressource peut être créée en tant qu’allocation standard à partir du mode noyau et ouverte ultérieurement par l’UMD.
  • La ressource peut être créée par l’UMD.

L’allocation entre adaptateurs peut être utilisée comme principal, mais le pilote n’obtient pas d’informations, qui est généralement fournie lors de la création du réplica principal

VirtualAddressingSupported

Spécifie si le pilote prend en charge l’adressage de la mémoire virtuelle. Pour exprimer la prise en charge de l’adressage de mémoire virtuelle GPU, le pilote doit définir la limite de VirtualAddressingSupported et GpuMmuSupported ou Limite de IoMmuSupported. GpuMmuSupported et IoMmuSupported ne peuvent pas être définis en même temps. Prise en charge à partir de Windows 10 (WDDM 2.0).

GpuMmuSupported

Spécifie si l’adaptateur prend en charge le modèle GpuMmu. Un adaptateur ne peut pas prendre en charge les GpuMmu et les modèles IoMmu sur différents moteurs en même temps. Pour plus d’informations, consultez modèle GpuMmu. Prise en charge à partir de Windows 10 (WDDM 2.0).

IoMmuSupported

Spécifie si l’adaptateur prend en charge le modèle IoMmu. Un adaptateur ne peut pas prendre en charge les GpuMmu et les modèles IoMmu sur différents moteurs en même temps. Pour plus d’informations, consultez modèle IoMmu. Prise en charge à partir de Windows 10 (WDDM 2.0).

ReplicateGdiContent

Spécifie si l’adaptateur prend en charge la réplication du contenu GDI. Prise en charge à partir de Windows 10 (WDDM 2.0).

NonCpuVisiblePrimary

Indique que les allocations GDI ne sont pas requises pour être visibles par le processeur. Prise en charge à partir de Windows 10 (WDDM 2.0).

ParavirtualizationSupported

Indique que le KMD prend en charge la paravirtualisation GPU. Le KMD hôte doit définir la limite si toutes les DDIS sont implémentées. Introduit dans Windows 10 version 1703 (WDDM 2.2).

IoMmuSecureModeSupported

Indique que le pilote prend en charge isolation GPU basée sur IOMMU. Prise en charge à partir de Windows 10 version 1803 (WDDM 2.4).

DisableSelfRefreshVRAMInS3

Désactivez la prise en charge de l’actualisation automatique de VRAM dans S3. Prise en charge à partir de Windows 10 version 1803.

IoMmuSecureModeRequired

Indique que la prise en charge du matériel et de l’isolation IOMMU (référencée par l’indicateur IommuSecureModeSupported) est requise ou que le système d’exploitation ne démarre pas l’adaptateur. Prise en charge à partir de Windows 10 version 2004 (WDDM 2.7).

MapAperture2Supported

Indique que le pilote prend en charge l’opération de mémoire tampon de pagination DXGK_OPERATION_MAP_APERTURE_SEGMENT2, qui est requise pour de remapping IOMMU DMA. Prise en charge à partir de WDDM version 2.9.

CrossAdapterResourceTexture

Spécifie si le pilote fournit la prise en charge du niveau 2 de la texturation à partir de ressources inter-adaptateurs. Un pilote qui indique la prise en charge de CrossAdapterResourceTexture doit également indiquer la prise en charge de CrossAdapterResource. Prise en charge à partir de WDDM version 2.9.

CrossAdapterResourceScanout

Spécifie si le pilote fournit la prise en charge du niveau 3 de l’analyse des ressources inter-adaptateurs. Un pilote qui indique la prise en charge de CrossAdapterResourceScanout doit également indiquer la prise en charge des CrossAdapterResource et CrossAdapterResourceTexture. Prise en charge à partir de WDDM version 2.9.

La prise en charge du niveau 3 nécessite que le pilote puisse effectuer les fonctionnalités de découpage prises en charge, déclarées par le pilote dans DXGK_FLIPCAPS, pour les ressources inter-adaptateurs des spécifications minimales suivantes :

  • Taille de mémoire tampon principale inter-adaptateur de 1920 x 1080 ou plus petite
  • Format de pixels tampons de l’un des formats DisplayScanOut pris en charge suivants :
    • DXGI_FORMAT_R16G16B16A16_FLOAT
    • DXGI_FORMAT_R10G10B10A2_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
    • DXGI_FORMAT_B8G8R8A8_UNORM
    • DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

Le runtime DXGI interroge les CrossAdapterResourceScanout du pilote prise en charge et, si elle est prise en charge, la pile de présentation descendra le chemin d’accès de copie 1. Par conséquent, les pilotes qui déclarent la prise en charge de CrossAdapterResourceScanout sont également requis pour :

  • Prise en charge DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3.
  • Prendre en charge toutes les DDIS relatives à la présentation pertinentes pour les primaires inter-adaptateurs des spécifications minimales ci-dessus. Voici quelques exemples : pfnCreateResource, pfnCheckMultiplaneOverlaySupport et pfnPresentMultiplaneOverlay/pfnPresent1. Reportez-vous aux spécifications existantes pour obtenir les détails nécessaires, tels que les spécifications DU MPO et les spécifications hybrides. Reportez-vous à la section ci-dessous pour plus d’informations sur la chute de l’authentification unique.

AlwaysPoweredVRAM

Reserved

Ce membre est réservé et doit être défini sur zéro. La définition de ce membre sur zéro équivaut à définir les 31 bits restants (après avoir défini OutOfOrderLock) du membre Valeur sur zéros. Notez que réservée n’est disponible que si DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7.

Value

Cette valeur est utilisée pour fonctionner sur les membres collectivement.

PagingNode

Index de base zéro du nœud à utiliser pour les opérations de pagination. Si le pilote ne définit pas le MultiEngineAware membre de champ binaire du membre SchedulingCaps membre de la structure DXGK_DRIVERCAPS, le sous-système du noyau graphique DirectX ignore le paramètre de PagingNode. Ce membre s’applique uniquement à WDDM 1.x. Dans WDDM 2.x, PagingNode a été déplacé vers DXGK_PHYSICALADAPTERCAPS.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista (WDDM 1.0)
d’en-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS