vulkan - 在 Vulkan 中重新提交待处理命令缓冲区的用例是什么

标签 vulkan

VkCommandBufferBeginInfo 的标志之一是 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,规范描述为

specifies that a command buffer can be resubmitted to a queue while it is in the pending state, and recorded into multiple primary command buffers.

根据我有限的经验,我为交换链中的每个图像创建了单独的命令缓冲区,因为每个命令缓冲区都写入不同的帧缓冲区,因此我不需要在命令缓冲区处于挂起状态时尝试重新提交命令缓冲区.

当您想要设置 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT 标志并重新提交待处理的命令缓冲区时,有哪些用例?

最佳答案

该功能主要适用于渲染静态场景或渲染差异由内存操作定义的情况。尽管即使是后一种情况也适用,但您必须在最后一帧的渲染、内存操作和下一帧的渲染之间实现某种同步(大多数仅内存渲染器对内存进行双缓冲,这样就可以读取一个内存对象,同时为下一帧修改另一个内存对象)。

关于vulkan - 在 Vulkan 中重新提交待处理命令缓冲区的用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62055029/

相关文章:

c++ - 怎么能不对 C++ 结构布局做出假设呢?

c++ - 描述多 channel 渲染的附件

directx-12 - DirectX 12/Mantle/Vulkan 和 HSA

glsl - 插入几何着色器中的常数限制?

glsl - Vulkan 是否支持着色器中的原子浮点操作?

c++ - 在结构中使用 Vulkan 唯一句柄会导致 "implicitly deleted"错误

graphics - 为什么 vkAcquireNextImageKHR() 从不阻塞我的线程?

vulkan - 如何让 Vulkan API 在 Google Colab 中运行

nvidia - vkCmdBlitImage 中的段错误

vulkan - 是否可以在 Vulkan 中不使用 Surface 进行屏幕外渲染?