Freigeben über


DXGK_VIDSCHCAPS Struktur (d3dkmddi.h)

Die DXGK_VIDSCHCAPS Struktur verfügt über Bitfeldflags, die die Planungsfunktionen der GPU identifizieren, die ein Kernelmodus-Miniporttreiber (KMD) unterstützen kann.

Syntax

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;

Angehörige

MultiEngineAware

Ein UINT-Wert, der angibt, ob der Treiber die Erstellung und Zerstörung eines Gerätekontexts unterstützt (über die DxgkDdiCreateContext und DxgkDdiDestroyContext- funktionen) und die Verwendung eines Gerätekontexts (über die DxgkDdiPresent und DxgkDdiRender Funktionen). Wenn der Treiber die Kontexterstellung nicht unterstützt, ersetzt das Microsoft DirectX-Kernelsubsystem für jeden Aufruf des Treibers, der ein Handle an einen Kontext übergibt, das Handle in den Kontext durch ein Handle für das Gerät.

VSyncPowerSaveAware

Ein UINT-Wert, der angibt, ob der Treiber stromsparende Funktionen für die vertikale Synchronisierung unterstützt.

Wenn VSyncPowerSaveAware- auf 1 (TRUE) festgelegt ist, kann das Betriebssystem Energie sparen, indem er den vertikalen Synchronisierungsunterbruch deaktiviert und aktiviert, der aus der Verwendung einiger Anwendungen auftritt. Wenn VSyncPowerSaveAware- auf Null (FALSE) festgelegt ist, deaktiviert das Betriebssystem niemals den Vertikalsynchronisierungsunterbruch für Anwendungen, die dazu führen können, dass die vertikale Synchronisierungsunterbrechung auftritt. Unterstützt ab Windows Server 2008 und Windows Vista mit SP1.

PreemptionAware

Ein UINT-Wert, der angibt, ob der Treiber die GPU-Voreinstellungsrichtlinie von Windows 8 und höher unterstützt. Bei dieser Richtlinie gibt das Betriebssystem immer Vorabanforderungen an die GPU aus, bevor er den **Timeout Detection and Recovery (TDR) Prozess initiiert. Wird ab Windows 8 unterstützt.

Wenn PreemptionAware- auf 1 (TRUE) festgelegt ist, unterstützt der Treiber die Vorabrichtlinie von Windows 8 und neueren Versionen von Windows. Beachten Sie, dass, wenn PreemptionAware- auf 1 festgelegt ist, das MultiEngineAware Member auch auf den Wert 1 festgelegt werden muss. Wenn PreemptionAware- auf 1 festgelegt ist, aber MultiEngineAware- auf Null festgelegt ist, hält das Betriebssystem den Treiberinitialisierungsprozess an und gibt einen Fehlercode zurück.

Wenn PreemptionAware- auf Null (FALSE) festgelegt ist, unterstützt der Treiber die Vorabrichtlinie von Windows 7. Mit dieser Richtlinie gibt das Betriebssystem möglicherweise keine Vorabanforderungen aus, während potenziell lange ausgeführte Vorgänge auf der GPU ausgeführt werden. Daher werden diese GPU-Anforderungen nicht vor dem Initiieren des TDR-Prozesses vorgebeutet. Dies kann dazu führen, dass der TDR-Prozess die GPU wiederholt zurücksetzt, was zu einem Systemstoppfehler führen kann.

NoDmaPatching

Ein UINT-Wert, der angibt, ob der Treiber die Leckerkennung für DMA-Puffer deaktiviert, die in mehrere Teile aufgeteilt sind. Diese Erkennung wird ausgeführt, nachdem die DxgkDdiPatch--Funktion des Treibers aufgerufen wird, um jedem Teil des DMA-Puffers physische Adressen zuzuweisen, oder Patch-. Wird ab Windows 8 unterstützt.

Anzeigen von Geräten, die virtuelle Adressen unterstützen, können eine virtuelle Adresse an einen neuen Videospeicherort neu programmieren, ohne den Wert der DMA-Pufferadresse zu patchen. Für diese Arten von Anzeigegeräten sollte der Treiber NoDmaPatching- auf 1 festlegen.

