Auf Englisch lesen

Freigeben über


DXGK_FLIPCAPS Struktur (d3dkmddi.h)

Die DXGK_FLIPCAPS Struktur identifiziert Flippingfunktionen des Anzeigeminiporttreibers, den der Treiber über einen Aufruf seiner DxgkDdiQueryAdapterInfo-Funktion bereitstellt.

Syntax

typedef struct _DXGK_FLIPCAPS {
  union {
    struct {
      UINT FlipOnVSyncWithNoWait : 1;
      UINT FlipOnVSyncMmIo : 1;
      UINT FlipInterval : 1;
      UINT FlipImmediateMmIo : 1;
      UINT FlipIndependent : 1;
      UINT DdiPresentForIFlip : 1;
      UINT FlipImmediateOnHSync : 1;
#if ...
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 28;
#endif
    };
    UINT Value;
  };
} DXGK_FLIPCAPS;

Angehörige

FlipOnVSyncWithNoWait

Ein UINT--Wert, der angibt, ob der Treiber die Planung eines Flip-Befehls unterstützt, der für den nächsten vertikalen Retrace-Zeitraum (vertikale Synchronisierung) wirksam wird, ohne dass die Grafikpipeline angehalten wird, bis diese vertikale Synchronisierung erfolgt. Das heißt, die Grafikpipeline muss unmittelbar fortgesetzt werden, nachdem der Treiber die physische Adresse der Flippingoberfläche in flip-ausstehende Register an der Hardware schreibt. Obwohl die meisten Hardware eine Tiefe eines flip-ausstehenden Registers verwendet, sollte der Treiber die Nummer im MaxQueuedFlipOnVSync Member der DXGK_DRIVERCAPS Struktur angeben.

Wenn FlipOnVSyncWithNoWait auf 1 (TRUE) festgelegt ist, unterstützt der Treiber diesen Mechanismus. Wenn FlipOnVSyncWithNoWait auf 0 (FALSE) festgelegt ist, unterstützt der Treiber diesen Mechanismus nicht. Das heißt, die Grafikpipeline muss warten, bis die nächste vertikale Synchronisierung erfolgt, nachdem die Planung eines Flip-Befehls auf die nächste vertikale Synchronisierung wirksam wird.

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

FlipOnVSyncMmIo

Ein UINT--Wert, der angibt, ob der Treiber eine auf E/A (MMIO) basierende I/O-basierte Flip unterstützt, die für die nächste vertikale Synchronisierung wirksam wird. Um diese Art von Flip zu unterstützen, muss der Miniporttreiber die folgenden Vorgänge unterstützen:

  • Es wird keine Generierung eines DMA-Puffers zum Übergeben eines Aufrufs an die DxgkDdiPresent- -Funktion übergeben (d. h. NULL- wird im pDmaBuffer Member der DXGKARG_PRESENT Struktur übergeben).
  • Ein Flip through a call to its DxgkDdiSetVidPnSourceAddress function at device interrupt request level (DIRQL). Im Aufruf von DxgkDdiSetVidPnSourceAddresssollte der Treiber den digital-zu-analogen Konverter (DAC) programmieren und den Wert im PrimaryAddress Member der DXGKARG_SETVIDPNSOURCEADDRESS Struktur verwenden, um den Scan zu starten. Nach der vertikalen Synchronisierung sollte der Treiber den GPU-Scheduler benachrichtigen, um die effektive Scanadresse zu melden, indem die DxgkCbNotifyInterrupt--Funktion aufgerufen wird, wobei der DXGK_INTERRUPT_CRTC_VSYNC Wert im InterruptType Member der DXGKARGCB_NOTIFY_INTERRUPT_DATA Struktur festgelegt ist. Der Treiber sollte dann die DxgkCbNotifyDpc--Funktion aufrufen, um die meisten Scan-Out-Verarbeitungen auszuführen.

FlipInterval

Ein UINT--Wert, der angibt, ob der Treiber die Planung eines Flip-Befehls unterstützt, um nach zwei, drei oder vier vertikalen Synchronisierungen wirksam zu werden. Unabhängig davon, ob der Treiber ein Flip-Intervall von zwei oder mehr unterstützt, muss der Treiber eine sofortige Flip- und ein Flip-Intervall von 1 unterstützen.

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

FlipImmediateMmIo

Ein UINT--Wert, der angibt, ob der Treiber einen speicherbasierten direkt spiegelnden I/O (MMIO)-basierten Speicher unterstützt. Dieser Flip-Typ wird unmittelbar nach einem Aufruf der DxgkDdiSetVidPnSourceAddress-Funktion des Treibers wirksam, ohne auf die nächste vertikale Synchronisierung zu warten.

Das Festlegen dieses Elements entspricht dem Festlegen des vierten Bits des 32-Bit-Value Members (0x00000008).

Wird ab Windows 7 unterstützt.

FlipIndependent

Ein UINT- Wert, der angibt, ob der Treiber ein unabhängiges Flip unterstützt. WDDM 1.3 und höhere Treiber müssen dieses Element auf 1 festlegen.

In einem unabhängigen Flip-versucht das Betriebssystem, einen Benutzermodus des Desktopfenster-Managers (DWM) zu umgehen, Aufrufe und Flips in den Anwendungsrückpuffer durch Aufrufen von DxgkDdiPresent und DxgkDdiSetVidPnSourceAddress in Direct Flip- und Multiplane-Overlaypräsentationsmodellen.

Beachten Sie, dass fälle auftreten, in denen ein DWM-Benutzermodusanruf ausgeführt wird, auch wenn FlipIndependent festgelegt ist. Ihr Treiber muss solche Fälle weiterhin behandeln.

Das Festlegen dieses Elements entspricht dem Festlegen des fünften Bits des 32-Bit-Value Members (0x00000010).

Wird ab Windows 8.1 unterstützt.

DdiPresentForIFlip

FlipImmediateOnHSync

Reserved

Dieses Element ist reserviert und sollte auf Null festgelegt werden. Das Festlegen dieses Elements auf Null entspricht dem Festlegen der verbleibenden 27 Bits (0xFFFFFFE0) des 32-Bit-Werts Members auf Nullen.

Dieses Element ist reserviert und sollte auf Null festgelegt werden. Das Festlegen dieses Elements auf Null entspricht dem Festlegen der verbleibenden 28 Bits (0xFFFFFFF0) des 32-Bit-Werts Members auf Nullen.

Value

Ein Mitglied in der Union, das DXGK_FLIPCAPS enthält, das einen 32-Bit-Wert enthalten kann, der Flippingfunktionen identifiziert.

Anforderungen

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

Siehe auch

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiPresent-

DxgkDdiQueryAdapterInfo

DxgkDdiSetVidPnSourceAddress