深夜開発

短期記憶しか保持できない私の為の外部記憶装置

RenderDocを使ったUnrealEngineプロジェクトのGPUデバッグ

RenderDocのインストール

  1. RenderDocインストーラ公式からダウンロード
  2. ダウンロードしたインストーラを実行
    • ※UnrealEngineを終了してからインストールを行う事
  3. セットアップウィザードが起動するのでNextをクリック
  4. I accept the terms in the License AgreementをチェックしてNextをクリック
  5. 個別設定をしないのならばTypicalまたはCompleteを選択後、Nextをクリック
  6. インストール設定に問題が無ければInstallをクリック
  7. インストールが完了したらFinishをクリック

UnrealEditor上からRenderDocを使う

  1. プラグイン設定を開く
  2. RenderDocプラグインを有効化
    1. RenderDocで検索
    2. プラグインにチェック
    3. 今すぐ再起動でエディタを再起動する
      RenderDocプラグインを有効化
  3. RenderDocプラグインの初期設定を行う
    1. プロジェクト設定を開く
      • メニュー『編集』→『プロジェクト設定』
      • ツールバー『設定』→『プロジェクト設定』
    2. 『プラグイン』→『RenderDoc』→『詳細設定』を開く
    3. スタートアップ時に自動アタッチにチェック
      • UnrealEditorの起動引数に-AttachRenderDocを追加することでも有効化可能
    4. RenderDoc実行ファイルパスにRenderDocをインストールしたパスを設定
      • RenderDocインストール時、特に変更していなければ C:\Program Files\RenderDoc となっているはず
    5. エディタを再起動する
      RenderDocの詳細設定
  4. 有効化されたRenderDocを使ってシーンキャプチャを行う
    • 右上のRenderDocアイコンをクリックしてキャプチャ
    • コンソールコマンドrenderdoc.CaptureFrameを実行してキャプチャ
      キャプチャフレーム
  5. キャプチャに成功すれば自動的にRenderDocが起動する

パッケージ上からRenderDocを使う

  1. RenderDocを起動し、Launch Applicationタブを開く
    LaunchApplicationタブを開く
  2. Executable Pathにプロファイルを行うアプリケーションの実行ファイルを指定し、Launchをクリックして起動
    • 作業ディレクトリを実行ファイルと別の場所を指定する場合のみ、Working Directoryを設定
    • 必要があれば起動引数をCommand-line Argumentsへ指定
      • 複数のRHIを含んだパッケージ作成していれば、起動引数から使用するRHIを指定可能
        • DirectX11: -d3d11
        • DirectX12: -d3d12
        • Vulkan: -vulkan
    • 通常UnrealEngineで作成したパッケージの場合、『Capture Option』→『Capture Child Processes』にチェックを入れる
      起動する
  3. 起動すると親プロセスタブが開くので、『Child Process』→『[ProjectName].exe [PID ???]』をダブルクリックして子プロセスのタブ開く
    子プロセスを開く
  4. 任意のタイミングで『Tools』→『Capture Frame(s) Immediately』をクリックするか、ゲーム画面上からF12を押すと、Captures collectedにキャプチャした内容が列挙される。
  5. 『Captures collected』に列挙されたキャプチャをダブルクリックで開くことで、詳細を確認することが出来る

RenderDoc以外のGPUプロファイラ

RenderDocは大抵のGPUデバッグできる反面、プロファイル用途として使用するには取得できる内部カウンタが不正確などといった欠点がある。 正確な内部カウンタを取得したい場合には、プロファイルを行いたい環境に合ったプロファイラを使ってください

  1. NVIDIA製品専用
  2. AMD製品専用
  3. Intel製品専用
  4. Windows専用
  5. Qualcomm Snapdragon(Adreno)専用
  6. Arm Mali専用