Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Le volet "Commandes" affiche les appels effectués par l'application, regroupés par frame et appel de dessin ou par repères utilisateur.
Figure 1 Vue initiale d'une trace OpenGL ou VulkanFigure 2. Afficher une trace OpenGLFigure 3. Afficher une trace VulkanFigure 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.
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 :
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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()` |"]]