BrowserでRenderDocを使う
RenderDocは、さまざまなグラフィックAPIと開発プラットフォームをサポートするグラフィックデバッグツールです。開発時のフレームキャプチャと分析に使用されます。RenderDocは、実行中のアプリのエンジンがMeta Questハードウェアでシーンの1フレームのレンダリングをどのように決定したかを示すものです。この情報は、最適化の機会と潜在的なパフォーマンス問題の原因を見つけるのにしばしば役立ちます。
Metaは、RenderDocの独自のフォークを管理するようになりました。このフォークは、QuestのSnapdragon 835チップとQuest 2のSnapdragon XR2チップからの低レベルGPUプロファイリングデータ(特にそのタイルレンダラーからの情報)へのアクセスを提供します。
Windows用のRenderDoc for Meta Questインストーラーは
ダウンロードページで入手できます。
このガイドでは、RenderDoc for Meta QuestとBrowserを接続し、フレームをキャプチャしてリプレイする手順を説明します。
- PCにRenderDoc Meta Forkをダウンロードし、インストールします。
- Questデバイスでブラウザーを起動し、
chrome://flagsにアクセスします。 - ページ上の検索バーで「image」を検索します。
- Android ImageReaderフラグを[Disabled (無効)]に切り替えます。
- フラグを変更すると、ブラウザーの下部にバナーが表示されます。[再起動]ボタンをクリックします。
- 没入モードで作業する場合、次の追加ステップも実行します。
- 検索バーで「RenderDoc」を検索します。
- RenderDoc Immersive Mode Supportフラグを[Enabled (有効)]に切り替えます。
- [再起動]ボタンをクリックします。
RenderDocをBrowserに接続してフレームをキャプチャする
- PC上で、RenderDoc Meta Forkアプリを起動します。
- RenderDoc UIの左下にある[Replay Context: (something) (リプレイコンテキスト: (内容))]をクリックし、[Meta Quest 2 Profiling Mode (Meta Quest 2プロファイリングモード)]を選択します。
- この時点で、Questデバイスの画面は黒くなり、白の3点マークが表示されます。Questコントローラーのホームボタンを押し、ホーム環境に戻ります。
- RenderDocの[Launch Application (アプリの起動)]パネルで、[Executable Path (実行可能パス)]フィールドに
com.oculus.browser/.PanelActivityと入力し、起動ボタンをクリックします。 - RenderDocが接続された状態で、ブラウザーが起動するはずです。キャプチャしたいページやビューに移動し、パソコンのRenderDocアプリを使用してフレームをキャプチャします。
ブラウザーが起動しない場合、RenderDocをブラウザーに手動でアタッチできます。
- Questデバイスでブラウザーを手動で起動します。ブラウザー上部にRenderDocのオーバーレイが表示されるはずです。
- RenderDoc UIで、[File (ファイル)]メニューをクリックし、[Attach to Running Instance (実行中のインスタンスにアタッチ)]をクリックします。
- リストにcom.oculus.browserが表示されます。
- com.oculus.browserを選択し、[Connect to App (アプリに接続)]ボタンをクリックします。
キャプチャ後、フレームを追加でキャプチャしたり、すぐにリプレイモードでフレームを開いたりすることができます。
- まだデバイスに接続しているはずです。そうでない場合は、リプレイコンテキストをMeta Questヘッドセットに設定してください。RenderDoc UIの左下にある[Replay Context: (something) (リプレイコンテキスト: (内容))]をクリックし、[Meta Quest 2 Profiling Mode (Meta Quest 2プロファイリングモード)]を選択します。
- キャプチャをダブルクリックして表示します。現在、Quest GPUでキャプチャをリプレイしています。
- [Event Browser (イベントブラウザー)]ウィンドウでは、フレームキャプチャ中に行われた各ドローコールを確認できます。それぞれをクリックすると、そのドローコール時のレンダリングパイプライン全体の状態を確認することができます。
- [Texture Viewer (テクスチャービューアー)]タブでは、さまざまなドローコールをクリックするとフレームバッファが表示されます。
- 非常に暗く表示される場合があります。より明るく表示するには、テクスチャービューアーペインの上部付近にあるサブリソースラベルの左側にあるガンマボタンを切り替えてください。
- 一般的に、ここでのレンダリングは完全に正確とは言えませんが、それぞれのドローコールで何が起こっているのかの目安にはなります。
- レンダリングされるオブジェクトを識別するために、[Overlay (オーバーレイ)]オプションをWireframe Mesh (Wireframeメッシュ)またはHighlight Draw Call (ハイライトドローコール)に設定することを検討してください。
- [Performance Counter Viewer (パフォーマンスカウンタービューアー)]タブを開き、[Capture Counters (コンテンツのキャプチャ)]ボタンを押してください。ここには、いくつかの一般的なものやMetaに特化したものなど、さまざまな指標があります。Meta固有の指標はドローコールの指標のトピックで説明されています。
- GPU期間やGPUクロックでソートすることで、シーン内で最も高価なドローコールを特定するのに最適な方法です。これらのタイミングは、シーンを1フレームごとにレンダリングする際の実際の期間という点では完全に正確ではないかもしれませんが、相対的には正確です。例えば、1000マイクロ秒の通話は、500マイクロ秒の通話に比べて約2倍のコストになります。
- [Performance Counter Viewer (パフォーマンスカウンタービューアー)]ウィンドウのイベント識別情報(EID)を、Event BrowserのEIDにマッピングできます。
- [Pipeline State (パイプライン状態)]タブには、Event Browserで選択されているドローコールのグラフィックパイプラインの状態全体が表示されます。特定のステージの詳細情報を表示するには、パイプラインのそれぞれのボックスをクリックします。