檢查 Vulkan 轉譯狀態
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
如要在特定的提交指令之後查看轉譯狀態,請按一下「Commands」(指令) 窗格中的指令。「State」窗格可讓您使用以下項目檢查轉譯狀態。

最後一個繫結佇列 (目前繫結的佇列)
LastBoundQueue 節點包含用於 vkQueueSubmit
的佇列資訊,藉此提交相關的指令。VulkanHandle
會用來尋找 LastDrawInfos
中目前算繪狀態的繪圖資訊。

VulkanHandle
會顯示上次使用的 VkQueue
值,這實際上是相關指令目前繫結的佇列。
目前轉譯狀態的資訊會儲存在 LastDrawInfos
中,並依 VkQueue
值建立索引。
上次繪製資訊 (目前轉譯狀態資訊)
LastDrawInfos 節點含有每個 VkQueue
的最後一個繪圖資訊,包含下列資訊:
- Framebuffer 資訊
- 算繪票證資訊
- 已繫結的描述元集
- 繫結頂點和索引緩衝區
- 圖形管線
- 繪製參數
繫結影格緩衝區

Framebuffer 節點:顯示目前繫結的 framebuffer 的資訊。
每次 vkCmdBeginRenderPass
在同一個佇列上執行之後,這個節點都會更新。
Renderpass 節點:顯示用來建立影格緩衝區的轉譯傳遞資訊。請注意,這並非目前繫結的算繪傳遞。
ImageAttachments 節點:列出繫結至 framebuffer 的所有圖片附件 (VkImageViews
)。清單的每個項目都會顯示圖片檢視的資訊。
「Image」節點會顯示與圖片檢視畫面繫結的圖片資訊。
邊界算繪通道

Renderpass 節點:顯示目前用於轉譯的轉譯通道資訊。每次在相同佇列上執行每個 VkCmdBeginRenderPass
後,這個例項都會更新。
AttachmentDescriptions 節點:列出目前使用中的轉譯通道所有 VkAttachmentDescription
。
SubpassDescriptions 節點:列出每個子類別的 VkSubpassDescription
。
SubpassDependencies 節點:列出每個子傳遞的 VkSubpassDependency
。
已繫結的描述元集

DescriptorSet 節點:列出所有目前繫結的描述元集。繫結的描述元集清單反映最後一個 vkCmdBindDescriptorSets
發布到相同佇列之後的狀態,系統會覆寫原始描述元集資訊,或根據上次執行 vkCmdBindDescriptorSets
的參數新增資訊。
繫結:節點會列出描述元集中目前繫結的所有描述元繫結。
每個描述元繫結也會列出其繫結的描述元。
「Layout」節點:顯示用於分配描述元集的 VkDescriptorSetLayout
資訊。
已繫結的圖形管線

GraphicsPipeline
節點:包含最後一個繫結的圖形管道相關資訊。每次在目前佇列上執行每個 VkCmdBindPipeline
後,這個節點都會更新。
繫結緩衝區

繪製指令參數

CommandParameters 節點:包含 vkCmdDraw
、vkCmdDrawIndexed
、vkCmdDrawIndirect
和 vkCmdDrawIndirectIndexed
的參數。每種繪圖指令都有對應的子節點,當中包含參數值。由於無法同時使用這四種繪圖指令,一次只能填入四個子節點的其中之一。在同一個佇列中執行四個繪圖指令之一之後,CommandParameters 的內容會更新。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[null,null,["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],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."]]