DXGK_VIDMMCAPS-Struktur (d3dkmddi.h)

Die DXGK_VIDMMCAPS-Struktur identifiziert die Videospeicherverwaltungsfunktionen, die ein Display-Miniporttreiber unterstützt.

Syntax

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;

Member

OutOfOrderLock

Gibt an, ob der Treiber andere Zuordnungsinstanzen als die neueste instance sperren kann. Der Treiber legt diesen Wert in der Regel für DDI-Threading und Lastenausgleich fest, wenn ein DDI-Thread einen Vertexpuffer sperren muss, den ein Anwendungsthread zuvor gesperrt und verworfen hatte. Das Festlegen dieses Elements entspricht dem Festlegen des ersten Bits des 32-Bit-Elements Wert (0x00000001).

DedicatedPagingEngine

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden.

PagingEngineCanSwizzle

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden.

SectionBackedPrimary

Gibt an, ob der Treiber abschnittsgestützte primäre Zuordnungen unterstützt. Unterstützt ab Windows 8.

CrossAdapterResource

Gibt an, ob der Treiber die Unterstützung der Ebene 1 für das Kopieren in und aus adapterübergreifenden Ressourcen in einem Hybridsystem< bereitstellt. Unterstützt ab Windows 8.1.

Ab WDDM 2.4 ermöglicht DXGI die aktuellen Hybridpräsentationsoptimierungen für das breitere Szenario, unabhängig davon, ob das Rendern auf einer GPU erfolgt und auf dem Monitor einer anderen GPU dargestellt wird. Dies ist nur möglich, wenn beide GPUs adapterübergreifende Ressourcen unterstützen.

Die adapterübergreifenden Ressourceneigenschaften sind unten aufgeführt.

  • Die Ressource kann nur in das GPU-Speichersegment der Blende ausgelagert werden.
  • Die Ressource wird als freigegeben zugeordnet.
  • Die Ressource muss als CPU-Sichtbar gekennzeichnet sein.
  • Die Zuordnung wird vom Betriebssystem als kombinierte Schreibvorgänge erstellt.
  • Die Ressource verfügt nur über eine Zuordnung und das lineare Format.
  • Die Ressource verfügt über eine Standardmäßige Ausrichtung der Tonhöhe (128 Bytes). Die definition D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT wird für die Ausrichtung der Tonhöhe hinzugefügt. Die Ressource muss mit dem kleinsten Vielfachen dieser Ausrichtung erstellt werden, die den Ressourceninhalt enthält.
  • Die Ressource verfügt über eine Standardhöhenausrichtung (4 Zeilen). Die D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT wird hinzugefügt. Die Ressource muss mit dem kleinsten Vielfachen dieser Ausrichtung erstellt werden, die den Ressourceninhalt enthält.
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • Die Startadresse des Ressourcenspeichers wird an einer Seitengrenze ausgerichtet.
  • Die Ressource kann als Standardzuordnung aus dem Kernelmodus erstellt und später vom UMD geöffnet werden.
  • Die Ressource wird möglicherweise von der UMD erstellt.

Die adapterübergreifende Zuordnung kann als primäres Element verwendet werden, aber der Treiber erhält keine Informationen, die in der Regel bereitgestellt werden, wenn die primäre Instanz erstellt wird.

VirtualAddressingSupported

Gibt an, ob der Treiber die Adressierung des virtuellen Arbeitsspeichers unterstützt. Um die Unterstützung für die GPU-Adressierung des virtuellen Arbeitsspeichers auszudrücken, sollte der Treiber die Obergrenze VirtualAddressingSupported und gpuMmuSupported oder IoMmuSupported festlegen. GpuMmuSupported und IoMmuSupported können nicht gleichzeitig festgelegt werden. Unterstützt ab Windows 10.

GpuMmuSupported

Gibt an, ob der Adapter das GpuMmu-Modell unterstützt. Ein Adapter kann die GpuMmu - und ioMmu-Modelle auf verschiedenen Engines nicht gleichzeitig unterstützen. Weitere Informationen finden Sie unter GpuMmu-Modell . Unterstützt ab Windows 10.

IoMmuSupported

Gibt an, ob der Adapter das IoMmu-Modell unterstützt. Ein Adapter kann die GpuMmu - und ioMmu-Modelle auf verschiedenen Engines nicht gleichzeitig unterstützen. Weitere Informationen finden Sie unter IoMmu-Modell . Unterstützt ab Windows 10 (WDDM 2.0).

ReplicateGdiContent

Gibt an, ob der Adapter die Replikation von GDI-Inhalten unterstützt. Unterstützt ab Windows 10.

