DXGK_FLIPCAPS 結構 (d3dkmddi.h)

DXGK_FLIPCAPS 結構會識別驅動程式透過呼叫其 DxgkDdiQueryAdapterInfo 函式所提供的顯示迷你埠驅動程式翻轉功能。

語法

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

UINT 值,指定驅動程式是否支援對下一個垂直回溯期間生效的翻轉命令排程, (垂直同步處理) ,而不會造成圖形管線停止,直到發生垂直同步為止。 也就是說,圖形管線必須在驅動程式將翻轉介面的實體位址寫入硬體上的翻轉擱置緩存器之後立即繼續。 雖然大部分的硬體使用一個翻轉暫止緩存器深度,但如果硬體使用一個以上的翻轉擱置緩存器,驅動程式應該在DXGK_DRIVERCAPS 結構的 MaxQueuedFlipOnVSync 成員中指定數位。

如果 FlipOnVSyncWithNoWait 設定為 1 (TRUE) ,驅動程式就會支援這項機制。 如果 FlipOnVSyncWithNoWait 設定為 0 (FALSE) ,驅動程式不支援這項機制。 也就是說,圖形管線必須等到下一個垂直同步處理在排程翻轉命令之後發生,才會對下一個垂直同步生效。

設定此成員相當於設定 32 位 Value 成員的第一個位 (0x00000001) 。

FlipOnVSyncMmIo

UINT 值,指定驅動程式是否支援記憶體對應 I/O (MMIO) 型翻轉,這會在下一個垂直同步處理上生效。若要支援這種類型的翻轉,顯示迷你埠驅動程序必須支援下列作業:

  • 沒有產生 DMA 緩衝區來傳入其 DxgkDdiPresent 函式 (,也就是 NULL 會傳入DXGKARG_PRESENT結構的 pDmaBuffer 成員) 。
  • 在裝置中斷要求層級翻轉其 DxgkDdiSetVidPnSourceAddress 函式的呼叫, (DIRQL) 。 在對 DxgkDdiSetVidPnSourceAddress 的呼叫中,驅動程式應該將數位到模擬轉換器 (DAC) ,並使用DXGKARG_SETVIDPNSOURCEADDRESS結構的 PrimaryAddress 成員中的值來開始掃描。在垂直同步處理之後,驅動程式應該呼叫 DxgkCbNotifyInterrupt 函式,並在 DXGKARGCB_NOTIFY_INTERRUPT_DATA 結構的 InterruptType 成員中設定DXGK_INTERRUPT_CRTC_VSYNC值,通知 GPU 排程器報告有效的掃描位址。 驅動程式接著應該呼叫 DxgkCbNotifyDpc 函式,以執行大部分的掃描輸出處理。

FlipInterval

UINT 值,指定驅動程式是否支援在發生兩個、三個或四個垂直同步之後生效的翻轉命令排程。 不論驅動程式是否支援兩個以上的翻轉間隔,驅動程式都必須支援立即翻轉和一個翻轉間隔。

設定此成員相當於設定 32 位 Value 成員的第三個位 (0x00000004) 。

FlipImmediateMmIo

UINT 值,指定驅動程式是否支援記憶體對應 I/O (MMIO) 型立即翻轉。 這種類型的翻轉會在呼叫驅動程式的 DxgkDdiSetVidPnSourceAddress 函式后立即生效,而不需要等待下一個垂直同步處理發生。

設定此成員相當於設定 32 位 Value 成員的第四個位 (0x00000008) 。

從 Windows 7 開始支援。

FlipIndependent

UINT 值,指定驅動程式是否支持獨立的翻轉。 WDDM 1.3 和更新版本的驅動程式必須將此成員設定為 1。

獨立的翻轉中,操作系統會嘗試略過桌面視窗管理員 (DWM) 使用者模式的呼叫,並呼叫 DxgkDdiPresentDxgkDdiSetVidPnSourceAddress 直接翻轉和多平面重疊簡報模型中的 DxgkDdiSetVidpnSourceAddress 來翻轉應用程式返回緩衝區。

請注意,即使設定 FlipIndependent ,仍會發生 DWM 使用者模式的呼叫。 您的驅動程式仍然必須處理這類情況。

設定此成員相當於設定 32 位 Value 成員的第五個位 (0x00000010) 。

從 Windows 8.1 開始支援。

DdiPresentForIFlip

FlipImmediateOnHSync

Reserved

這個成員是保留的,而且應該設定為零。 將此成員設定為零相當於將 32 位 Value 成員的剩餘 27 位設定為零 (0xFFFFFFE0) 。

這個成員是保留的,而且應該設定為零。 將此成員設定為零相當於將 32 位 Value 成員的剩餘 28 位設定為零 (0xFFFFFFF0) 。

Value

DXGK_FLIPCAPS的等位成員包含可保存可識別翻轉功能的32位值。

規格需求

需求
最低支援的用戶端 Windows Vista
標頭 d3dkmddi.h (包含 D3dkmddi.h)

另請參閱

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiPresent

DxgkDdiQueryAdapterInfo

DxgkDdiSetVidPnSourceAddress