vulkan 如何确定 VkCommandBuffer 是否可以安全销毁?

vulkan how to determine if a VkCommandBuffer is safe to destroy?

所以在我 vkQueueSubmit 一个 VkCommandBuffer 之后,如果我不想 vkQueueWaitIdle[=13=,我怎么知道释放或重置该缓冲区是安全的]

这就是为什么队列提交操作通常有一个 VkFence。这会告诉您提交操作何时完成。当围栏发出信号时,您可以使用命令缓冲区做任何您想做的事情。

当然,为了避免不必要的缓冲区执行等待,您应该使用多个命令缓冲区。也就是说,在使用一个的同时,您可以为下一帧写入另一个。

提交命令缓冲区时将 VkFence 传递给 vkQueueSubmit。当围栏发出信号(vkWaitForFencesvkGetFenceStatus)时,释放或重置命令缓冲区是安全的。