設定驅動程式背景處理優化模式。
語法
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
用於先前工作負載檢測結果的動作。
[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 |