命令面板显示应用程序发出的调用,按帧和绘图调用或用户标记进行分组。
操作
您可以在此面板中执行以下操作
操作 | 描述 |
---|---|
显示结果 | 单击命令或组以更新其他面板,以反映所选命令或组之后的状态。 |
展开或折叠命令层次结构 | 单击分组左侧的灰色三角形,或双击分组以展开或折叠它。 |
搜索 | 在面板顶部的搜索栏中键入字符串,然后按回车键(请参阅前面的图像)。要查找下一个出现的位置,请确保选中该栏,然后再次按回车键。 选中正则表达式框以使用正则表达式搜索模式。例如, glClear.* 匹配两个命令 glClear() 和 glClearColor() 。您还可以搜索命令参数值,例如缓冲区:2 ,它用于 glBindBuffer()。 |
编辑 | 右键单击命令并选择编辑。在编辑对话框中,更改一个或多个值,然后单击确定。注意:这仅对 Vulkan 命令有效,对 OpenGL 命令无效。 |
查看状态或内存信息 | 单击引用状态参数(例如纹理 ID)的命令参数。状态面板将显示其他信息。单击内存地址或指针以打开内存面板。注意:这仅对 Vulkan 命令有效,对 OpenGL 命令无效。 |
复制命令 | 选择面板中的项目,然后按 Control+C(或 Command+C)以复制其参数值的命令。您可以将此信息粘贴到文本文件中。 |
放大缩略图 | 缩略图显示在调用的左侧,如下面的图像所示。将光标悬停在缩略图上以放大它。 |
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() |