检查 Vulkan 渲染状态

要检查在提交特定命令后渲染的状态,请单击 命令窗格中的命令。状态窗格允许你使用以下项目检查渲染状态。

alt text

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

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

alt text

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

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

最后的绘制信息(当前渲染状态信息)

LastDrawInfos 节点包含每个 VkQueue 的最后绘制信息,包括以下信息

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

绑定帧缓冲区

alt text

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

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

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

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

绑定渲染通道

alt text

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

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

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

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

绑定描述符集

alt text

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

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

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

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

绑定图形管道

alt text

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

绑定缓冲区

alt text

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

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

绘制命令参数

alt text

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