Version: Unity 6.0 (6000.0)
言語 : 日本語
Visual Studio でシェーダーをデバッグ
シェーダー言語のリファレンス

PIX でシェーダーをデバッグ

PIX は、Windows 開発者向けに Microsoft によって作られたパフォーマンスチューニングとデバッグのツールです。これには、アプリケーションのパフォーマンスを分析するためのさまざまなモードを提供し、デバッグのためにアプリケーションから DirectX プロジェクトのフレームをキャプチャする機能が含まれています。

PIX を使用して、Windows 64 ビット (x86_64) スタンドアロンやユニバーサル Windowsプラットフォームのアプリケーションに関する問題を調査します。

PIX をインストールするには、Microsoft PIX インストーラーをダウンロードして実行し、指示に従ってください。

PIX の詳細については、Microsoft の PIX 概要PIX ドキュメントを参照してください。

PIX を使った DirectX シェーダーのデバッグ

Unity エディターで実行しているバージョンではなく、Unity アプリケーションのビルドバージョンを使用して、フレームをキャプチャする必要があります。理由は、GPU フレームをキャプチャするには PIX から対象のアプリケーションを起動する必要があるためです。

開発ビルドを使用すると PIX に追加情報が加えられ、シーンのキャプチャをより簡単に操作できます。

デバッグが可能なシェーダーでプロジェクトを作成

PIX のソースコードでシェーダーをデバッグするには、シェーダーコードに次のプラグマを挿入する必要があります。#pragma enable_d3d11_debug_symbols

以下は基本的な例を使用してプロセス全体を紹介します。

基本的なプロジェクトを作成

  1. 新しい Unity プロジェクトを作成します (Hub のドキュメントProjects を参照)。

  2. 上部のメニューで、Assets > Create > Shader > Standard Surface Shader の順に選択します。これにより、Project フォルダー内に新しいシェーダーファイルが作成されます。

  3. シェーダーファイルを選択し、Inspector ウィンドウで Open をクリックします。スクリプトエディターでシェーダーファイルを開きます。他の #pragma 行以下のシェーダーコードに #pragma enable_d3d11_debug_symbols を挿入します。

  4. 新しいマテリアルを作成します (メニューで Assets > Create > Material を選択します)。

  5. マテリアルの Inspector ウィンドウで Shader ドロップダウンを選択して Custom に移動し、作成したシェーダーを選択します。

  6. 3D キューブゲームオブジェクトを作成します (メニューで GameObject > 3D Object > Cube を選択します)。

  7. 新しいマテリアルを新しいゲームオブジェクトに割り当てます。これを行うには、マテリアルを Project ウィンドウから 3D キューブにドラッグします。

Windows スタンドアロンアプリケーションからフレームをキャプチャ

  1. File > Build Settings に移動し、PlatformWindows, Mac, Linux を選択します。Target PlatformWindows に、ArchitectureIntel 64-bit に設定し、Development Build チェックボックスをオンにします。

  2. Build をクリックします。

  3. PIX. を起動します。

  4. Home をクリックし、Connect をクリックします。

  5. 自分の PC をキャプチャに使用するには、PC の localhost __ を選択して、connect__ をクリックします。

  6. Select Target Process ボックスで Launch Win32 タブを選択し、Browse ボタンを使用してアプリケーションの実行ファイルを選択します。ここで、“Win32” は非 UWP アプリケーションを意味します。使用するアプリケーションファイルは 64 ビットのバイナリファイルである必要があります。

  7. Launch for GPU Capture を有効にし、Launch ボタンを押してアプリケーションを開始します。

  8. フレームをキャプチャする準備が整うまで、アプリケーションを通常どおりに使用します。フレームをキャプチャするには、キーボードの Print Screen を押すか、GPU Capture パネルのカメラアイコンをクリックします。キャプチャのサムネイルがパネルに表示されます。キャプチャを開くには、サムネイルをクリックします。

  9. キャプチャの分析を開始するには、強調表示されたテキストか、メニューバーの小さな Play アイコンをクリックします。

  10. Pipeline タブを選択し、Events ウィンドウを使用して、興味のあるドローコールを選択します。

  11. Pipeline タブの下方で OM (Output Merger) リストからレンダーターゲットを選択し、ドローコールの出力を表示します。デバッグしたいオブジェクト上のピクセルを選択します。興味のあるドローコールを見つけるのと同様の方法で、ピクセルを右クリックすると、ドローコールの履歴を見ることができます。

  12. Pixel Details パネルで Debug Pixel を選択します。

  13. デバッグパネルの Shader Options を使用して、デバッグするシェーダーステージを選択します。

  14. ツールバーまたはキーボードショートカットを使用して、コードを 1 つずつ移動します。

PIX を使用したシェーダーのデバッグの詳細については、Microsoft のビデオシリーズ PIX on Windows、特に Part 5 - Debug Tab を参照してください。

PIX での GPU キャプチャの詳細は、Microsoft ドキュメントの GPU Capture を参照してください。

  • 2018–09–17
Visual Studio でシェーダーをデバッグ
シェーダー言語のリファレンス