Android GPU Inspector(AGI)を使用すると、Android アプリの特定のフレームをプロファイリングし、それを使用してアプリの GPU 使用状況を詳細に分析できます。このプロファイリング データにより、システム プロファイリングのみを使用する場合よりも、アプリの GPU 使用状況をより深く理解できます。
AGI を使用したフレーム プロファイリングは、まずトレースとその他のパフォーマンス データを収集し、分析のために測定して表示します。
使用可能なフレーム プロファイリング データは次のとおりです。
- Vulkan API 呼び出し 
- フレームバッファのコンテンツ 
- レンダリングされたメッシュ描画呼び出し 
- コマンドの RAM および GPU メモリの値 
- レンダリング イベントの GPU パフォーマンス データ 
- パイプライン データ 
- レンダリング状態データ 
- テクスチャとシェーダーのリソース 
始める
AGI のクイックスタートでは、AGI を設定してフレーム プロファイル データをキャプチャし、生成されたトレース ファイルを開く方法について説明します。次のセクションでは、構成オプションについて詳しく説明します。
プロファイリング オプション
このセクションでは、フレーム プロファイルをキャプチャする際に利用できる主なオプションについて説明します。
Graphics API オプション
Graphics API オプションは、アプリで使用するグラフィック API を示します。オプションは、[Capture System Profile] ダイアログの [Type] リストにあります。以下のオプションがあります。
- Vulkan: Vulkan API を直接使用するアプリ向け。
- OpenGL on ANGLE: OpenGL ES を使用するアプリ向け。
AGI は Vulkan コマンドを直接トレースします。ただし、アプリが OpenGL ES を使用している場合、AGI はカスタムの ANGLE ビルドを使用して、アプリをトレースする前にコマンドを Vulkan コマンドに変換します。
その他の引数
[Additional Arguments] フィールドは、adb am start-activity コマンドに追加のフラグを渡すために使用します。このコマンドは、プロファイリング中にアプリを起動するためにデバイスに送信されます。詳細については、adb コマンドをご覧ください。
開始と期間のオプション
[Start and Duration] セクションでは、AGI がフレームをプロファイリングしてプロファイリングする方法を指定できます。以下のオプションから選択できます:
- 開始: AGI は、アプリの起動から最初にレンダリングされたフレームの終わりまで、すべてのコマンドをキャプチャします。 
- 手動: トレース ダイアログのボタンを押してフレームを手動でキャプチャします。 
- 時間: AGI は、指定された秒数後にフレームを自動的にキャプチャします。 
- Frame: AGI は指定されたフレームを自動的にキャプチャします。 
トレース オプション
[Trace Options] セクションには、トレースフラグを構成する設定が含まれています。以下の設定を使用できます。
- バッファリングを無効にする: データをキャプチャするときにデバイスのメモリ バッファリングを無効にします。このオプションは、すべてのトレースデータがクラッシュまでシリアル化されるため、アプリのクラッシュのデバッグに役立ちます。ただし、プロファイリング時の AGI のオーバーヘッドは若干増加します。 
- Include Unsupported Extensions: デバイスの AGI によってサポートされていない拡張機能を含めます。AGI でサポートされていない拡張機能をアプリで使用している場合、トレースの再生時に、微妙なエラーやクラッシュなど、望ましくない動作が発生する可能性があります。サポートされている拡張機能のリストをご覧ください。 
- パッケージ データを消去する: - pm clearadb コマンドを使用して、デバイスを起動前にアプリのユーザーデータを消去するようリクエストします。
出力設定
出力セクションには、トレース ファイルのストレージに関する設定が含まれます。
- トレース ファイルを保存するディレクトリを指定します。 
- 自動生成されたトレース ファイルのファイル名を変更します。 
結果を確認する
フレーム プロファイリング データを含むトレース ファイルを開くと、分析用のデータが Frame Profiler UI に表示されます。
Frame Profiler は、個々のフレームをプロファイリングするための UI とインストルメンテーションを管理する AGI コンポーネントです。Frame Profiler では、次の UI 要素にデータが表示されます。
- [Commands] ペイン: Vulkan API 呼び出し。 
- [フレームバッファ] ペイン: フレームバッファのコンテンツ。 
- [Geometry] ペイン: メッシュ描画呼び出しのレンダリング。 
- [メモリ] ペイン: コマンドの RAM メモリと GPU メモリの値。 
- [パフォーマンス] ペイン: レンダリング イベントの GPU パフォーマンス データ。 
- [パイプライン] ペイン: パイプラインのコンテンツ。 
- シェーダー ペイン: コンテンツをシェーダーします。 
- [State] ペイン: 送信されたコマンドのレンダリング状態。 
- [Textures] ペイン: コマンドに関連付けられているテクスチャ リソースのリスト。 
- [テクスチャ] ペイン: 選択したテクスチャ リソースのコンテンツ。 
- [レポート] ペイン: プロファイリング エラーのリスト。 
結果を分析する
以下のトピックでは、AGI を使用してフレーム プロファイリング データを分析する方法について説明します。
