[Commands] ペインには、アプリケーションによって行われた呼び出しがフレーム、描画呼び出し、またはユーザー マーカー別に表示されます。
![OpenGL トレースまたは Vulkan トレースの初期ビュー](https://developer.android.com/static/images/agi/command-pane-images/command-pane-1.png?authuser=8&hl=ja)
![OpenGL トレースの表示](https://developer.android.com/static/images/agi/command-pane-images/command-pane-2.png?authuser=8&hl=ja)
![Vulkan トレースの表示](https://developer.android.com/static/images/agi/command-pane-images/command-pane-3.png?authuser=8&hl=ja)
![Vulkan トレースの表示](https://developer.android.com/static/images/agi/command-pane-images/command-pane-4.png?authuser=8&hl=ja)
演算
このペインでは次の操作を行うことができます。
オペレーション | 説明 |
---|---|
結果を表示 | コマンドまたはグループをクリックすると、選択したコマンドまたはグループの後の状態を反映して他のペインが更新されます。 |
コマンド階層を展開する、または折りたたむ | グループの左にある灰色の三角形をクリックするか、グループをダブルクリックして展開または折りたたみます。 |
検索 | ペインの上部にある検索バーに文字列を入力して、Return キーを押します(上の画像を参照)。次の箇所を見つけるには、バーが選択されているのを確認し、もう一度 Return キーを押します。 正規表現検索パターンを使用するには、[Regex] チェックボックスをオンにします。 たとえば、 glClear.* はコマンド glClear() と glClearColor() の両方に一致します。また、バッファ: 2 などのコマンド パラメータ値を検索することもできます。これは glBindBuffer(). で使用されます。 |
編集 | コマンドを右クリックして [Edit] を選択します。[編集] ダイアログで 1 つ以上の値を変更し、[OK] をクリックします。注: これは Vulkan コマンドでのみ有効で、OpenGL コマンドでは無効です。 |
状態またはメモリ情報を表示する | テクスチャ ID などの状態パラメータを参照するコマンド引数をクリックします。[State] ペインに追加情報が表示されます。 メモリアドレスまたはポインタをクリックして、[Memory] ペインを開きます。 注: これは Vulkan コマンドでのみ有効で、OpenGL コマンドでは無効です。 |
コマンドをコピー | ペインでアイテムを選択して Ctrl+C(または Command+C)を押すと、コマンドとその引数値がコピーされます。この情報はテキスト ファイルに貼り付けることができます。 |
サムネイルを拡大 | サムネイルは、次の画像のように、呼び出しの左側に表示されます。サムネイルにカーソルを合わせると拡大されます。 |
![説明文](https://developer.android.com/static/images/agi/command-pane-images/command-pane-5.png?authuser=8&hl=ja)
OpenGL ES コマンドの階層
OpenGL ES コマンドは Vulkan に変換され、Vulkan コマンドは分析されます。その結果、階層を展開した図のように、OpenGL ES コマンドと Vulkan コマンドの両方とともに OpenGL ES コマンドが示されています。上記の例では、RenderPass
の下に複数の glDrawElement
コマンドがあります。glDrawElements
コマンドの 2 番目の階層が拡張され、OpenGL ES コマンドと DrawIndexed が表示されるようになりました。これらの階層の両方を展開して、関連する OpenGL ES コマンドと、その変換先の Vulkan コマンドを表示できます。
OpenGL ES と Vulkan は 1 対 1 の関係ではないため、若干の違いが生じる場合があります。たとえば、最初の glDraw*
コマンドの前に実行される glClear
コマンドは、RenderPass
の前に表示されます。glClear
の階層を展開すると、Vulkan コマンドは表示されなくなります。これは、クリアが遅延され、Vulkan RenderPass
の開始の一部として実行されるためです。
デバッグ マーカー
アプリによっては、[Commands] ペインでは、1 つのフレーム内に非常に長いコマンドリストが表示されます。ナビゲーションと読みやすさを改善するには、ツリーの見出しの下に呼び出しをグループ化するデバッグ マーカーを定義します。これには、「Setup」や「Render World」などのグループを含めることができます。
デバッグ マーカーが有効になっている場合は、[Commands] ペインをクリックすると、この情報へのリンクが表示されます。OpenGL ES には、コマンドをグループ化するための次の API があります。
拡張機能 / バージョン | 送信 | POP |
---|---|---|
KHR_debug | glPushDebugGroupKHR() |
glPopDebugGroupKHR() |
EXT_debug_marker | String |
String |
OpenGL ES 3.2 | String |
String |
Vulkan には、コマンドをグループ化するための次の API があります。
拡張機能 / バージョン | 送信 | POP |
---|---|---|
VK_EXT_debug_marker | glPushDebugGroupKHR() |
glPopDebugGroupKHR() |