NonCpuVisiblePrimary

Gibt an, dass GDI-Zuordnungen nicht cpu-sichtbar sein müssen. Unterstützt ab Windows 10.

ParavirtualizationSupported

Der Host-KMD muss die Obergrenze festlegen, wenn alle DDIs implementiert sind. Unterstützt ab Windows 10 Version 1703 (WDDM 2.2).

IoMmuSecureModeSupported

Gibt an, dass der Treiber die IOMMU-basierte GPU-Isolation unterstützt. Unterstützt ab Windows 10 Version 1803 (WDDM 2.4).

DisableSelfRefreshVRAMInS3

Deaktivieren Sie die Unterstützung für die Selbstaktualisierung von VRAM in S3. Unterstützt ab Windows 10 Version 1803.

IoMmuSecureModeRequired

Gibt an, dass IOMMU-Hardware- und Isolationsunterstützung (die durch das IommuSecureModeSupported-Flag bezeichnet wird) erforderlich ist, da andernfalls das Betriebssystem den Adapter nicht startet. Unterstützt ab Windows 10 Version 2004 (WDDM 2.7).

MapAperture2Supported

Gibt an, dass der Treiber den DXGK_OPERATION_MAP_APERTURE_SEGMENT2 Pagingpuffervorgang unterstützt, der für die IOMMU DMA-Neuzuordnung erforderlich ist. Unterstützt ab WDDM Version 2.9.

CrossAdapterResourceTexture

Gibt an, ob der Treiber Die Texturierung aus adapterübergreifenden Ressourcen der Ebene 2 unterstützt. Ein Treiber, der die Unterstützung für CrossAdapterResourceTexture angibt, muss auch die Unterstützung für CrossAdapterResource angeben. Unterstützt ab WDDM Version 2.9.

CrossAdapterResourceScanout

Gibt an, ob der Treiber Die Überprüfung adapterübergreifender Ressourcen der Ebene 3 unterstützt. Ein Treiber, der die Unterstützung für CrossAdapterResourceScanout angibt, muss auch die Unterstützung für CrossAdapterResource und CrossAdapterResourceTexture angeben. Unterstützt ab WDDM Version 2.9.

Die Unterstützung der Ebene 3 erfordert, dass der Treiber die unterstützten Flippingfunktionen ausführen kann, die vom Treiber in DXGK_FLIPCAPS für adapterübergreifende Ressourcen der folgenden Mindestspezifikationen deklariert werden:

  • Adapterübergreifende primäre Puffergröße von 1920 x 1080 oder kleiner
  • Pufferpixelformat eines der folgenden unterstützten DisplayScanOut-Formate:
    • 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

Die DXGI-Runtime fragt die CrossAdapterResourceScanout-Unterstützung des Treibers ab, und wenn unterstützt, muss der Präsentationsstapel den Kopierpfad 1 nach unten gehen. Daher sind Treiber, die Unterstützung für CrossAdapterResourceScanout deklarieren, auch für Folgendes erforderlich:

  • Unterstützung DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3.
  • Unterstützen Sie alle relevanten präsentationsbezogenen DDIs für adapterübergreifende Primaries der oben genannten Mindestspezifikationen. Einige Beispiele sind pfnCreateResource, pfnCheckMultiplaneOverlaySupport und pfnPresentMultiplaneOverlay/pfnPresent1. Die erforderlichen Details finden Sie in den vorhandenen Spezifikationen, z. B. MPO-Spezifikation und Hybridspezifikation. Weitere Informationen zum Ausfall von CASO finden Sie im abschnitt unten.

AlwaysPoweredVRAM

Reserved

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden. Das Festlegen dieses Elements auf 0 (null) entspricht dem Festlegen der verbleibenden 31 Bits (nach dem Festlegen von OutOfOrderLock) des Value-Elements auf Nullen. Beachten Sie, dass Reserviert nur verfügbar ist, wenn DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7.

Value

Dieser Wert wird verwendet, um die Member gemeinsam zu verarbeiten.

PagingNode

Der nullbasierte Index des Knotens, der für Pagingvorgänge verwendet werden soll. Wenn der Treiber den MultiEngineAware-Bitfeldmember des SchedulingCaps-Elements der DXGK_DRIVERCAPS-Struktur nicht festlegt, ignoriert das DirectX-Grafikkernsubsystem die Einstellung pagingNode. Dieser Member gilt nur für WDDM 1.x. In WDDM 2.x wurde PagingNode in DXGK_PHYSICALADAPTERCAPS verschoben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Kopfzeile d3dkmddi.h (einschließlich D3dkmddi.h)

Weitere Informationen

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS