D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 列挙 (d3d12umddi.h)

バックグラウンド処理で有効になっている動的プロファイルとシェーダーの再コンパイルのレベルを示します。

既定では、ランタイムは一度に最大 1 つのバックグラウンド コンパイル タスクをスケジュールし、この作業のリスクを最小限に抑えるためにアイドル優先度で実行され、フォアグラウンド レンダリングに不具合が発生します。

開発者とプロファイリング ツールでは、これらの列挙値の組み合わせを使用して、この動作を調整できます。

構文

typedef enum D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 {
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
} ;

定数

 
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWEDは既定の状態であり、ドライバーは任意の方法でワークロードをインストルメント化し、CPU タスク (通常は PSO 再コンパイル) を D3D ランタイムに送信して優先順位の低い実行を行うことができます。 このモードの目的は、動的最適化を有効にすることですが、フォアグラウンド レンダリングのパフォーマンスには影響しません。
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTSは、現在実行されているレンダリングはトレーニング目的専用に実行されており、通常のスムーズなパフォーマンスで実行する必要がないため、ドライバーはグリッチを回避するよりもインストルメンテーションの豊かさと完全性に優先順位を付ける必要があることを示唆しています。

この種の重量プロファイリングは、PIX などの分析ツールで使用されます。 また、ベンチマークで使用して、実際のパフォーマンス測定を行う前に最適化状態をウォームしたり、適切なタイミングでゲームで直接ウォームしたりすることもできます (たとえば、メニューの背後に目に見えないコンテンツをレンダリングしてドライバーを事前トレーニングします)。
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORKは、バックグラウンド処理タスクの実行を防ぎます。 このフラグを最初にオンにすると、既に進行中のタスクは完了まで実行できます。 UMD が送信したが、まだ実行を開始していないタスクは取り消され、既にこの状態にある 間に QueueProcessingWorkCB を呼び出すと、キャンセル コールバックがすぐに呼び出されます。

もちろん、UMD は無効状態の間にタスクの送信を完全にスキップすることを選択できますが、作業を送信する場合は、UMD が作業の送信とモードの変更の間で同期する必要がないようにするために、送信操作を失敗させるだけでなく、ランタイムは取り消されます。

D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_* の指定と同時に無効化フラグがオンになっている場合、UMD がコミット要求に応答して生成する新しいタスクは、無効化が有効になる前に実行できます。

disable フラグは、開発者モードが有効になっている場合にのみ有効です。
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
これは、動的シェーダーの再コンパイルを中断するだけでなく、キャッシュ ポリシーやコンピューティング ディスパッチ パターンの動的なチューニングなど、パフォーマンスを乱す動作変更をドライバーが行わないようにする必要があることを示します。 これは、A/B 比較で安定したタイミング結果を提供する必要があるプロファイリング セッション中に使用します。

このフラグは、開発者モードが有効になっている場合にのみ有効です。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1903
Header d3d12umddi.h