Panel de comandos

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.

Vista inicial de un seguimiento de OpenGL o Vulkan
Figura 1: Vista inicial de un seguimiento de OpenGL o Vulkan
Cómo ver un seguimiento de OpenGL
Figura 2: Visualización de un registro de OpenGL
Cómo ver un registro de Vulkan
Figura 3: Visualización de un registro de Vulkan
Cómo ver un registro de Vulkan
Figura 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.
LEYENDA

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:

EXTENSIÓN / VERSIÓN ENVIAR POP
Depuración de KHR glPushDebugGroupKHR() glPopDebugGroupKHR()
EXT_debug_marker (marcador de depuración de EXT) String String
OpenGL ES 3.2 String String

Vulkan tiene las siguientes APIs para agrupar comandos:

EXTENSIÓN / VERSIÓN ENVIAR POP
VK_EXT_debug_marker glPushDebugGroupKHR() glPopDebugGroupKHR()