Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En el panel Commands se muestran las llamadas realizadas por la aplicación, agrupadas por marco y llamada de dibujo, o por marcadores del usuario.
Figura 1: Vista inicial de un seguimiento de OpenGL o VulkanFigura 2: Visualización de un registro de OpenGLFigura 3: Visualización de un registro de VulkanFigura 4: Cómo buscar un comando en un registro de Vulkan
Operaciones
Puedes realizar las siguientes operaciones en este panel:
Operación
Descripción
Mostrar resultado
Haz clic en un comando o grupo para actualizar los otros paneles de modo que reflejen el estado después del comando o grupo seleccionado.
Expandir o contraer la jerarquía de comandos
Haz clic en el triángulo gris a la izquierda de una agrupación o haz doble clic en ella para expandirla o contraerla.
Buscar
Escribe una string en la barra de búsqueda en la parte superior del panel y, luego, presiona Return (consulta la imagen anterior). Para buscar el siguiente caso, asegúrate de que la barra esté seleccionada y vuelve a presionar Intro.
Selecciona el cuadro Regex para usar un patrón de búsqueda de expresiones regulares.
Por ejemplo, glClear.* coincide con los comandos glClear() y glClearColor(). También puedes buscar valores del parámetro de comando, como el búfer: 2, que se usa en glBindBuffer()..
Editar
Haz clic con el botón derecho en un comando y selecciona Editar. En el diálogo Edit, cambia uno o más valores y haz clic en OK.
Nota: Esto solo es válido para los comandos de Vulkan y no para los comandos de OpenGL.
Cómo ver información de estado o memoria
Haz clic en un argumento de comando que haga referencia a un parámetro de estado, como un ID de textura. En el panel State, se muestra información adicional.
Haz clic en una dirección o puntero de memoria para abrir el panel Memory.
Nota: Esto solo es válido para los comandos de Vulkan y no para los comandos de OpenGL.
Copiar comandos
Selecciona elementos en el panel y presiona Control + C (o Comando + C) para copiar comandos con los valores de sus argumentos. Puedes pegar esta información en un archivo de texto.
Ampliar miniatura
La miniatura aparece a la izquierda de una llamada, como se muestra en la siguiente imagen. Coloca el cursor sobre la miniatura para ampliarla.
Jerarquía de comandos de OpenGL ES
Los comandos de OpenGL ES se traducen a Vulkan y se analizan los comandos de Vulkan. Como resultado, los comandos de OpenGL ES se muestran con los comandos de OpenGL ES y Vulkan en la jerarquía expandida. En el ejemplo anterior, puedes ver varios comandos glDrawElement en RenderPass. Se expandió la segunda jerarquía de comandos de glDrawElements y muestra OpenGL ES Commands y DrawIndexed. Puedes expandir estas dos jerarquías para mostrar los comandos de OpenGL ES relacionados, así como los comandos de Vulkan a los que se tradujeron.
Como no existe una relación de uno a uno entre OpenGL ES y Vulkan, puede haber algunas diferencias. Por ejemplo, un comando glClear que se produce antes del primer comando glDraw* aparece antes de un RenderPass. Si expandes la jerarquía de glClear, no habrá comandos de Vulkan. Esto se debe a que la eliminación se aplazará y se realizará como parte del inicio de RenderPass de Vulkan.
Marcadores de depuración
Según tu app, el panel Commands puede contener una lista muy larga de comandos dentro de un marco. Para mejorar la navegación y la legibilidad, puedes definir marcadores de depuración que agrupen llamadas bajo un encabezado del árbol. Esto podría incluir una agrupación, por ejemplo, llamada "Setup" o "Render World".
Si los marcadores de depuración están habilitados, haz clic en el panel Commands para revelar un vínculo a esta información. OpenGL ES cuenta con las siguientes APIs para agrupar comandos:
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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()` |"]]