Ngăn lệnh

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.

Chế độ xem ban đầu của dấu vết OpenGL hoặc Vulkan
Hình 1. Chế độ xem ban đầu của dấu vết OpenGL hoặc Vulkan
Xem dấu vết OpenGL
Hình 2. Xem dấu vết OpenGL
Xem dấu vết Vulkan
Hình 3. Xem dấu vết Vulkan
Xem dấu vết Vulkan
Hì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()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.
PHỤ ĐỀ

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:

TIỆN ÍCH / PHIÊN BẢN PUSH POP
KHR_debug glPushDebugGroupKHR() glPopDebugGroupKHR()
EXT_debug_marker String String
OpenGL ES 3.2 String String

Vulkan có các API sau để nhóm các lệnh:

TIỆN ÍCH / PHIÊN BẢN PUSH POP
VK_EXT_debug_marker glPushDebugGroupKHR() glPopDebugGroupKHR()