Проверьте состояние рендеринга Vulkan

Чтобы проверить состояние рендеринга после конкретной отправленной команды, щелкните команду на панели «Команды» . Панель «Состояние» позволяет проверять состояние рендеринга с помощью следующих элементов.

alt text

Последняя связанная очередь (текущая связанная очередь)

Узел LastBoundQueue содержит информацию об очереди, используемой для vkQueueSubmit , которая отправляет рассматриваемую команду. VulkanHandle будет использоваться для поиска информации о текущем состоянии рендеринга в LastDrawInfos .

alt text

  1. VulkanHandle показывает значение последней использованной VkQueue , которая на самом деле является текущей привязанной очередью для отправленной команды.

  2. Информация о текущем состоянии рендеринга хранится в LastDrawInfos и индексируется значением VkQueue .

Информация о последнем розыгрыше (информация о текущем состоянии рендеринга)

Узел LastDrawInfos содержит информацию о последнем отрисовке для каждого VkQueue и включает следующую информацию:

  • Информация о фреймбуфере
  • Информация о проходе рендеринга
  • Связанные наборы дескрипторов
  • Связанные буферы вершин и индексов
  • Графический конвейер
  • Параметры рисования

Связанный фреймбуфер

alt text

  • Узел кадрового буфера : показывает информацию о текущем привязанном кадровом буфере. Этот узел обновляется после того, как каждый vkCmdBeginRenderPass выполняется в той же очереди.

  • Узел Renderpass : показывает информацию о проходе рендеринга, использованном для создания фреймбуфера. Обратите внимание, что это не проход рендеринга, предназначенный в настоящее время для рисования.

  • Узел ImageAttachments : перечисляет все вложения изображений ( VkImageViews ), привязанные к фреймбуферу. Каждый элемент списка показывает информацию о просмотре изображения.

  • Узел изображения показывает информацию об изображении, привязанную к представлению изображения.

Привязанный рендерпасс

alt text

  • Узел Renderpass : показывает информацию о средстве рендеринга, используемом в данный момент для рендеринга. Он обновляется после того, как каждый VkCmdBeginRenderPass выполняется в той же очереди.

  • Узел AttachmentDescriptions : перечисляет все VkAttachmentDescription текущего используемого прохода рендеринга.

  • Узел SubpassDescriptions : перечисляет VkSubpassDescription для каждого подпрохода.

  • Узел SubpassDependency : перечисляет VkSubpassDependency для каждого подпрохода.

Связанные наборы дескрипторов

alt text

  • Узел DescriptorSets : перечисляет все привязанные в данный момент наборы дескрипторов. Список ограниченных наборов дескрипторов отражает состояние после развертывания последнего vkCmdBindDescriptorSets в той же очереди, а исходная информация о наборе дескрипторов будет перезаписана или будет добавлена ​​новая информация в соответствии с параметрами последнего выполненного vkCmdBindDescriptorSets .

  • Bindings : узел перечисляет все текущие привязки дескриптора в наборе дескрипторов.

    Для каждой привязки дескриптора также перечислены связанные с ним дескрипторы.

  • Узел макета : показывает информацию VkDescriptorSetLayout используемую для выделения набора дескрипторов.

Привязанный графический конвейер

alt text

Узел GraphicsPipeline : содержит информацию о последнем связанном графическом конвейере. Этот узел обновляется после выполнения каждого VkCmdBindPipeline в текущей очереди.

Связанные буферы

alt text

  • Узел BoundVertexBuffers перечисляет все связанные буферы вершин. Для каждого связанного буфера вершин отображается информация о резервном буфере. Список обновляется соответствующим образом после того, как каждый vkCmdBindVertexBuffers выполняется в одной и той же очереди.

  • Узел BoundIndexBuffer показывает последний связанный буфер индекса, включая тип индекса и информацию о резервном буфере.

Параметры команды рисования

alt text

Узел CommandParameters : содержит параметры vkCmdDraw , vkCmdDrawIndexed , vkCmdDrawIndirect и vkCmdDrawIndirectIndexed . Для каждого типа команды рисования существует соответствующий подузел, содержащий значения параметров. Поскольку эти четыре типа команд рисования не могут использоваться одновременно, одновременно может быть заполнен только один из четырех подузлов. Содержимое CommandParameters обновляется после выполнения любой из четырех команд рисования в одной очереди.