PIX は、Windows 開発者向けに Microsoft によって作られたパフォーマンスチューニングとデバッグのツールです。これには、アプリケーションのパフォーマンスを分析するためのさまざまなモードを提供し、デバッグのためにアプリケーションから DirectX プロジェクトのフレームをキャプチャする機能が含まれます。
PIX を使用して、Windows 64 ビット (x86_64) スタンドアロンやユニバーサル Windowsプラットフォームのアプリケーションに関する問題を調査します。
PIX をインストールするには、Microsoft PIX インストーラーをダウンロード して実行し、その指示に従ってください。
PIX の詳細は、Microsoft の PIX Introduction と PIX Documentation を参照してください。
Unity エディターで実行しているバージョンではなく、Unity アプリケーションのビルドバージョンを使用して、フレームをキャプチャする必要があります。理由は、GPU フレームをキャプチャするには PIX から対象のアプリケーションを開く必要があるためです。
開発ビルドを使用すると PIX に追加情報が加えられ、シーンのキャプチャをより簡単に操作できます。
PIX のソースコードでシェーダーをデバッグするには、シェーダーコードに次のプラグマを挿入する必要があります。 #pragma enable_d3d11_debug_symbols
以下は基本的な例を使用してプロセス全体を紹介します。
新しい Unity プロジェクトを作成します (Unity を初めて使うユーザーのために のページを参照)。
上部のメニューで、Assets > Create > Shader > Standard Surface Shader の順に選択します。これにより、Project フォルダー内に新しいシェーダーファイルが作成されます。
シェーダーファイルを選択し、Inspector ウィンドウで Open をクリックします。スクリプトエディターでシェーダーファイルを開きます。他の #pragma
行以下のシェーダーコードに #pragma enable_d3d11_debug_symbols
を挿入します。
新しいマテリアルを作成します (Assets > Create > Material)。
マテリアルの Inspector ウィンドウで、Shader ドロップダウンを選択し、Custom に移動し、作成したシェーダーを選択します。
3D キューブゲームオブジェクトを作成します (GameObject > 3D Object > Cube)。
新しいマテリアルを新しいゲームオブジェクトに割り当てます。これを行うには、マテリアルを Project ウィンドウから 3D キューブにドラッグします。
File > Build Settings に移動し、Platform で PC, Mac & Linux Standalone を選択します。Target Platform を Windows に、Architecture を x86_64 に設定し、Development Build チェックボックスにチェックします。
Build をクリックします。
PIX を起動します
Home をクリックし、Connect をクリックします。
キャプチャに PC を使うために、PC の localhost を選択し、connect をクリックします。
Select Target Process で Launch Win32 タブを選択し、Browse ボタンを使用してアプリケーションの実行ファイルを選択します。ここで、“Win32” は非 UWP アプリケーションを意味します。アプリケーションファイルは 64 ビットのバイナリファイルである必要があります。
Launch for GPU Capture を有効にし、Launch ボタンを押してアプリケーションを開始します。
フレームをキャプチャする準備が整うまで、アプリケーションを通常どおりに使用します。フレームをキャプチャするには、キーボードの Print Screen を押すか、GPU Capture パネルのカメラアイコンをクリックします。キャプチャのサムネイルがパネルに表示されます。キャプチャを開くには、サムネイルをクリックします。
キャプチャの分析を開始するには、強調表示されたテキストか、メニューバーの小さな 再生 アイコンをクリックします。
Pipeline タブを選択し、Events ウィンドウを使用して、興味のあるドローコールを選択します。
Pipeline タブの下方で OM (Output Merger) リストからレンダーターゲットを選択し、ドローコールの出力を表示します。デバッグしたいオブジェクト上のピクセルを選択します。興味のあるドローコールを見つけるのと同様の方法で、ピクセルを右クリックすると、ドローコールの履歴を見ることができます。
Pixel Details パネルで Debug Pixel を選択します。
デバッグパネルの Shader Options を使用して、デバッグするシェーダーステージを選択します。
ツールバーまたはキーボードショートカットを使用して、コードを 1 つずつ移動します。
PIX を使ってシェーダーをデバッグする詳しい情報については、Microsoft のビデオシリーズ PIX on Windows、特に Part 5 - Debug Tab を参照してください。
PIX での GPU キャプチャの詳細は、Microsoft ドキュメンテーションの GPU Capture を参照してください。