Check Vulkan render state
Stay organized with collections
Save and categorize content based on your preferences.
To check the render state after a specific submitted command, click the command
in the Commands pane. The State pane lets
you examine the render state using the following items.

Last bound queue (currently bound queue)
The LastBoundQueue node contains the information of the queue used for the
vkQueueSubmit
, which submits the command in question. The VulkanHandle
will
be used to find the drawing information of the current render state in
LastDrawInfos
.

The VulkanHandle
shows the value of the last used VkQueue
, which is
actually the currently bound queue for the submitted command in question.
The information of the current render state is stored in LastDrawInfos
,
and indexed by the VkQueue
value.
Last draw infos (current render state info)
The LastDrawInfos node contains the information of the last drawing for each
VkQueue
, and includes the following information:
- Framebuffer information
- Render pass information
- Bound descriptor sets
- Bound vertex and index buffers
- Graphics pipeline
- Drawing parameters
Bound Framebuffer

Framebuffer node: shows the info of the currently bound framebuffer.
This node gets updated after each vkCmdBeginRenderPass
executes on the
same queue.
Renderpass node: shows the info of the render pass used to create the
framebuffer. Note that this is not the render pass currently bound for
drawing.
ImageAttachments node: lists all the image attachments (VkImageViews
)
bound to the framebuffer. Each item of the list shows the info of the image
view.
Image node shows the info of the image bound to the image view.
Bound renderpass

Renderpass node: shows the info of the renderpass currently used for rendering. It gets updated after each VkCmdBeginRenderPass
executes on the same queue.
AttachmentDescriptions node: lists all the VkAttachmentDescription
of the current renderpass in use.
SubpassDescriptions node: lists the VkSubpassDescription
for each subpass.
SubpassDependencies node: lists the VkSubpassDependency
for each subpass.
Bound descriptor sets

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
.
Bindings: node lists all the currently bound descriptor bindings in the
descriptor set.
Each descriptor binding also lists its bound descriptors.
Layout node: shows the info of the VkDescriptorSetLayout
used to allocate the descriptor set.
Bound graphics pipeline

GraphicsPipeline
node: contains the info about the last bound graphics pipeline. This node gets updated after each VkCmdBindPipeline
executes on the current queue.
Bound Buffers

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.
BoundIndexBuffer
node shows the last bound index buffer, including the index type and the info of the backing buffer.
Draw Command Parameters

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.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-01-03 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-01-03 UTC."],[],[],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."]]