命令面板

命令面板显示应用程序发出的调用,按帧和绘图调用或用户标记进行分组。

Initial View of either an OpenGL or Vulkan trace
图 1. OpenGL 或 Vulkan 跟踪的初始视图
Viewing an OpenGL trace
图 2. 查看 OpenGL 跟踪
Viewing a Vulkan trace
图 3. 查看 Vulkan 跟踪
Viewing a Vulkan trace
图 4. 在 Vulkan 跟踪中搜索命令

操作

您可以在此面板中执行以下操作

操作 描述
显示结果 单击命令或组以更新其他面板,以反映所选命令或组之后的状态。
展开或折叠命令层次结构 单击分组左侧的灰色三角形,或双击分组以展开或折叠它。
搜索 在面板顶部的搜索栏中键入字符串,然后按回车键(请参阅前面的图像)。要查找下一个出现的位置,请确保选中该栏,然后再次按回车键

选中正则表达式框以使用正则表达式搜索模式。例如,glClear.* 匹配两个命令 glClear()glClearColor()。您还可以搜索命令参数值,例如缓冲区:2,它用于 glBindBuffer()。
编辑 右键单击命令并选择编辑。在编辑对话框中,更改一个或多个值,然后单击确定。注意:这仅对 Vulkan 命令有效,对 OpenGL 命令无效。
查看状态或内存信息 单击引用状态参数(例如纹理 ID)的命令参数。状态面板将显示其他信息。单击内存地址或指针以打开内存面板。注意:这仅对 Vulkan 命令有效,对 OpenGL 命令无效。
复制命令 选择面板中的项目,然后按 Control+C(或 Command+C)以复制其参数值的命令。您可以将此信息粘贴到文本文件中。
放大缩略图 缩略图显示在调用的左侧,如下面的图像所示。将光标悬停在缩略图上以放大它。
CAPTION

OpenGL ES 命令层次结构

OpenGL ES 命令被转换为 Vulkan,然后分析 Vulkan 命令。因此,OpenGL ES 命令与展开的层次结构中显示的 Vulkan 命令一起显示。在前面的示例中,您可以在 RenderPass 下看到多个 glDrawElement 命令。第二个 glDrawElements 命令层次结构已展开,并显示OpenGL ES 命令DrawIndexed。您可以展开这两个层次结构以显示相关的 OpenGL ES 命令以及它们转换成的 Vulkan 命令。

由于 OpenGL ES 和 Vulkan 之间没有一对一的关系,因此可能存在一些差异。例如,在第一个 glDraw* 命令之前发生的 glClear 命令出现在 RenderPass 之前。如果展开 glClear 的层次结构,则不会有 Vulkan 命令。这是因为清除将被延迟,并在启动 Vulkan RenderPass 的过程中完成。

调试标记

根据您的应用,命令面板在一个帧内可能包含很长的命令列表。为了更好的导航和可读性,您可以定义调试标记,将调用组合在树中的标题下。这可能包括一个分组,例如名为“设置”或“渲染世界”。

如果启用了调试标记,请单击命令面板以显示此信息的链接。OpenGL ES 具有以下 API 来分组命令

扩展/版本 推送 弹出
KHR_debug glPushDebugGroupKHR() glPopDebugGroupKHR()
EXT_debug_marker 字符串 字符串
OpenGL ES 3.2 字符串 字符串

Vulkan 具有以下 API 来分组命令

扩展/版本 推送 弹出
VK_EXT_debug_marker glPushDebugGroupKHR() glPopDebugGroupKHR()