Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Im Bereich „Befehle“ werden die von der Anwendung ausgeführten Aufrufe nach Frame und Zeichenaufruf oder nach Nutzermarkierungen gruppiert.
Abbildung 1. Erste Ansicht eines OpenGL- oder Vulkan-TracesAbbildung 2. OpenGL-Trace ansehenAbbildung 3. Vulkan-Trace ansehenAbbildung 4. Nach einem Befehl in einem Vulkan-Trace suchen
Aufgaben und Ablauf
In diesem Bereich können Sie folgende Vorgänge ausführen:
Betrieb
Beschreibung
Ergebnis anzeigen
Klicken Sie auf einen Befehl oder eine Gruppe, um die anderen Bereiche so zu aktualisieren, dass sie den Status nach dem ausgewählten Befehl oder der ausgewählten Gruppe widerspiegeln.
Befehlshierarchie maximieren oder minimieren
Klicken Sie auf das graue Dreieck links neben einer Gruppierung oder doppelklicken Sie auf die Gruppierung, um sie zu maximieren oder zu minimieren.
Suchen
Geben Sie oben im Bereich einen String in die Suchleiste ein und drücken Sie dann die Eingabetaste (siehe Abbildung oben). Wenn Sie das nächste Vorkommen suchen möchten, muss der Balken ausgewählt sein. Drücken Sie dann noch einmal die Eingabetaste.
Klicken Sie das Kästchen Regulärer Ausdruck an, um ein Suchmuster mit regulären Ausdrücken zu verwenden.
Beispiel: glClear.* entspricht sowohl dem Befehl glClear() als auch dem Befehl glClearColor(). Sie können auch nach Befehlsparameterwerten wie „buffer“ suchen: 2, der in glBindBuffer(). verwendet wird.
Bearbeiten
Klicken Sie mit der rechten Maustaste auf einen Befehl und wählen Sie Bearbeiten aus. Ändern Sie im Dialogfeld Bearbeiten einen oder mehrere Werte und klicken Sie auf OK.
Hinweis: Dies gilt nur für Vulkan-Befehle, nicht für OpenGL-Befehle.
Status- oder Speicherinformationen ansehen
Klicken Sie auf ein Befehlsargument, das sich auf einen Statusparameter bezieht, z. B. eine Textur‑ID. Im Bereich Status werden zusätzliche Informationen angezeigt.
Klicken Sie auf eine Speicheradresse oder einen Zeiger, um den Bereich Speicher zu öffnen.
Hinweis: Dies gilt nur für Vulkan-Befehle, nicht für OpenGL-Befehle.
Befehle kopieren
Wählen Sie Elemente im Bereich aus und drücken Sie Strg+C (oder Befehlstaste+C), um Befehle mit ihren Argumentwerten zu kopieren. Sie können diese Informationen in eine Textdatei einfügen.
Miniaturansicht vergrößern
Die Miniaturansicht wird links neben einem Anruf angezeigt, wie im folgenden Bild zu sehen ist. Bewegen Sie den Mauszeiger auf die Miniaturansicht, um sie zu vergrößern.
OpenGL ES-Befehlshierarchie
OpenGL ES-Befehle werden in Vulkan übersetzt und die Vulkan-Befehle werden analysiert. Daher werden OpenGL ES-Befehle sowohl mit OpenGL ES- als auch mit Vulkan-Befehlen in der erweiterten Hierarchie angezeigt. Im vorherigen Beispiel sehen Sie unter RenderPass mehrere glDrawElement-Befehle. Die zweite Befehlshierarchie glDrawElements wurde erweitert und zeigt OpenGL ES-Befehle und DrawIndexed an. Sie können beide Hierarchien maximieren, um die zugehörigen OpenGL ES-Befehle sowie die Vulkan-Befehle anzuzeigen, in die sie übersetzt wurden.
Da es keine direkte Beziehung zwischen OpenGL ES und Vulkan gibt, kann es zu einigen Unterschieden kommen. Ein glClear-Befehl, der vor dem ersten glDraw*-Befehl steht, wird beispielsweise vor einem RenderPass angezeigt. Wenn Sie die Hierarchie von glClear maximieren, sind keine Vulkan-Befehle vorhanden. Das liegt daran, dass das Löschen aufgeschoben und im Rahmen des Starts von Vulkan RenderPass durchgeführt wird.
Debugging-Markierungen
Je nach App kann der Bereich Befehle eine sehr lange Liste von Befehlen in einem Frame enthalten. Zur besseren Navigation und Lesbarkeit können Sie Debug-Markierungen definieren, mit denen Aufrufe in der Baumstruktur unter einer Überschrift gruppiert werden. Das kann beispielsweise eine Gruppe mit dem Namen „Einrichtung“ oder „Welt rendern“ sein.
Wenn Debugmarkierungen aktiviert sind, klicken Sie auf den Bereich Befehle, um einen Link zu diesen Informationen aufzurufen. OpenGL ES bietet die folgenden APIs zum Gruppieren von Befehlen:
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Commands pane\n\nThe Commands pane displays the calls made by the application, grouped by frame and draw call or by user markers.\n**Figure 1.**Initial View of either an OpenGL or Vulkan trace **Figure 2.**Viewing an OpenGL trace **Figure 3.**Viewing a Vulkan trace **Figure 4.**Searching for a command in a Vulkan trace\n\nOperations\n----------\n\nYou can perform the following operations in this pane:\n\n| Operation | Description |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Show result | Click a command or group to update the other panes to reflect the state after the selected command or group. |\n| Expand or collapse the command hierarchy | Click the gray triangle to the left of a grouping or double-click the grouping to expand or collapse it. |\n| Search | Type a string in the search bar at the top of the pane, and then press **Return** (see the preceding image). To find the next occurrence, make sure the bar is selected and press **Return** again. Select the **Regex** box to use a regular expression search pattern. For example, `glClear.*` matches both commands `glClear()` and `glClearColor()`. You can also search for command parameter values such as buffer: `2`, which is used in `glBindBuffer().` |\n| Edit | Right-click a command and select **Edit** . In the **Edit** dialog, change one or more values and click **OK**. Note: This is only valid for Vulkan commands, and not for OpenGL commands. |\n| View state or memory information | Click a command argument that refers to a state parameter, such as a texture ID. The **State** pane displays additional information. Click a memory address or pointer to open the **Memory** pane. Note: This is only valid for Vulkan commands, and not for OpenGL commands. |\n| Copy commands | Select items in the pane and press Control+C (or Command+C) to copy commands with their argument values. You can paste this information into a text file. |\n| Magnify thumbnail | The thumbnail appears to the left of a call as shown in the following image. Hover the cursor over the thumbnail to enlarge it. |\n\nOpenGL ES command hierarchy\n---------------------------\n\nOpenGL ES commands are translated to Vulkan, and the Vulkan commands are\nanalyzed. As a result, OpenGL ES commands are shown with both OpenGL ES and\nVulkan commands shown in the expanded hierarchy. In the preceding example, you can\nsee multiple `glDrawElement` commands under the `RenderPass`. The second\n`glDrawElements` command hierarchy was expanded, and shows **OpenGL ES Commands**\nand **DrawIndexed**. You can expand both of these hierarchies to show the\nrelated OpenGL ES commands, as well as the Vulkan commands that they were translated\ninto.\n\nBecause there isn't a one-to-one relationship between OpenGL ES and Vulkan,\nthere may be some differences. For example, a `glClear` command that occurs\nbefore the first `glDraw*` command appears before a `RenderPass`. If you expand\nthe hierarchy of the `glClear`, there will be no Vulkan commands. That is because\nthe clear will be deferred and done as part of starting the Vulkan `RenderPass`.\n\nDebug markers\n-------------\n\nDepending on your app, the **Commands** pane can contain a very long list of\ncommands within one frame. For better navigation and readability, you can define\ndebug markers that group calls together under a heading in the tree. This could\ninclude a grouping, for example, named \"Setup\" or \"Render World.\"\n\nIf debug markers are enabled, click the **Commands** pane to reveal a\nlink to this information. OpenGL ES has the following APIs to group commands:\n\n| EXTENSION / VERSION | PUSH | POP |\n|-----------------------------------------------------------------------------------------------|-------------------------|------------------------|\n| [KHR_debug](https://www.khronos.org/registry/gles/extensions/KHR/KHR_debug.txt) | `glPushDebugGroupKHR()` | `glPopDebugGroupKHR()` |\n| [EXT_debug_marker](https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt) | `String` | `String` |\n| [OpenGL ES 3.2](https://www.khronos.org/opengles/sdk/docs/man32/html/glPopDebugGroup.xhtml) | `String` | `String` |\n\nVulkan has the following APIs to group commands:\n\n| EXTENSION / VERSION | PUSH | POP |\n|-------------------------------------------------------------------------------------------------------------------------------|-------------------------|------------------------|\n| [VK_EXT_debug_marker](https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0/doc/specs/vulkan/chapters/VK_EXT_debug_marker.txt) | `glPushDebugGroupKHR()` | `glPopDebugGroupKHR()` |"]]