GPU スレッドの優先順位を設定します。
構文
HRESULT SetGPUThreadPriority(
INT Priority
);
パラメーター
Priority
型: INT
必要な GPU スレッドの優先順位を指定する値。 このトピックの 「解説」 セクションを参照してください。
戻り値
成功した場合はS_OKを返します。それ以外の場合は、 Priority パラメーターが無効な場合にE_INVALIDARGを返します。
注釈
SetGPUThreadPriority メソッドを使用するには、GPU スケジューリングに関する包括的な理解が必要です。 SetGPUThreadPriority メソッドを不適切に使用すると、レンダリング速度が低下し、ユーザー エクスペリエンスが低下する可能性があるため、アプリケーションをプロファイリングして、アプリケーションとシステムに対する優先順位の変更の影響を把握します。
Priority パラメーター関数の値は次のとおりです。優先度値ビット定義:
-
ビット 0 から 4: 優先度の値
ビット 5 から 29: 予約済み
ビット 30: 絶対優先度フラグ (D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE) は、優先度値ビット [4:0] で ORed にすることができます (Windows 10 以降でのみ有効、それ以外の場合は使用されません)
ビット 31: 符号付きビット
ビット 30 (絶対優先度フラグ) を使用して、この API の操作モードを制御できます。
相対優先度モード : ビット 30 値が 0 に設定されている場合、API はこのモードを使用します。 このモードでは、 優先度 の値は -7 ~ 7 の間である必要があります。優先度の値 0 は通常の優先度 (すべてのコンテキストの既定値) を表し、-7 はアイドル優先度を表します。 ビット 31 は、優先度の符号を制御するために使用されます。
絶対優先度モード : ビット 30 値が 1 に設定されている場合、API はこのモードを使用します。 このモードでは、 Priority 値 (ビット [4:0] の場合) は 0 から 31 の間である必要があります。 これらの優先度レベルの意味を以下に示します。 dxgkrnl/graphics の優先順位を十分に理解し、変更の結果を理解している場合にのみ、D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTEを使用します。
優先度値ビット[4:0]は 、次の優先度の値に変換されます。
-
0 : アイドル優先度 - 上位の優先度がアクセラレータ時間の大部分を使用する場合、前方進行は保証されません。
1 : 通常の優先度 - ほとんどのプロセスでは、この優先度を前方進行保証で使用します。
2 -15: 予約済み -
16-29 : ソフトリアルタイム - 優先順位を下げ、定期的に優先順位を下げて前進を保証します。
30 : ハード リアルタイム - 非常に待機時間の影響を受けやすい適切なワークロードに使用されます。 この優先順位は優先順位を下げることはありません。
31 : 内部使用
要求事項
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | dxgi.h |
図書館 | DXGI.lib |