次の方法で共有


グラフィックス パイプライン ステージ

Visual Studio のグラフィックス診断ツールの 1 つである [グラフィックス パイプライン ステージ] ウィンドウは、特定の描画イベントがグラフィックス パイプラインでどのように順を追って処理されるかを理解するのに役立ちます。

[グラフィックス パイプライン ステージ] ウィンドウを次に示します。

パイプライン ステージを通過する 3D オブジェクト。

注意

Visual Studio 2013 Update 3 以降、グラフィックス診断ツールのウィンドウは、独立した Visual Studio シェルのコピー内でホストされます。グラフィックス分析と呼ばれるこのカスタマイズされたシェルでは、不要なメニューとオプションは表示されなくなりますが、その点を除けば、以前と同じ [グラフィックス パイプライン ステージ] ウィンドウとワークフローが提供されます。この変更の詳細については、「グラフィックス診断の概要」を参照してください。

[グラフィックス パイプライン ステージ] ウィンドウについて

[グラフィックス パイプライン ステージ] ウィンドウは、レンダリングされた特定のオブジェクトに適用されるグラフィックス パイプラインの各ステージの出力を分析するのに役立ちます。 具体的には、データが誤って解釈されたステージや、正しく変換されなかったステージを識別できます。たとえば、頂点シェーダー ステージでオブジェクトが画面外に描画されたかどうかを調査できます。 問題が発生したパイプライン ステージを識別したら、その他のグラフィックス診断ツールを使用して、データがどのように解釈または変換されたかを確認できます。 多くの場合、レンダリングに関してパイプライン ステージで発生する問題は、頂点の書式記述子が不適切であること、シェーダー プログラムでバグが発生していること、またはデバイスの状態が正しく構成されていないことに関連します。

グラフィックス パイプライン ステージ

[グラフィックス パイプライン ステージ] ウィンドウには、描画の呼び出し中にアクティブであったパイプライン ステージのグラフィックス データだけが表示されます。 Visual Studio のグラフィックス ツールを使用して、表示された各ステージの出力を確認するには、[グラフィックス パイプライン ステージ] ウィンドウで、それらに関連付けられているサムネイルを選択します。

計算シェーダーは、[グラフィックス パイプライン ステージ] ウィンドウではサポートされていません。

  • 入力アセンブラー
    アプリによって提供されるインデックスと頂点のデータを読み取り、それらをグラフィックス ハードウェア用にアセンブルします。 サムネイルには、アセンブルされた頂点のワイヤーフレーム モデルが表示されます。 位置に対応する頂点データは、POSITION セマンティックによって決定されます。 POSITION セマンティックが入力アセンブラーの出力内に存在しない場合、[入力アセンブラー] ステージには何も表示されません。 モデル エディターを使用すると、[入力アセンブラー] ステージの出力を確認できます。

  • 頂点シェーダー
    通常は変換、スキンの適用、照明の適用などの操作を実行して、頂点を処理します。 頂点シェーダーは、常に 1 つの頂点の入力を受け取り、1 つの頂点の出力を生成します。 サムネイルには、変換されたジオメトリのワイヤーフレーム イメージが表示されます。 位置に対応する頂点データは、POSITION または SV_POSITION セマンティクスによって決定されます。 POSITION または SV_POSITION セマンティックが頂点シェーダーの出力内に存在しない場合、[頂点シェーダー] ステージには何も表示されません。 イメージ エディターを使用すると、[頂点シェーダー] ステージの出力を確認できます。

  • ハル シェーダー
    Direct3D 11 のみ。 四角形、三角形、線などの幾何的プリミティブを、固定機能テセレーション ステージへの入力として機能する、下位の幾何的パッチに処理します。 [ハル シェーダー] に対して表示されるサムネイルはありません。

  • ドメイン シェーダー
    Direct3D 11 のみ。 頂点シェーダー ステージのような固定機能テセレーション ステージで出力された下位の頂点を処理します。 [ドメイン シェーダー] ステージに対して表示されるサムネイルはありません。

  • ジオメトリ シェーダー
    点、線、三角形などのプリミティブ一式、および隣接するプリミティブの頂点に関する省略可能な情報を処理します。 ジオメトリ シェーダーは、プリミティブを破棄したり、1 つ以上の新しいプリミティブを出力したりできます。 サムネイルには、変換されたジオメトリのワイヤーフレーム イメージが表示されます。 イメージ エディターを使用すると、[ジオメトリ シェーダー] ステージの出力を確認できます。

  • ピクセル シェーダー
    補間された頂点データを処理して、色付きのピクセルを生成します。 サムネイルには、ピクセル シェーダーの出力のイメージが表示されます。 イメージ エディターを使用すると、[ピクセル シェーダー] ステージの出力を確認できます。

  • 出力マージャー
    ピクセル シェーダーの値や深度の情報など、さまざまな種類のシェーダーの結果を、レンダー ターゲットと深度バッファーの内容、およびステンシル バッファーの情報と組み合わせて、レンダー ターゲットへの影響を判断します。 さまざまな結果をマージし、ステンシル バッファーの内容を考慮した後、レンダー ターゲットの内容のイメージをサムネイルに表示します。 イメージ エディターを使用すると、[出力マージャー] ステージの出力を確認できます。

シェーダー コードの表示およびデバッグ

シェーダーに関連付けられているパイプライン ステージの下にあるコントロールを使用すると、[頂点シェーダー][ハル シェーダー][ドメイン シェーダー][ジオメトリ シェーダー]、または [ピクセル シェーダー] のコードを表示できます。

シェーダーのソース コードを表示するには

  • 表示するシェーダーに関連付けられているパイプライン ステージの下から、パイプライン ステージのタイトルを選択します。たとえば、[頂点シェーダー] を選択すると、頂点シェーダーのソース コードを表示できます。

シェーダーをデバッグするには

  • デバッグするシェーダーに関連付けられているシェーダー ステージの下で、パイプライン ステージのタイトルの下にある [デバッグ開始] を選択します。 HLSL デバッガーへのこのエントリ ポイントでは、対応するステージの最初のシェーダー呼び出しのみをデバッグします。つまり、処理する最初の頂点、プリミティブ、またはピクセルです。 これらのシェーダー ステージの他の呼び出しにアクセスするには、[グラフィックス ピクセル履歴] を使用します。

グラフィックス デバイスへのリンク

描画呼び出しとグラフィックス パイプラインが特定の方法で対話する理由を理解するために、現在のデバイスの状態に関する情報が必要になる場合があります。 [グラフィックス パイプライン ステージ] ウィンドウで、この情報へのリンクが提供されます。

参照

処理手順

チュートリアル: 頂点の網かけによるオブジェクトの不足

チュートリアル: 網かけによるレンダリング エラーのデバッグ