DXGK_FLIPCAPS Struktur (d3dkmddi.h)
Die DXGK_FLIPCAPS Struktur identifiziert Flippingfunktionen des Anzeigeminiporttreibers, den der Treiber über einen Aufruf seiner DxgkDdiQueryAdapterInfo-Funktion bereitstellt.
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;
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.
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista |
Header- | d3dkmddi.h (einschließlich D3dkmddi.h) |