struttura DXGK_FLIPCAPS (d3dkmddi.h)
La struttura DXGK_FLIPCAPS identifica le funzionalità di scorrimento del driver miniport di visualizzazione che il driver fornisce tramite una chiamata alla relativa funzione DxgkDdiQueryAdapterInfo .
Sintassi
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;
Members
FlipOnVSyncWithNoWait
Valore UINT che specifica se il driver supporta la pianificazione di un comando flip che avrà effetto sul periodo di ritracciamento verticale successivo (sincronizzazione verticale) senza che la pipeline grafica si blocchi fino a quando non si verifica la sincronizzazione verticale. Ovvero, la pipeline grafica deve procedere immediatamente dopo che il driver scrive l'indirizzo fisico della superficie di capovolgimento in registri in sospeso nell'hardware. Anche se la maggior parte dell'hardware usa una profondità di un registro in sospeso, se l'hardware usa più registri in sospeso, il driver deve specificare il numero nel membro MaxQueuedFlipOnVSync della struttura DXGK_DRIVERCAPS .
Se FlipOnVSyncWithNoWait è impostato su 1 (TRUE), il driver supporta questo meccanismo. Se FlipOnVSyncWithNoWait è impostato su 0 (FALSE), il driver non supporta questo meccanismo. Ovvero, la pipeline grafica deve attendere che la sincronizzazione verticale successiva venga eseguita dopo la pianificazione di un comando di scorrimento per rendere effettiva la sincronizzazione verticale successiva.
L'impostazione di questo membro equivale all'impostazione del primo bit del membro Value a 32 bit (0x00000001).
FlipOnVSyncMmIo
Valore UINT che specifica se il driver supporta un capovolgimento basato su I/O mappato alla memoria (MMIO) che ha effetto sulla sincronizzazione verticale successiva. Per supportare questo tipo di capovolgimento, il driver miniport di visualizzazione deve supportare le operazioni seguenti:
- Nessuna generazione di un buffer DMA da passare una chiamata alla relativa funzione DxgkDdiPresent , ovvero NULL viene passata nel membro pDmaBuffer della struttura DXGKARG_PRESENT .
- Scorrimento di una chiamata alla relativa funzione DxgkDdiSetVidPnSourceAddress a livello di richiesta di interruzione del dispositivo (DIRQL). Nella chiamata a DxgkDdiSetVidSourceAddress, il driver deve programmare il convertitore digitale-analogico (DAC) e usare il valore nel membro PrimaryAddress della struttura DXGKARG_SETVIDPNSOURCEADDRESS per avviare l'analisi. Dopo la sincronizzazione verticale, il driver deve notificare all'utilità di pianificazione GPU di segnalare l'indirizzo di analisi effettivo chiamando la funzione DxgkCbNotifyInterrupt con il valore DXGK_INTERRUPT_CRTC_VSYNC impostato nel membro InterruptType della struttura DXGKARGCB_NOTIFY_INTERRUPT_DATA . Il driver deve quindi chiamare la funzione DxgkCbNotifyDpc per eseguire la maggior parte dell'elaborazione di analisi.
FlipInterval
Valore UINT che specifica se il driver supporta la pianificazione di un comando flip per rendere effettive due, tre o quattro sincronizzazioni verticali. Indipendentemente dal fatto che il driver supporti un intervallo di capovolgimento di due o superiore, il driver deve supportare un capovolgimento immediato e un intervallo di capovolgimento di uno.
L'impostazione di questo membro equivale all'impostazione del terzo bit del membro Value a 32 bit (0x00000004).
FlipImmediateMmIo
Valore UINT che specifica se il driver supporta un'inversione immediata basata su I/O con mapping della memoria (MMIO). Questo tipo di capovolgimento diventa effettivo immediatamente dopo una chiamata alla funzione DxgkDdiSetVidSourceAddress del driver senza attendere che si verifichi la sincronizzazione verticale successiva.
L'impostazione di questo membro equivale all'impostazione del quarto bit del membro Valore a 32 bit (0x00000008).
Supportato a partire da Windows 7.
FlipIndependent
Valore UINT che specifica se il driver supporta un capovolgimento indipendente. I driver WDDM 1.3 e versioni successive devono impostare questo membro su 1.
In un capovolgimento indipendente, il sistema operativo tenta di ignorare una chiamata in modalità utente di Desktop Window Manager (DWM) presente e capovolge al buffer nascosto dell'applicazione chiamando DxgkDdiPresent e DxgkDdiSetVidPnSourceAddress nei modelli di presentazione Direct Flip e overlay multiplane.
Si noti che ci saranno casi in cui viene eseguita una chiamata in modalità utente DWM anche quando flipIndependent è impostato. Il driver deve comunque gestire tali casi.
L'impostazione di questo membro equivale all'impostazione del quinto bit del membro Valore a 32 bit (0x00000010).
Supportato a partire da Windows 8.1.
DdiPresentForIFlip
FlipImmediateOnHSync
Reserved
Questo membro è riservato e deve essere impostato su zero. L'impostazione di questo membro su zero equivale all'impostazione dei restanti 27 bit (0xFFFFFFE0) del membro Value a 32 bit su zeri.
Questo membro è riservato e deve essere impostato su zero. L'impostazione di questo membro su zero equivale all'impostazione dei restanti 28 bit (0xFFFFFFF0) del membro Value a 32 bit su zeri.
Value
Membro dell'unione che DXGK_FLIPCAPS contiene che può contenere un valore a 32 bit che identifica le funzionalità di capovolgimento.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Intestazione | d3dkmddi.h (include D3dkmddi.h) |