コマンド ペイン

[Commands] ペインには、アプリケーションによって行われた呼び出しがフレーム、描画呼び出し、またはユーザー マーカー別に表示されます。

OpenGL トレースまたは Vulkan トレースの初期ビュー
図 1. OpenGL または Vulkan トレースの初期ビュー
OpenGL トレースの表示
図 2. OpenGL トレースの表示
Vulkan トレースの表示
図 3. Vulkan トレースの表示
Vulkan トレースの表示
図 4. Vulkan トレースでのコマンドの検索

演算

このペインでは次の操作を行うことができます。

オペレーション 説明
結果を表示 コマンドまたはグループをクリックすると、選択したコマンドまたはグループの後の状態を反映して他のペインが更新されます。
コマンド階層を展開する、または折りたたむ グループの左にある灰色の三角形をクリックするか、グループをダブルクリックして展開または折りたたみます。
検索 ペインの上部にある検索バーに文字列を入力して、Return キーを押します(上の画像を参照)。次の箇所を見つけるには、バーが選択されているのを確認し、もう一度 Return キーを押します。

正規表現検索パターンを使用するには、[Regex] チェックボックスをオンにします。 たとえば、glClear.* はコマンド glClear()glClearColor() の両方に一致します。また、バッファ: 2 などのコマンド パラメータ値を検索することもできます。これは glBindBuffer(). で使用されます。
編集 コマンドを右クリックして [Edit] を選択します。[編集] ダイアログで 1 つ以上の値を変更し、[OK] をクリックします。注: これは Vulkan コマンドでのみ有効で、OpenGL コマンドでは無効です。
状態またはメモリ情報を表示する テクスチャ ID などの状態パラメータを参照するコマンド引数をクリックします。[State] ペインに追加情報が表示されます。 メモリアドレスまたはポインタをクリックして、[Memory] ペインを開きます。 注: これは Vulkan コマンドでのみ有効で、OpenGL コマンドでは無効です。
コマンドをコピー ペインでアイテムを選択して Ctrl+C(または Command+C)を押すと、コマンドとその引数値がコピーされます。この情報はテキスト ファイルに貼り付けることができます。
サムネイルを拡大 サムネイルは、次の画像のように、呼び出しの左側に表示されます。サムネイルにカーソルを合わせると拡大されます。
説明文

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()