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