DXGK_VIDSCHCAPS 結構 (d3dkmddi.h)

DXGK_VIDSCHCAPS 結構可識別驅動程式可支援的圖形處理單位 (GPU) 排程功能。

語法

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;

成員

MultiEngineAware

UINT 值,指定驅動程式是否支援透過 DxgkDdiCreateContextDxgkDdiDestroyCon) text 函式建立和解構裝置內容 (,以及透過 DxgkDdiPresentDxgkDdiRender 函式) 使用裝置 (內容。 如果驅動程式不支持內容建立,對於將句柄傳遞至內容的每個驅動程式呼叫,Microsoft DirectX 圖形核心子系統會以裝置的句柄取代內容句柄。

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

VSyncPowerSaveAware

UINT 值,指定驅動程式是否支援垂直同步電源節省功能。

如果 VSyncPowerSaveAware 設定為 1 (TRUE) ,則操作系統可以藉由停用和啟用從某些應用程式使用量發生的垂直同步中斷來節省電源。 如果 VSyncPowerSaveAware 設定為零 (FALSE) ,則操作系統永遠不會停用可能導致垂直同步中斷發生之應用程式的垂直同步中斷。

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

從 Windows Server 2008 和 Windows Vista SP1 開始支援。

PreemptionAware

UINT 值,指定驅動程式是否支援 windows Windows 8 和更新版本的 GPU 先佔原則。 使用此原則時,操作系統一律會在起始 **逾時偵測和復原 (TDR) 程式之前,對 GPU 發出先佔要求。

如果 PreemptionAware 設定為 1 (TRUE) ,則驅動程式支援 windows Windows 8 和更新版本的先佔原則。

如果 PreemptionAware 設定為零 (FALSE) ,驅動程式支援 Windows 7 的先佔原則。 使用此原則時,操作系統可能無法在 GPU 上執行長時間執行的作業時發出先佔要求。 因此,在起始 TDR 程式之前,不會先佔這些 GPU 要求。 這可能會導致 TDR 進程重複重設 GPU,這可能會導致系統停止錯誤。

注意

如果 PreemptionAware 設定為 1,MultiEngineAware 成員也必須設定為 1 的值。 如果 PreemptionAware 設定為 1,但 MultiEngineAware 設定為零,操作系統將會停止驅動程式初始化程式並傳回失敗碼。

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

從 Windows 8 開始支援。

NoDmaPatching

UINT 值,指定驅動程式是否停用分割成多個元件的 DMA 緩衝區外洩偵測。 此偵測會在呼叫驅動程式 的 DxgkDdiPatch 函式之後執行,以指派或 修補 DMA 緩衝區的每個部分的實體位址。

注意

顯示支援虛擬位址的裝置可以將虛擬位址重新編譯至新的視訊記憶體位置,而不需要修補 DMA 緩衝區位址的值。 針對這些類型的顯示裝置,驅動程式應該將 NoDmaPatching 設定為 1。

如果 NoDmaPatching 設定為 1 (TRUE) ,則驅動程式會停用洩漏偵測,而 DMA 緩衝區分割的行為與 Windows 7 中的行為相同。

如果 NoDmaPatching 設定為 0 (FALSE) ,則驅動程式會啟用修補 DMA 緩衝區位址的流失偵測。 操作系統會在呼叫驅動程式的 DxgkDdiPatch 函式之前執行流失偵測。

注意

如果 NoDmaPatching 設定為 1,PreemptionAwareMultiEngineAware 成員也必須設定為 1 的值。 如果 NoDmaPatching 設定為 1,但 PreemptionAwareMultiEngineAware 設定為零,操作系統將會停止驅動程式初始化程式並傳回失敗碼。

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

從 Windows 8 開始支援。

CancelCommandAware

UINT 值,指定驅動程式是否支援在從硬體佇列中移除命令之後,透過 DxgkDdiCancelCommand) 函式 (清除內部資源。

如果 CancelCommandAware 設定為 1 (TRUE) ,則驅動程式支援清除與取消的 DMA 封包相關聯的資源。 如果 CancelCommandAware 設定為零 (FALSE) ,則驅動程式不支援清除資源。

注意

如果 CancelCommandAware 設定為 1,MultiEngineAware 成員也必須設定為 1 的值。 如果 CancelCommandAware 設定為 1,但 MultiEngineAware 設定為零,則操作系統會傳回失敗碼。

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

從 Windows 8 開始支援。

No64BitAtomics

意義
TRUE 表示 GPU 只能以不可部分完成的方式更新 32 位值。 在此情況下,OS 會自動處理柵欄包裝案例,不過它會限制未處理的等候和訊號柵欄值不能超過最後一個訊號的柵欄值UINT_MAX/2。
FALSE 表示 GPU 能夠以不可部分完成的方式更新 64 位值,如 CPU 可見。

從Windows 10 開始支援。

LowIrqlPreemptCommand

HwQueuePacketCap

允許排入節點的 DMA 封包數目上限。

NativeGpuFence

Reserved

這個成員是保留的,而且應該設定為零。

Value

聯集中的成員,DXGK_VIDSCHCAPS包含可保存 32 位值,可識別驅動程式可支援的 GPU 排程功能。

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
標頭 d3dkmddi.h (include D3dkmddi.h)

另請參閱

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender