检查 Vulkan 渲染状态

要检查特定提交命令后的渲染状态,请点击命令面板中的相应命令。状态面板允许您使用以下项检查渲染状态。

alt text

最后绑定队列(当前绑定队列)

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

alt text

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

  2. 当前渲染状态的信息存储在 LastDrawInfos 中,并按 VkQueue 值索引。

上次绘制信息(当前渲染状态信息)

LastDrawInfos 节点包含每个 VkQueue 的最后一次绘图信息,包括以下内容:

  • 帧缓冲区信息
  • 渲染通道信息
  • 绑定描述符集
  • 绑定顶点和索引缓冲区
  • 图形管道
  • 绘图参数

绑定帧缓冲区

alt text

  • Framebuffer 节点:显示当前绑定帧缓冲区的信息。此节点在每次 vkCmdBeginRenderPass 在同一队列上执行后更新。

  • Renderpass 节点:显示用于创建帧缓冲区的渲染通道信息。请注意,这并非当前用于绘图的绑定渲染通道。

  • ImageAttachments 节点:列出绑定到帧缓冲区的所有图像附件 (VkImageViews)。列表的每个项都显示图像视图的信息。

  • Image 节点显示绑定到图像视图的图像信息。

绑定渲染通道

alt text

  • Renderpass 节点:显示当前用于渲染的渲染通道信息。它在每次 VkCmdBeginRenderPass 在同一队列上执行后更新。

  • AttachmentDescriptions 节点:列出当前正在使用的渲染通道的所有 VkAttachmentDescription

  • SubpassDescriptions 节点:列出每个子通道的 VkSubpassDescription

  • SubpassDependencies 节点:列出每个子通道的 VkSubpassDependency

绑定描述符集

alt text

  • DescriptorSets 节点:列出所有当前绑定的描述符集。绑定描述符集的列表反映了上次在同一队列上执行 vkCmdBindDescriptorSets 后的状态,原始描述符集信息将被覆盖或根据上次执行的 vkCmdBindDescriptorSets 的参数添加新信息。

  • Bindings:节点列出描述符集中所有当前绑定的描述符绑定。

    每个描述符绑定也列出其绑定的描述符。

  • Layout 节点:显示用于分配描述符集的 VkDescriptorSetLayout 信息。

绑定图形管道

alt text

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

绑定缓冲区

alt text

  • BoundVertexBuffers 节点列出所有绑定的顶点缓冲区。对于每个绑定的顶点缓冲区,它显示支持缓冲区的信息。该列表在每次 vkCmdBindVertexBuffers 在同一队列上执行后相应更新。

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

绘制命令参数

alt text

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