Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O painel "Comandos" exibe as chamadas feitas pelo aplicativo, agrupadas por chamada de frame e desenho ou por marcadores do usuário.
Figura 1. Visualização inicial de um rastro do OpenGL ou do VulkanFigura 2. Visualização de rastros do OpenGLFigura 3. Visualização de um rastro do VulkanFigura 4. Como pesquisar um comando em um rastro do Vulkan
Operações
É possível realizar as seguintes operações neste painel:
Operação
Descrição
Mostrar resultado
Clique em um comando ou grupo para atualizar os outros painéis para refletir o
estado após o comando ou grupo selecionado.
Abrir ou fechar a hierarquia de comandos
Clique no triângulo cinza à esquerda de um agrupamento ou clique duas vezes
nele para expandi-lo ou recolhê-lo.
Pesquisar
Digite uma string na barra de pesquisa na parte de cima do painel e pressione Return (veja a imagem anterior). Para encontrar a próxima ocorrência, verifique se
a barra está selecionada e pressione Return novamente.
Selecione a caixa Regex para usar um padrão de pesquisa de expressão regular.
Por exemplo, glClear.* corresponde aos comandos glClear()
e glClearColor(). Você também pode pesquisar valores
de parâmetros de comando, como buffer: 2, que é usado em glBindBuffer().
Editar
Clique com o botão direito do mouse em um comando e selecione Editar. Na caixa de diálogo Edit, mude um ou mais valores e clique em OK.
Observação: isso é válido apenas para comandos do Vulkan, e não para comandos do OpenGL.
Visualizar informações de estado ou memória
Clique em um argumento de comando que se refere a um parâmetro de estado, como um ID de textura. O painel Estado exibe mais informações.
Clique em um endereço ou ponteiro de memória para abrir o painel Memória.
Observação: isso é válido apenas para comandos do Vulkan, e não para comandos do OpenGL.
Copiar comandos
Selecione itens no painel e pressione Control + C (ou Command + C) para copiar
comandos com os valores de argumento correspondentes. É possível colar essas informações em
um arquivo de texto.
Ampliar miniatura
A miniatura aparece à esquerda de uma ligação, conforme mostrado na
imagem a seguir. Passe o cursor sobre a miniatura para ampliar.
Hierarquia de comandos do OpenGL ES
Os comandos do OpenGL ES são traduzidos para o Vulkan, e os comandos do Vulkan são
analisados. Como resultado, os comandos do OpenGL ES são exibidos com os comandos do OpenGL ES e
do Vulkan mostrados na hierarquia expandida. No exemplo anterior, é possível
ver vários comandos glDrawElement em RenderPass. A segunda
hierarquia de comandos glDrawElements foi expandida e mostra Comandos OpenGL ES
e DrawIndexed. Você pode expandir essas duas hierarquias para mostrar os
comandos do OpenGL ES relacionados, bem como os comandos do Vulkan em que eles foram
traduzidos.
Como não há uma relação direta entre o OpenGL ES e o Vulkan,
pode haver algumas diferenças. Por exemplo, um comando glClear que ocorre
antes do primeiro comando glDraw* aparecer antes de um RenderPass. Se você expandir
a hierarquia do glClear, não haverá comandos do Vulkan. Isso ocorre porque
a limpeza será adiada e feita como parte do início do RenderPass do Vulkan.
Depurar marcadores
Dependendo do app, o painel Commands pode conter uma lista muito longa de
comandos em um frame. Para melhorar a navegação e a leitura, defina
marcadores de depuração que agrupam chamadas em um título na árvore. Isso pode
incluir um agrupamento, por exemplo, chamado "Configuração" ou "Mundo de renderização".
Se os marcadores de depuração estiverem ativados, clique no painel Comandos para revelar um
link para essas informações. O OpenGL ES tem as seguintes APIs para agrupar comandos:
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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()` |"]]