Gaming Life

一日24時間、ゲームは10時間

UE4でNVIDIA NSight Graphicsを使ったGPUプロファイリングをしてみる

本記事は、「Online Game-Tech LT 2020」のLT発表の補足資料として用意しました。登壇一日前で時間がない中で本記事を執筆しているため、必要最低限の説明だけにとどまっていることをご容赦ください。時間があればそのうち修正します。

connpass.com

NVIDIA NSight Graphicsとは

NVIDIAが開発したグラフィックアプリケーション用のプロファイラ。RenderDocと比べて、GPUの低レイヤの調査に向いている。

セットアップ

今回は、UE4で作成したゲームパッケージでプロファイルするのではなく、エディタ上でプロファイルする。製品版に近い状態でプロファイルしたい場合は、Developmentパッケージを作成し、それをプロファイルするのがよい。

公式サイトからNVIDIA NSight Graphicsをダウンロードする(以下NSightと表記)。 developer.nvidia.com

プロファイルする時は、必ず管理者権限で実行すること。そうしないと警告メッセージが出て、詳細な調査ができない。

起動するとこのようなウィンドウが表示される。「Create New Project」を選択し、プロファイルのための新しいプロジェクトを作成する。 f:id:ai_gaminglife:20201031210430j:plain

プロセス立ち上げのための設定ウィンドウが立ち上がったら、「Application Executable」にUE4Editor.exeのパスを、「Commnad Line Arguments」にプロファイルしたいuprojectのパスと-game引数を記述する。なお、私の環境ではなぜか「-dx12」引数をつけないとプロファイルできなかった。そんなことをしなくても普通は出来るはずなんだけど……もし「-game」だけで起動しない方がいれば試してみてください。

UE4Editor.exeはデフォルトで、「C:\Program Files\Epic Games\UE_4.「バージョン番号」\Engine\Binaries\Win64\UE4Editor.exe」のパスにある。

f:id:ai_gaminglife:20201031211100p:plain

「Launch Frame Debugger」を押すとUE4Editorが起動する。プロファイルしたいシーンに移動したら、NSightウィンドウで「Capture for Live Analysis」ボタンをクリックする。すると、下図のような画面が立ち上がる。これを使ってフレーム単位の詳細なプロファイリングを行っていく。

f:id:ai_gaminglife:20201031211938j:plain

実際のNSightを使ってのプロファイリング手順は「Unreal Fest 2019」講演が詳しいので、そちらを参考のこと。

www.slideshare.net