检查 Vulkan 渲染状态
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
如需在提交特定命令后查看渲染状态,请点击命令窗格中的相应命令。在 State 窗格中,您可以使用以下各项检查渲染状态。

上次绑定队列(当前绑定的队列)
LastBoundQueue 节点包含用于提交相关命令的 vkQueueSubmit
的队列信息。VulkanHandle
将用于在 LastDrawInfos
中查找当前渲染状态的绘制信息。

VulkanHandle
会显示上次使用的 VkQueue
的值,该值实际上是所提交相关命令的当前绑定队列。
当前渲染状态的信息存储在 LastDrawInfos
中,并通过 VkQueue
值编入索引。
上次绘制信息(当前渲染状态信息)
LastDrawInfos 节点包含每个 VkQueue
的最后一个绘图的信息,包含以下信息:
- 帧缓冲区信息
- 渲染通道信息
- 绑定的描述符集
- 绑定顶点和索引缓冲区
- 图形管道
- 绘制参数
绑定帧缓冲区

Framebuffer 节点:显示当前绑定的帧缓冲区的信息。
在同一队列上执行每个 vkCmdBeginRenderPass
后,此节点会更新。
Renderpass 节点:显示用于创建帧缓冲区的渲染通道的信息。请注意,这不是当前用于绘制的渲染通道。
ImageAttachments 节点:列出绑定到帧缓冲区的所有图片附件 (VkImageViews
)。列表中的每一项都会显示图片视图的信息。
Image 节点显示绑定到图片视图的图片信息。
绑定的 renderpass

Renderpass 节点:显示当前用于渲染的 renderpass 的信息。该函数会在每个 VkCmdBeginRenderPass
在同一队列上执行后更新。
AttachmentDescriptions 节点:列出当前正在使用的 renderpass 的所有 VkAttachmentDescription
。
SubpassDescriptions 节点:列出每个子卡券的 VkSubpassDescription
。
SubpassDependencies 节点:列出每个子卡券的 VkSubpassDependency
。
绑定的描述符集

DescriptorSets 节点:列出当前绑定的所有描述符集。有边界描述符集的列表反映了最后一个 vkCmdBindDescriptorSets
在同一队列中发布之后的状态,并且原始描述符集信息将被覆盖,或者系统将根据上次执行的 vkCmdBindDescriptorSets
的参数添加新信息。
绑定:节点会列出描述符集中所有当前绑定的描述符绑定。
每个描述符绑定还会列出其绑定的描述符。
Layout 节点:显示用于分配描述符集的 VkDescriptorSetLayout
的信息。
绑定图形管道

GraphicsPipeline
节点:包含有关上次绑定图形管道的信息。在当前队列上执行每个 VkCmdBindPipeline
后,此节点都会更新。
绑定缓冲区

绘制命令参数

CommandParameters 节点:包含 vkCmdDraw
、vkCmdDrawIndexed
、vkCmdDrawIndirect
和 vkCmdDrawIndirectIndexed
的参数。对于每种类型的绘制命令,都有一个包含参数值的相应子节点。由于这四种绘制命令不能同时使用,因此一次只能填充四个子节点中的一个。在同一队列中执行四个绘制命令中的任意一个后,CommandParameters 的内容会更新。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],null,["# Check Vulkan render state\n\nTo check the render state after a specific submitted command, click the command\nin the [**Commands** pane](/agi/refdocs/commands-pane). The **State** pane lets\nyou examine the render state using the following items.\n\nLast bound queue (currently bound queue)\n----------------------------------------\n\nThe **LastBoundQueue** node contains the information of the queue used for the\n`vkQueueSubmit`, which submits the command in question. The `VulkanHandle` will\nbe used to find the drawing information of the current render state in\n`LastDrawInfos`.\n\n1. The `VulkanHandle` shows the value of the last used `VkQueue`, which is\n actually the currently bound queue for the submitted command in question.\n\n2. The information of the current render state is stored in `LastDrawInfos`,\n and indexed by the `VkQueue` value.\n\nLast draw infos (current render state info)\n-------------------------------------------\n\nThe **LastDrawInfos** node contains the information of the last drawing for each\n`VkQueue`, and includes the following information:\n\n- Framebuffer information\n- Render pass information\n- Bound descriptor sets\n- Bound vertex and index buffers\n- Graphics pipeline\n- Drawing parameters\n\n**Bound Framebuffer**\n\n- **Framebuffer** node: shows the info of the currently bound framebuffer.\n This node gets updated after each `vkCmdBeginRenderPass` executes on the\n same queue.\n\n- **Renderpass** node: shows the info of the render pass used to create the\n framebuffer. Note that this is not the render pass currently bound for\n drawing.\n\n- **ImageAttachments** node: lists all the image attachments (`VkImageViews`)\n bound to the framebuffer. Each item of the list shows the info of the image\n view.\n\n- **Image** node shows the info of the image bound to the image view.\n\n**Bound renderpass**\n\n- **Renderpass** node: shows the info of the renderpass currently used for rendering. It gets updated after each `VkCmdBeginRenderPass` executes on the same queue.\n\n- **AttachmentDescriptions** node: lists all the `VkAttachmentDescription` of the current renderpass in use.\n\n- **SubpassDescriptions** node: lists the `VkSubpassDescription` for each subpass.\n\n- **SubpassDependencies** node: lists the `VkSubpassDependency` for each subpass.\n\n**Bound descriptor sets**\n\n- **DescriptorSets** node: lists all the currently bound descriptor sets. The list of bounded descriptor sets reflect the state after the last `vkCmdBindDescriptorSets` being rolled out on the same queue, and the original descriptor set info will be overwritten or new info will be added according to the parameters of the last executed `vkCmdBindDescriptorSets`.\n\n- **Bindings**: node lists all the currently bound descriptor bindings in the\n descriptor set.\n\n Each descriptor binding also lists its bound descriptors.\n- **Layout** node: shows the info of the `VkDescriptorSetLayout` used to allocate the descriptor set.\n\n**Bound graphics pipeline**\n\n`GraphicsPipeline` node: contains the info about the last bound graphics pipeline. This node gets updated after each `VkCmdBindPipeline` executes on the current queue.\n\n**Bound Buffers**\n\n- **BoundVertexBuffers** node lists all the bound vertex buffers. For each bound vertex buffer, it shows the info of the backing buffer. The list gets updated accordingly after each `vkCmdBindVertexBuffers` executes on the same queue.\n\n- `BoundIndexBuffer` node shows the last bound index buffer, including the index type and the info of the backing buffer.\n\n**Draw Command Parameters**\n\n**CommandParameters** node: contains the parameters to `vkCmdDraw`, `vkCmdDrawIndexed`, `vkCmdDrawIndirect` and `vkCmdDrawIndirectIndexed`. For each type of drawing command, there is a corresponding sub-node to contains the parameter values. As these four types of drawining commands cannot be used at the same time, only one of the four sub-nodes can be populated at a time. The content of **CommandParameters** gets updated after any one of the four drawining commands being executed on the same queue."]]