Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Il riquadro Comandi mostra le chiamate effettuate dall'applicazione, raggruppate per frame e disegna chiamate o per indicatori utente.
Figura 1. Visualizzazione iniziale di una traccia OpenGL o VulkanFigura 2. Visualizzazione di una traccia OpenGLFigura 3. Visualizzazione di una traccia VulkanFigura 4. Ricerca di un comando in una traccia Vulkan
Fasi operative
In questo riquadro puoi eseguire le seguenti operazioni:
Funzionamento
Descrizione
Mostra risultato
Fai clic su un comando o un gruppo per aggiornare gli altri riquadri in modo che riflettano lo stato dopo il comando o il gruppo selezionato.
Espandere o comprimere la gerarchia di comandi
Fai clic sul triangolo grigio a sinistra di un raggruppamento oppure fai doppio clic sul raggruppamento per espanderlo o comprimerlo.
Cerca
Digita una stringa nella barra di ricerca che si trova nella parte superiore del riquadro, quindi premi Invio (vedi l'immagine precedente). Per trovare l'occorrenza successiva, assicurati che la barra sia selezionata e premi di nuovo Invio.
Seleziona la casella Espressione regolare per utilizzare un pattern di ricerca basato su espressioni regolari.
Ad esempio, glClear.* corrisponde a entrambi i comandi glClear() e glClearColor(). Puoi anche cercare i valori dei parametri di comando, come il buffer 2, utilizzato in glBindBuffer().
Modifica
Fai clic con il pulsante destro del mouse su un comando e seleziona Modifica. Nella finestra di dialogo Modifica, modifica uno o più valori e fai clic su OK.
Nota: è valido solo per i comandi Vulkan e non per i comandi OpenGL.
Visualizza informazioni su stato o memoria
Fai clic su un argomento del comando che fa riferimento a un parametro di stato, come un ID texture. Il riquadro Stato mostra ulteriori informazioni.
Fai clic su un indirizzo o un puntatore in memoria per aprire il riquadro Memoria.
Nota: è valido solo per i comandi Vulkan e non per i comandi OpenGL.
Copia comandi
Seleziona gli elementi nel riquadro e premi Ctrl + C (o Comando + C) per copiare i comandi con i relativi valori di argomento. Puoi incollare queste informazioni in un file di testo.
Ingrandisci miniatura
La miniatura viene visualizzata a sinistra di una chiamata, come mostrato nell'immagine seguente. Passa il cursore sulla miniatura per ingrandirla.
Gerarchia di comandi OpenGL ES
I comandi OpenGL ES vengono tradotti in Vulkan e i comandi Vulkan vengono analizzati. Di conseguenza, i comandi OpenGL ES vengono mostrati con i comandi OpenGL ES e Vulkan nella gerarchia espansa. Nell'esempio precedente, puoi vedere più comandi glDrawElement in RenderPass. La seconda gerarchia di comandi glDrawElements è stata espansa e mostra i comandi OpenGL ES e DrawIndexed. Puoi espandere entrambe le gerarchie per visualizzare i comandi OpenGL ES correlati e i comandi Vulkan in cui sono stati tradotti.
Poiché non esiste una relazione one-to-one tra OpenGL ES e Vulkan,
potrebbero esserci alcune differenze. Ad esempio, un comando glClear che si verifica
prima che il primo comando glDraw* compaia prima di RenderPass. Se espandi la gerarchia di glClear, non ci saranno comandi Vulkan. Questo perché
l'autorizzazione verrà differita e completata nell'ambito dell'avvio di Vulkan RenderPass.
Indicatori di debug
A seconda dell'applicazione, il riquadro Comandi può contenere un lungo elenco di comandi all'interno di un frame. Per migliorare la navigazione e la leggibilità, puoi definire indicatori di debug che raggruppano le chiamate sotto un'intestazione dell'albero. Potrebbe essere incluso un raggruppamento, ad esempio, denominato "Configurazione" o "Render World".
Se gli indicatori di debug sono attivati, fai clic sul riquadro Comandi per visualizzare un
link a queste informazioni. OpenGL ES dispone delle seguenti API per raggruppare i comandi:
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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()` |"]]