检查 Vulkan 渲染状态

如需在提交特定命令后查看渲染状态,请点击命令窗格中的相应命令。在 State 窗格中,您可以使用以下各项检查渲染状态。

替代文本

上次绑定队列(当前绑定的队列)

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

替代文本

  1. VulkanHandle 会显示上次使用的 VkQueue 的值,该值实际上是所提交相关命令的当前绑定队列。

  2. 当前渲染状态的信息存储在 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 后,此节点都会更新。

绑定缓冲区

替代文本

  • BoundVertexBuffers 节点会列出所有绑定的顶点缓冲区。对于每个绑定顶点缓冲区,它会显示后备缓冲区的信息。对同一队列执行每个 vkCmdBindVertexBuffers 后,列表会相应地进行更新。

  • BoundIndexBuffer 节点显示最后一个绑定索引缓冲区,包括索引类型和后备缓冲区的信息。

绘制命令参数

替代文本

CommandParameters 节点:包含 vkCmdDrawvkCmdDrawIndexedvkCmdDrawIndirectvkCmdDrawIndirectIndexed 的参数。对于每种类型的绘制命令,都有一个包含参数值的相应子节点。由于这四种绘制命令不能同时使用,因此一次只能填充四个子节点中的一个。在同一队列中执行四个绘制命令中的任意一个后,CommandParameters 的内容会更新。