Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Ngăn Lệnh hiển thị các lệnh gọi do ứng dụng thực hiện, được nhóm theo khung hình và lệnh gọi vẽ hoặc theo điểm đánh dấu của người dùng.
Hình 1. Chế độ xem ban đầu của dấu vết OpenGL hoặc VulkanHình 2. Xem dấu vết OpenGLHình 3. Xem dấu vết VulkanHình 4. Tìm kiếm một lệnh trong dấu vết Vulkan
Hoạt động tính toán
Bạn có thể thực hiện các thao tác sau trong ngăn này:
Hoạt động
Mô tả
Hiện kết quả
Nhấp vào một lệnh hoặc nhóm để cập nhật các ngăn khác nhằm phản ánh trạng thái sau lệnh hoặc nhóm đã chọn.
Mở rộng hoặc thu gọn hệ phân cấp lệnh
Nhấp vào hình tam giác màu xám ở bên trái một nhóm hoặc nhấp đúp vào nhóm đó để mở rộng hoặc thu gọn.
Tìm kiếm
Nhập một chuỗi vào thanh tìm kiếm ở đầu ngăn, rồi nhấn phím Return (xem hình ảnh trước đó). Để tìm lần xuất hiện tiếp theo, hãy đảm bảo bạn đã chọn thanh này rồi nhấn lại phím Return.
Chọn hộp Regex (Biểu thức chính quy) để sử dụng một quy luật tìm kiếm dạng biểu thức chính quy.
Ví dụ: glClear.* khớp với cả lệnh glClear() và glClearColor(). Bạn cũng có thể tìm kiếm các giá trị tham số lệnh, chẳng hạn như vùng đệm: 2, được dùng trong glBindBuffer().
Chỉnh sửa
Nhấp chuột phải vào một lệnh rồi chọn Chỉnh sửa. Trong hộp thoại Chỉnh sửa, hãy thay đổi một hoặc nhiều giá trị rồi nhấp vào OK.
Lưu ý: Điều này chỉ hợp lệ cho các lệnh Vulkan, chứ không hợp lệ cho các lệnh OpenGL.
Xem thông tin về trạng thái hoặc bộ nhớ
Nhấp vào một đối số lệnh đề cập đến một tham số trạng thái, chẳng hạn như mã nhận dạng kết cấu. Ngăn Trạng thái hiển thị thông tin bổ sung.
Nhấp vào một địa chỉ hoặc con trỏ bộ nhớ để mở ngăn Bộ nhớ.
Lưu ý: Điều này chỉ hợp lệ cho các lệnh Vulkan, chứ không hợp lệ cho các lệnh OpenGL.
Sao chép lệnh
Chọn các mục trong ngăn rồi nhấn tổ hợp phím Control+C (hoặc Command+C) để sao chép các lệnh cùng với giá trị đối số của chúng. Bạn có thể dán thông tin này vào một tệp văn bản.
Phóng to hình thu nhỏ
Hình thu nhỏ xuất hiện ở bên trái cuộc gọi như trong hình sau. Di con trỏ lên hình thu nhỏ để phóng to.
Hệ phân cấp lệnh OpenGL ES
Các lệnh OpenGL ES được dịch sang Vulkan và các lệnh Vulkan được phân tích. Do đó, các lệnh OpenGL ES sẽ xuất hiện cùng với cả lệnh OpenGL ES và Vulkan trong hệ thống phân cấp mở rộng. Trong ví dụ trước, bạn có thể thấy nhiều lệnh glDrawElement trong RenderPass. Hệ thống đã mở rộng hệ phân cấp lệnh glDrawElements thứ hai và cho thấy OpenGL ES Commands (Lệnh OpenGL ES) và DrawIndexed (Vẽ theo chỉ mục). Bạn có thể mở rộng cả hai hệ thống phân cấp này để hiện các lệnh OpenGL ES có liên quan, cũng như các lệnh Vulkan mà chúng được chuyển đổi thành.
Vì không có mối quan hệ tương ứng giữa OpenGL ES và Vulkan, nên có thể có một số điểm khác biệt. Ví dụ: lệnh glClear xảy ra trước lệnh glDraw* đầu tiên sẽ xuất hiện trước RenderPass. Nếu bạn mở rộng hệ phân cấp của glClear, sẽ không có lệnh Vulkan nào. Đó là do thao tác xoá sẽ bị hoãn lại và được thực hiện trong quá trình khởi động RenderPass Vulkan.
Điểm đánh dấu gỡ lỗi
Tuỳ thuộc vào ứng dụng của bạn, ngăn Commands (Lệnh) có thể chứa một danh sách rất dài các lệnh trong một khung hình. Để cải thiện khả năng điều hướng và khả năng đọc, bạn có thể xác định các điểm đánh dấu gỡ lỗi để nhóm các lệnh gọi lại với nhau trong một tiêu đề trên cây. Điều này có thể bao gồm một nhóm, ví dụ: được đặt tên là "Thiết lập" hoặc "Kết xuất thế giới".
Nếu bạn bật các điểm đánh dấu gỡ lỗi, hãy nhấp vào ngăn Lệnh để hiển thị một đường liên kết đến thông tin này. OpenGL ES có các API sau để nhóm các lệnh:
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 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()` |"]]