Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W panelu Polecenia wyświetlają się wywołania wykonane przez aplikację, pogrupowane według klatki i wywołania rysowania lub według znaczników użytkownika.
Rysunek 1. Widok początkowy śladu OpenGL lub VulkanIlustracja 2. Wyświetlanie śladu OpenGLRysunek 3. Wyświetlanie śladu VulkanaRysunek 4. Wyszukiwanie polecenia w śladzie Vulkan
Zarządzanie
W tym panelu możesz wykonywać te działania:
Operacja
Opis
Pokaż wynik
Kliknij polecenie lub grupę, aby zaktualizować pozostałe panele i odzwierciedlić stan po wybranym poleceniu lub grupie.
Rozwijanie i zwijanie hierarchii poleceń
Kliknij szary trójkąt po lewej stronie grupy lub kliknij ją dwukrotnie, aby ją rozwinąć lub zwinąć.
Szukaj
Wpisz ciąg znaków na pasku wyszukiwania u góry okienka, a potem naciśnij Return (patrz poprzedni obraz). Aby znaleźć kolejne wystąpienie, upewnij się, że pasek jest zaznaczony, i ponownie naciśnij Return.
Zaznacz pole Wyrażenie regularne, aby użyć wzorca wyszukiwania wyrażeń regularnych.
Na przykład glClear.* pasuje do poleceń glClear() i glClearColor(). Możesz też wyszukiwać wartości parametrów poleceń, np. buffer: 2, który jest używany w glBindBuffer().
Edytuj
Kliknij polecenie prawym przyciskiem myszy i wybierz Edytuj. W oknie dialogowym Edytuj zmień co najmniej jedną wartość i kliknij OK.
Uwaga: dotyczy to tylko poleceń Vulkan, a nie poleceń OpenGL.
Wyświetlanie informacji o stanie lub pamięci
Kliknij argument polecenia, który odnosi się do parametru stanu, np. identyfikator tekstury. W panelu Stan wyświetlają się dodatkowe informacje.
Kliknij adres lub wskaźnik pamięci, aby otworzyć panel Pamięć.
Uwaga: dotyczy to tylko poleceń Vulkan, a nie poleceń OpenGL.
Kopiowanie poleceń
Wybierz elementy w panelu i naciśnij Ctrl+C (lub Command+C), aby skopiować polecenia wraz z wartościami argumentów. Możesz wkleić te informacje do pliku tekstowego.
Powiększanie miniatury
Miniatura pojawia się po lewej stronie połączenia, jak pokazano na poniższym obrazie. Najedź kursorem na miniaturę, aby ją powiększyć.
Hierarchia poleceń OpenGL ES
Polecenia OpenGL ES są tłumaczone na polecenia Vulkan, a te polecenia są analizowane. W efekcie polecenia OpenGL ES są wyświetlane razem z poleceniami OpenGL ES i Vulkan w rozwiniętej hierarchii. W poprzednim przykładzie w sekcji RenderPass widać kilka poleceń glDrawElement. Rozwinięto drugą hierarchię poleceńglDrawElements, która zawiera polecenia OpenGL ES i DrawIndexed. Możesz rozwinąć obie te hierarchie, aby wyświetlić powiązane polecenia OpenGL ES oraz polecenia Vulkan, na które zostały przetłumaczone.
Ze względu na brak bezpośredniego przełożenia między OpenGL ES a Vulkan mogą występować pewne różnice. Na przykład polecenie glClear, które występuje przed pierwszym poleceniem glDraw*, pojawia się przed poleceniem RenderPass. Jeśli rozwiniesz hierarchię glClear, nie zobaczysz żadnych poleceń Vulkana. Dzieje się tak, ponieważ czyszczenie jest odroczone i wykonywane w ramach uruchamiania platformy Vulkan RenderPass.
Znaczniki debugowania
W zależności od aplikacji panel Polecenia może zawierać bardzo długą listę poleceń w jednej ramce. Aby ułatwić nawigację i czytelność, możesz zdefiniować znaczniki debugowania, które grupują wywołania pod nagłówkiem w drzewie. Może to być np. grupa o nazwie „Konfiguracja” lub „Renderowanie świata”.
Jeśli znaczniki debugowania są włączone, kliknij panel Polecenia, aby wyświetlić link do tych informacji. OpenGL ES ma te interfejsy API do grupowania poleceń:
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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()` |"]]