次の方法で共有


IDXGIDevice::SetGPUThreadPriority メソッド (dxgi.h)

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) は、優先度値ビット [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

こちらも参照ください

DXGI インターフェイス

IDXGIDevice

IDXGIDevice::GetGPUThreadPriority