NVIDIA Nsight といえば、 Visual Studio に統合されて、グラフィックス API 使用時のデバッグのお供として定番のものでした。これのスタンドアロン版、 Visual Studio に統合されないで単体で使用できるアプリケーションとして、「NVIDIA Nsight Graphics」が公開になりました。
今のところ、専用のドライバが必要になるみたいですが、ちょっと動作を確認してみたいと思います。
※ 少し前に Windows10 のドライバをダウンロードすると正常なものが取得できませんでしたが、現在は正常になっているようです
入手・セットアップ
現時点において NVIDIA の以下のページから入手が可能です。
このページからダウンロードページへのリンクがあります。ダウンロードには NVIDIA Developer のアカウントが必要になるようなので、持っていない場合には作成することが必要になります。そして、 Nshight Graphics 本体と、各自の環境に合わせたドライバをダウンロードします。
今のところ、 NVIDIA Geforce 600 番以降であれば対応しているようです。また 64 ビット Windows 7 or 10 の環境のみサポートしているようです。Windows 8系や 32 ビットあたりを打ち切っている辺り潔いです。デバッグ時にこれらの環境を使っていることは割と少ないと思いますが、ドライバのダウンロードの箇所には Win8 の文字があって対応していそうにも見えますが、注意が必要です。
NVIDIA Nsight Graphics
適当なサンプルを用意して、 Nsight Graphics を使ってみます。
ここでは、適当なサンプルとして Vulkan では有名なサンプルである SaschaWillems さんのもの(https://github.com/SaschaWillems/Vulkan)を使用しました。
まず起動すると以下のような画面になります。
ここから Create New Project を選択して、適当なプロジェクトを作成します。
プロジェクトを作成すると以下のような画面になります。
この “Application Executable” の箇所に、対象となるプログラムを指定します。
ここでは Activity に Frame Debugger が選択されている状態で、 mesh サンプルを実行してみました。
右上に NVIDIA Nsight が有効であるマークが表示されます。起動後は表示されていますが、しばらくすると消えます。しかし、 Ctrl+Z キーでこの HUD を再度表示することができます。この HUD が表示されている状態でスペースキーを押すと、現在の状態をキャプチャすることができます。
フレームキャプチャ
キャプチャするとこのような画面結果が得られます。
Events View と CurrentTarget View
キャプチャしたフレームでの API 呼び出しのリストを選択すると、その時点までの描画結果が Current Target View に表示されます。
Current Target View ではカラーのバッファ以外の確認もできるようです。
API Inspector View
API Inspector View の箇所では、グラフィックスパイプラインの各ステージに関しての情報を確認することが出来ます。
どのようなシェーダーが設定されているのか、出力先には何が設定されているのか確認できます。
Resource View
Resource View では各テクスチャや各バッファ、出力先といったものを確認することが出来ます。バッファのようなものの場合には、メモリ領域の確認ができます。
Geometry View
メニューから Geometry View を表示してみました。 Events View で選択しているイベントでのジオメトリ情報を確認することができます。形状表示の領域ではマウスで回転も可能でした。
まとめ
今回は Vulkan で確認しましたが、これらの部分が DirectX11/12, OpenGL らでも使えるようです。
現在は専用ドライバをいれて使用可能としていますが、 NVIDIA PerfHUD のときがそうであったように、これも近い将来専用ドライバ不要になる可能性もあると思っています。
デバッグのツールとしては見栄えもいいですし、他の前提条件も少なめなので開発時には重宝しそうに思います。
その他
Vulkan において、 Nsight Graphics が非対応の一部の拡張機能を使っている場合、 フレームのキャプチャが反応しませんでした。
この動きが分かりづらいなと思いました。スペースキーで反応しない場合、ツール側の ”Capture for Live Analysis” のボタンを押してみるといいです。ここで警告が出てくれば、どの拡張機能が阻害の原因となっているかを確認できます。
画面がダーク基調になっていますが、これは変更が可能でした。
メニューの “Tools” ⇒ “Options” より Color Theme の変更ができ、Light Theme も用意されています。