Wenn NoDmaPatching- auf 1 (TRUE) festgelegt ist, deaktiviert der Treiber die Leckerkennung, und das Verhalten der DMA-Pufferteilung entspricht in Windows 7. Wenn NoDmaPatching- auf 1 festgelegt ist, müssen die PreemptionAware- und MultiEngineAware- member ebenfalls auf 1 festgelegt sein. Wenn NoDmaPatching- auf 1 festgelegt ist, aber PreemptionAware oder MultiEngineAware- auf Null festgelegt sind, hält das Betriebssystem den Treiberinitialisierungsprozess an und gibt einen Fehlercode zurück.

Wenn NoDmaPatching- auf 0 (FALSE) festgelegt ist, aktiviert der Treiber die Leckerkennung für gepatchte DMA-Pufferadressen. Das Betriebssystem führt die Leckerkennung durch, bevor er die DxgkDdiPatch--Funktion des Treibers aufruft.

CancelCommandAware

Ein UINT-Wert, der angibt, ob der Treiber das Bereinigen interner Ressourcen (über die DxgkDdiCancelCommand--Funktion) unterstützt, nachdem ein Befehl aus der Hardwarewarteschlange entfernt wurde. Wird ab Windows 8 unterstützt.

Wenn CancelCommandAware- auf 1 (TRUE) festgelegt ist, unterstützt der Treiber das Bereinigen von Ressourcen, die einem abgebrochenen DMA-Paket zugeordnet sind. Wenn CancelCommandAware- auf 1 festgelegt ist, muss auch das MultiEngineAware-Element auf 1 festgelegt sein. Wenn CancelCommandAware- auf 1 festgelegt ist, aber MultiEngineAware- auf Null festgelegt ist, gibt das Betriebssystem einen Fehlercode zurück.

Wenn CancelCommandAware- auf Null (FALSE) festgelegt ist, unterstützt der Treiber das Bereinigen von Ressourcen nicht.

No64BitAtomics

Wenn No64BitAtomics- auf 1 (TRUE) festgelegt ist, gibt der Treiber an, dass die GPU nur 32-Bit-Werte atomisch aktualisieren kann. In diesem Fall behandelt das Betriebssystem den Zaunumbruchfall automatisch, es wird jedoch eine Einschränkung platziert, dass ein ausstehender Warte- und Signalzaunwert nicht mehr als UINT_MAX/2 sein kann, abgesehen vom letzten signalierten Zaunwert. Wird ab Windows 10 unterstützt.

Wenn No64BitAtomics- auf Null (FALSE) festgelegt ist, gibt der Treiber an, dass die GPU 64-Bit-Werte atomisch aktualisieren kann, wie von der CPU sichtbar.

LowIrqlPreemptCommand

HwQueuePacketCap

Die maximale Anzahl von DMA-Paketen, die einem Knoten in die Warteschlange gestellt werden dürfen.

NativeGpuFence

Wenn das Betriebssystem die DXGK_FEATURE_NATIVE_FENCE-Funktion aktiviert hat, kann der Treiber die Unterstützung für systemeigene GPU-Zaunfunktionen während der Adapterinitialisierung deklarieren, indem der NativeGpuFence Bit auf 1 festgelegt wird. Diese Funktion wird über eine entsprechende D3DKMT_WDDM_3_1_CAPS::NativeGpuFenceSupported Bit für den Benutzermodus verfügbar gemacht. Weitere Informationen finden Sie unter native GPU-Zaunobjekte. Verfügbar ab Windows 11, Version 22H2 (WDDM 3.1).

OptimizedNativeFenceSignaledInterrupt

Der Treiber legt diesen TRUE fest, wenn die GPU bei einem signalisierten Interrupt in DXGKARGCB_NOTIFY_INTERRUPT_DATA::NativeFenceSignaled nur den KMD-Handle des ausgeführten HWQueue angeben kann. Weitere Informationen finden Sie unter native GPU-Zaunobjekte. Verfügbar ab Windows 11, Version 22H2 (WDDM 3.1).

Reserved

Dieses Element ist reserviert und sollte auf Null festgelegt werden.

Value

Eine alternative Möglichkeit, auf die Bitfeldkennzeichnungen in der Union zuzugreifen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Header- d3dkmddi.h (einschließlich D3dkmddi.h)

Siehe auch

DXGK_DRIVERCAPS

DxgkDdiCancelCommand-

DxgkDdiCreateContext-

DxgkDdiDestroyContext-

DxgkDdiPatch-

DxgkDdiPresent-

DxgkDdiRender