Freigeben über


DXGK_VIDSCHCAPS Struktur (d3dkmddi.h)

Die DXGK_VIDSCHCAPS-Struktur verfügt über Bitfeldflags, die die Planungsfunktionen der GPU identifizieren, die ein Kernelmodusanzeige-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;

Member

MultiEngineAware

Ein UINT-Wert, der angibt, ob der Treiber die Erstellung und Zerstörung eines Gerätekontexts (über die Funktionen DxgkDdiCreateContext und DxgkDdiDestroyContext ) und die Verwendung eines Gerätekontexts (über die Funktionen DxgkDdiPresent und DxgkDdiRender ) unterstützt. Wenn der Treiber die Kontexterstellung nicht unterstützt, ersetzt das Microsoft DirectX-Grafikkernsubsystem bei jedem Aufruf des Treibers, der ein Handle an einen Kontext übergeben würde, den Handle durch ein Handle an das Gerät.

VSyncPowerSaveAware

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

Wenn VSyncPowerSaveAware auf 1 (TRUE) festgelegt ist, kann das Betriebssystem Strom sparen, indem es den Interrupt für die vertikale Synchronisierung deaktiviert und aktiviert, der bei der Verwendung einiger Anwendungen auftritt. Wenn VSyncPowerSaveAware auf Null (FALSE) festgelegt ist, deaktiviert das Betriebssystem niemals den Interrupt für die vertikale Synchronisierung für Anwendungen, die dazu führen können, dass der Interrupt für die vertikale Synchronisierung auftritt. Unterstützt ab Windows Server 2008 und Windows Vista mit SP1.

PreemptionAware

Ein UINT-Wert, der angibt, ob der Treiber die GPU-Vorkaufsrichtlinie von Windows 8 und höheren Versionen von Windows unterstützt. Bei dieser Richtlinie stellt das Betriebssystem immer Vorabbescheidungsanforderungen an die GPU aus, bevor es den TDR-Prozess (**Timeout Detection and Recovery) initiiert. Wird ab Windows 8 unterstützt.

Wenn PreemptionAware auf 1 (TRUE) festgelegt ist, unterstützt der Treiber die Richtlinie zum Vorzeitigen Löschen von Windows 8 und höheren Versionen von Windows. Beachten Sie, dass, wenn PreemptionAware auf 1 festgelegt ist, auch das MultiEngineAware-Element auf den Wert 1 festgelegt werden muss. Wenn PreemptionAware auf 1 festgelegt ist, aber MultiEngineAware auf 0 festgelegt ist, stoppt das Betriebssystem den Treiberinitialisierungsprozess und gibt einen Fehlercode zurück.

Wenn PreemptionAware auf Null (FALSE) festgelegt ist, unterstützt der Treiber die Richtlinie für die Vorzeitige Entfernung von Windows 7. Mit dieser Richtlinie stellt das Betriebssystem möglicherweise keine Vorbescheidungsanforderungen aus, während möglicherweise lang andauernde Vorgänge auf der GPU ausgeführt werden. Daher werden diese GPU-Anforderungen nicht vorzeitig entfernt, bevor der TDR-Prozess initiiert wird. 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 unterteilt sind. Diese Erkennung wird ausgeführt, nachdem die DxgkDdiPatch-Funktion des Treibers aufgerufen wurde, um jedem Teil des DMA-Puffers physische Adressen zuzuweisen oder zu patchen. Wird ab Windows 8 unterstützt.

Anzeigegeräte, die virtuelle Adressen unterstützen, können eine virtuelle Adresse an einen neuen Videospeicherspeicherort umprogrammieren, ohne den Wert der DMA-Pufferadresse patchen zu müssen. 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 Erkennung von Lecks, und das Verhalten der DMA-Pufferaufteilung ist das gleiche wie in Windows 7. Beachten Sie, dass beim Festlegen von NoDmaPatching auf 1 auch die Member PreemptionAware und MultiEngineAware auf 1 festgelegt werden müssen. Wenn NoDmaPatching auf 1 festgelegt ist, aber PreemptionAware oder MultiEngineAware auf Null festgelegt sind, beendet das Betriebssystem den Treiberinitialisierungsprozess und gibt einen Fehlercode zurück.

Wenn NoDmaPatching auf 0 (FALSE) festgelegt ist, aktiviert der Treiber die Erkennung von Lecks für gepatchte DMA-Pufferadressen. Das Betriebssystem führt die Erkennung von Lecks durch, bevor es 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. Beachten Sie, dass beim Festlegen von CancelCommandAware auf 1 auch das MultiEngineAware-Element auf 1 festgelegt werden muss. Wenn CancelCommandAware auf 1 festgelegt ist, aber MultiEngineAware auf 0 festgelegt ist, gibt das Betriebssystem einen Fehlercode zurück.

Wenn CancelCommandAware auf NULL (FALSE) festgelegt ist, unterstützt der Treiber keine Bereinigung von Ressourcen.

No64BitAtomics

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

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

LowIrqlPreemptCommand

HwQueuePacketCap

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

NativeGpuFence

Wenn das Betriebssystem das feature DXGK_FEATURE_NATIVE_FENCE aktiviert hat, kann der Treiber die Unterstützung für native GPU-Zaunfunktionen während der Adapterinitialisierung deklarieren, indem er das NativeGpuFence-Bit auf 1 festlegt. Diese Funktion wird über ein entsprechendes 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

Dieser Member ist reserviert und sollte auf null festgelegt werden.

Value

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

Anforderungen

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

Weitere Informationen

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender