設定 GPU 線程優先順序。
語法
HRESULT SetGPUThreadPriority(
INT Priority
);
參數
Priority
類型: INT
值,指定必要的 GPU 線程優先順序。 請參閱本主題中的一節。
返回值
類型:HRESULT
如果成功,則傳回S_OK;否則,如果 Priority 參數無效,則傳回E_INVALIDARG。
備註
若要使用 SetGPUThreadPriority 方法,您應該全面瞭解 GPU 排程。 如果不當使用, SetGPUThreadPriority 方法可能會妨礙轉譯速度,並導致用戶體驗不佳,因此請分析您的應用程式以瞭解優先順序變更對應用程式和系統上的影響。
Priority 參數的值如下所示:優先順序值位定義:
-
位 0-4 :優先順序值
位 5-29 :保留
位 30 :絕對優先順序旗標 (D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE),可以 ORed 與優先順序值位 [4:0] (僅適用於 Windows 10+,否則未使用)
位31:帶正負號位
位 30 (絕對優先順序旗標) 可用來控制此 API 的作業模式。
相對優先順序模式 :當位 30 值設定為 0 時,API 會使用此模式。 在此模式中, 優先順序 值必須介於 -7 到 7 之間,其中優先順序值 0 代表一般優先順序(所有內容預設值),-7 代表閑置優先順序。 位31用來控制優先順序的符號。
絕對優先順序模式 :當位 30 值設定為 1 時,API 會使用此模式。 在此模式中, 優先順序 值(針對 bits[4:0]) 必須介於 0 到 31 之間。 這些優先順序層級的意義如下所述。 只有當您已徹底瞭解 dxgkrnl/graphics 優先順序,並了解變更這些優先順序時,才使用D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE。
優先順序值位[4:0] 會轉譯為下列優先順序值:
-
0 :閑置優先順序 - 如果較高先前使用大部分的加速器時間,則無法保證向前進度。
1:一般優先順序 - 大部分進程都會使用此優先順序與向前進度保證。
2 -15:保留 -
16-29 :軟即時 - 優先降低優先順序,並定期產生較低的優先順序,以確保其前進進度。
30 :硬式即時 - 用於極其延遲的敏感度良好的工作負載。 此優先順序不會降低優先順序。
31 :內部使用
需求
| 要求 | 價值觀 |
|---|---|
| 目標平臺 | 窗戶 |
| 頁首 | dxgi.h |
| 程式庫 | DXGI.lib |