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




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. |

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