DXGK_VIDSCHCAPS Struktur (d3dkmddi.h)

Die DXGK_VIDSCHCAPS Struktur identifiziert die Gpu-Planungsfunktionen (Graphics Processing Unit) in Bitfeldflags, die ein Treiber 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;
#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;

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.

Das Festlegen dieses Elements entspricht dem Festlegen des ersten Bits des 32-Bit-Wertmembers (0x00000001).

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 0 (FALSE) festgelegt ist, deaktiviert das Betriebssystem den Interrupt der vertikalen Synchronisierung nie für Anwendungen, die dazu führen können, dass der Unterbrechung der vertikalen Synchronisierung auftritt.

Das Festlegen dieses Elements entspricht dem Festlegen des zweiten Bits des 32-Bit-Wertmembers (0x00000002).

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 Vorabbesetzungsanforderungen an die GPU aus, bevor es den TDR-Prozess (**Timeout Detection and Recovery) initiiert.

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.

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 Vorabbesetzungsanforderungen aus, während potenziell 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.

Hinweis

Wenn PreemptionAware auf 1 festgelegt ist, muss auch das MultiEngineAware-Element auf den Wert 1 festgelegt werden. Wenn PreemptionAware auf 1 festgelegt ist, aber MultiEngineAware auf Null festgelegt ist, stoppt das Betriebssystem den Treiberinitialisierungsprozess und gibt einen Fehlercode zurück.

Das Festlegen dieses Members entspricht dem Festlegen des dritten Bits des 32-Bit-Wertmembers (0x00000004).

Wird ab Windows 8 unterstützt.

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.

Hinweis

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.

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.

Hinweis

Wenn NoDmaPatching auf 1 festgelegt ist, müssen auch die Member PreemptionAware und MultiEngineAware auf den Wert 1 festgelegt werden. Wenn NoDmaPatching auf 1 festgelegt ist, Aber PreemptionAware oder MultiEngineAware auf Null festgelegt sind, stoppt das Betriebssystem den Treiberinitialisierungsprozess und gibt einen Fehlercode zurück.

Das Festlegen dieses Elements entspricht dem Festlegen des vierten Bits des 32-Bit-Wertmembers (0x0000008).

Wird ab Windows 8 unterstützt.

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.

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 NULL (FALSE) festgelegt ist, unterstützt der Treiber keine Bereinigung von Ressourcen.

Hinweis

Wenn CancelCommandAware auf 1 festgelegt ist, muss auch das MultiEngineAware-Element auf den Wert 1 festgelegt werden. Wenn CancelCommandAware auf 1 festgelegt ist, aber MultiEngineAware auf Null festgelegt ist, gibt das Betriebssystem einen Fehlercode zurück.

Das Festlegen dieses Members entspricht dem Festlegen des fünften Bits des 32-Bit-Wertmembers (0x0000010).

Wird ab Windows 8 unterstützt.

No64BitAtomics

Wert Bedeutung
true Gibt an, dass eine 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.
false Gibt an, dass eine GPU 64-Bit-Werte atomar aktualisieren kann, wie sie von der CPU sichtbar sind.

Wird ab Windows 10 unterstützt.

LowIrqlPreemptCommand

HwQueuePacketCap

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

NativeGpuFence

Reserved

Dieser Member ist reserviert und sollte auf null festgelegt werden.

Value

Ein Element in der Union, das DXGK_VIDSCHCAPS enthält, das einen 32-Bit-Wert enthalten kann, der die GPU-Planungsfunktionen identifiziert, die der Treiber unterstützen kann.

Anforderungen

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

Weitere Informationen

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender