是否可以对所有 VkFramebuffer 只使用一个 VkCommandBuffer

Is it possible to use only one VkCommandBuffer for all VkFramebuffer

当我阅读 Vulkan 示例代码时。它有 2 或 3 个 SwapchainImageResources。每个 SwapchainImageResources 都有一个帧缓冲区。然后对于每个 VkFramebuffer,示例代码创建一个 VkCommandBuffer。

VkCommandBuffer 的一项工作是通过 Render Pass 实例(即 vkCmdBeginRenderPass)确定 VkFramebuffer

所以:没有。除非你重新计算同一个VkCommandBuffer点播,当你需要改成VkFramebuffer.

Vulkan 的魅力之一是它试图创建固态对象,很少引入移动部件。它有助于对 Vulkan 进行推理(特别是在多线程环境中,也可能有助于使驱动程序更简单),但有时不得不编写更多代码(即销毁并重新创建一个只需要修改的对象)。它需要一些时间来适应...