共用方式為


ID3D12Device6::SetBackgroundProcessingMode 方法 (d3d12.h)

設定驅動程式背景處理優化模式。

語法

HRESULT SetBackgroundProcessingMode(
  [in]  D3D12_BACKGROUND_PROCESSING_MODE Mode,
  [in]  D3D12_MEASUREMENTS_ACTION        MeasurementsAction,
  [in]  HANDLE                           hEventToSignalUponCompletion,
  [out] BOOL                             *pbFurtherMeasurementsDesired
);

參數

[in] Mode

類型: D3D12_BACKGROUND_PROCESSING_MODE

要套用至後續提交的 GPU 工作的動態優化層級。

[in] MeasurementsAction

類型: D3D12_MEASUREMENTS_ACTION

用於先前工作負載檢測結果的動作。

[in] hEventToSignalUponCompletion

類型: HANDLE

選擇性句柄,可在函式完成時發出訊號。 例如,如果 MeasurementsAction 設定為 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS,當所有產生的編譯完成時, 就會發出 hEventToSignalUponCompletion 的訊號。

[out] pbFurtherMeasurementsDesired

類型: BOOL*

布爾值的選擇性指標。 函式會將 值設定為 true ,指出您應該繼續分析,否則 false為 。

備註

圖形驅動程式可以使用閑置優先順序的背景 CPU 線程來動態重新編譯著色器程式。 這可以藉由特製著色器程式代碼來改善 GPU 效能,以更符合其執行所在的硬體詳細數據,以及/或所使用的內容。

身為開發人員,您不需要執行任何動作,就能隨著時間 (從這項功能獲益,因為驅動程式採用背景處理優化,現有的著色器會自動更有效率地調整) 。 但是,當您分析程序代碼時,您可能想要呼叫 SetBackgroundProcessingMode ,以確保在進行計時測量之前,已發生任何驅動程式背景處理優化。 以下為範例。

SetBackgroundProcessingMode(
    D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS,
    D3D_MEASUREMENTS_ACTION_KEEP_ALL,
    nullptr, nullptr);
 
// Here, prime the system by rendering some typical content.
// For example, a level flythrough.
 
SetBackgroundProcessingMode(
    D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED,
    D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS,
    nullptr, nullptr);
 
// Here, continue rendering. This time with dynamic optimizations applied.
// And then take your measurements.

PIX 會自動使用 SetBackgroundProcessingMode—先對系統進行入門,然後再防止在分析中間進行任何進一步的變更。 PIX 會等候事件 (,以確保所有背景著色器重新編譯都已完成) ,再開始測量。

規格需求

需求
最低支援的用戶端 Windows 10 組建 20348
最低支援的伺服器 Windows 10 組建 20348
目標平台 Windows
標頭 d3d12.h
程式庫 d3d12.lib
Dll d3d12.dll