Volet des commandes

Le volet "Commandes" affiche les appels effectués par l'application, regroupés par frame et appel de dessin ou par repères utilisateur.

Vue initiale d'une trace OpenGL ou Vulkan
Figure 1 Vue initiale d'une trace OpenGL ou Vulkan
Afficher une trace OpenGL
Figure 2. Afficher une trace OpenGL
Afficher une trace Vulkan
Figure 3. Afficher une trace Vulkan
Afficher une trace Vulkan
Figure 4. Rechercher une commande dans une trace Vulkan

Opérations

Dans ce volet, vous pouvez effectuer les opérations suivantes :

Conditions de fonctionnement Description
Afficher le résultat Cliquez sur une commande ou un groupe pour mettre à jour les autres volets et refléter l'état après la commande ou le groupe sélectionnés.
Développer ou réduire la hiérarchie des commandes Cliquez sur le triangle gris à gauche d'un regroupement ou double-cliquez sur le regroupement pour le développer ou le réduire.
Recherche Saisissez une chaîne dans la barre de recherche en haut du volet, puis appuyez sur Retour (voir l'image précédente). Pour trouver la prochaine occurrence, assurez-vous que la barre est sélectionnée, puis appuyez de nouveau sur Retour.

Cochez la case Expression régulière pour utiliser un modèle de recherche d'expression régulière. Par exemple, glClear.* correspond aux commandes glClear() et glClearColor(). Vous pouvez également rechercher des valeurs de paramètres de commande telles que buffer : 2, qui est utilisé dans glBindBuffer()..
Modifier Effectuez un clic droit sur une commande, puis sélectionnez Modifier. Dans la boîte de dialogue Modifier, modifiez une ou plusieurs valeurs, puis cliquez sur OK. Remarque : Cette méthode n'est valable que pour les commandes Vulkan, et non pour les commandes OpenGL.
Afficher l'état ou les informations sur la mémoire Cliquez sur un argument de commande qui fait référence à un paramètre d'état, tel qu'un ID de texture. Le volet État affiche des informations supplémentaires. Cliquez sur une adresse ou un pointeur de mémoire pour ouvrir le volet Mémoire. Remarque : Cette méthode n'est valable que pour les commandes Vulkan, et non pour les commandes OpenGL.
Commandes de copie Sélectionnez des éléments dans le volet et appuyez sur Ctrl+C (ou Cmd+C) pour copier les commandes avec leurs valeurs d'arguments. Vous pouvez coller ces informations dans un fichier texte.
Agrandir la miniature La miniature s'affiche à gauche d'un appel, comme illustré dans l'image suivante. Pointez sur la vignette pour l'agrandir.
LÉGENDE

Hiérarchie des commandes OpenGL ES

Les commandes OpenGL ES sont traduites en commandes Vulkan, qui sont ensuite analysées. Par conséquent, les commandes OpenGL ES sont affichées avec les commandes OpenGL ES et Vulkan dans la hiérarchie développée. Dans l'exemple précédent, vous pouvez voir plusieurs commandes glDrawElement sous RenderPass. La hiérarchie de la deuxième commande glDrawElements a été développée et affiche Commandes OpenGL ES et DrawIndexed. Vous pouvez développer ces deux hiérarchies pour afficher les commandes OpenGL ES associées, ainsi que les commandes Vulkan dans lesquelles elles ont été traduites.

Comme il n'existe pas de relation directe entre OpenGL ES et Vulkan, il peut y avoir des différences. Par exemple, une commande glClear qui se produit avant la première commande glDraw* apparaît avant un RenderPass. Si vous développez la hiérarchie de glClear, aucune commande Vulkan ne s'affichera. En effet, l'effacement sera différé et effectué lors du démarrage de l'RenderPass Vulkan.

Repères de débogage

Selon votre application, le volet Commandes peut contenir une très longue liste de commandes dans un même frame. Pour améliorer la navigation et la lisibilité, vous pouvez définir des repères de débogage qui regroupent les appels sous un titre dans l'arborescence. Il peut s'agir d'un regroupement, par exemple "Configuration" ou "Rendu du monde".

Si les repères de débogage sont activés, cliquez sur le volet Commandes pour afficher un lien vers ces informations. OpenGL ES dispose des API suivantes pour regrouper les commandes :

EXTENSION / VERSION PUSH accès POP
KHR_debug glPushDebugGroupKHR() glPopDebugGroupKHR()
EXT_debug_marker String String
OpenGL ES 3.2 String String

Vulkan dispose des API suivantes pour regrouper les commandes :

EXTENSION / VERSION PUSH accès POP
VK_EXT_debug_marker glPushDebugGroupKHR() glPopDebugGroupKHR()