次の方法で共有


コンテキスト CPU キュー

次の拡大されたスクリーン ショットは、GPU ハードウェア キューと、4 つのプロセスのコンテキスト CPU キューを示しています。

4 つのプロセスの GPU ハードウェア キューとコンテキスト CPU キューのスクリーンショット。

コンテキスト CPU キュー項目と GPU ハードウェア キュー内の項目の間の関連付けは、GPUView の最も基本的なリレーションシップの 1 つです。 上の図では、左端の赤い矢印がコンテキスト CPU キューの色キーを指しています。 下の赤い矢印はコンテキスト CPU キュー内の対応するデータ項目を指し、一番上の赤い矢印は、Dwm.exe プロセスのコンテキスト CPU キューから取得された GPU ハードウェア キュー内の DMA パケットを指します。 GPU ハードウェア キュー内のブロックの色を調べることで、GPU で動作しているアプリケーション (プロセス) をいつでも確認できます。

Windows はビデオ ハードウェアを仮想化するため、コンテキスト CPU キューで実行される作業は、ハードウェアにキューに入れられているグラフィックス ワークロードを表しますが、実際にはハードウェアによって処理されません。 次の図は、コンテキスト CPU キューと GPU ハードウェア キューの関係を確認するのに役立ちます。

コンテキスト CPU キューと GPU ハードウェア キューの関係を示す図。

ここで、アプリケーションは左端の赤い矢印のポイントで GPU の作業を送信しました。 既にキューに入っていたのは、左端の水色の矢印で示された他の 2 つの作業項目でした。 GPU ハードウェア キューを上から見ると、いくつかの他のプロセスが以前に GPU で動作していたことがわかります。そして、アプリケーションの最初の2つの作業項目がGPUハードウェアキュー(GPUハードウェアキューの薄い青い矢印)で実行されるのがようやく確認できます。 最終的に、強調表示された作業項目 (キュー パケット) は GPU ハードウェア キュー (黒い矢印で示されます) になり、その後すぐに完了まで実行されます (2 つの黄色い矢印)。 その直後に、アプリケーションは最終的に作業が完了したと見なします (右端の赤い矢印)。 たとえ作業項目 (キュー パケット) がハードウェア上での実行に1.5ミリ秒しかかからなくても、この非常に忙しいマシンでは順番待ちをしなければならなかった。 アプリケーションに送信されてから完了するまでに約 28 ミリ秒かかりました。

コンテキスト GPU キューの詳細

コンテキスト CPU キューのレイアウトは、GPU ハードウェア キューのレイアウトに似ています。

コンテキスト GPU キューのレイアウトを表示するスクリーンショット。

カラー キー

左端の四角形は、コンテキスト CPU キュー内のすべての作業項目 (キュー パケット) の色キーを示しています。 このカラー キーは、GPU ハードウェア キューが時間を費やしている場所を特定するときに役立ちます。

コンテキスト キュー領域

灰色の領域は、コンテキスト キュー領域を表します。

コンテキスト CPU キュー テキスト

コンテキスト キュー領域の上のテキストは、コンテキストで実行されている作業と GPU ハードウェア キュー内の関連する作業に関する詳細を提供します。 最初の数値は、指定されたビューポート時間中にコンテキスト CPU キューで実際に実行された項目の数です。 (コンテキスト CPU キューの下の行にある項目の数であることに注意してください)。 その後、これらの作業項目 (キュー パケット) が GPU ハードウェア キューでの実行に費やされた時間と、ビューポートの関連する割合です。 これは、コンテキスト CPU キュー項目の計算と同じです。

コンテキスト CPU キュー項目

コンテキスト CPU キューの純色の四角形は、標準のキュー パケットを表します。 これは GPU で動作します。 クロスハッチされた四角形は存在するパケットであり、斜めの線を持つ四角形は Present Token Packets を表します。

Surface を反転する

Dwm.exe プロセスに関連付けられているコンテキスト CPU キューでは、GPUView は、Present Packet の四角形のフリップ サーフェス アドレスを提供します。 最初の数値はフリップ キューです。 2 番目の数値は、反転されるサーフェイスのアドレスを示しています。 通常、この番号は、現在のパケットが発行される直前に完了した DMA パケットで確認できます。

キューに関する注意

GPUView から見たキューは、キューに登録され、実行されるのを待機している作業のスタックです。 表示では、スタックの一番下 (下の行) の項目は、その特定の時点で実際に作業されている項目です。 作業を待機している次の項目は、実行中の項目の上に積み重ねされます。 遷移ポイントは、1 つの作業項目が終了し、待機中の作業項目が次の作業項目になる瞬間です。 これらの移行ポイントにより、作業が実行され、パケットが完了すると、階段ステップがキューに表示されます。 キューに追加された最新の項目は常に一番上に配置されます。