【发布时间】:2019-11-05 16:59:04
【问题描述】:
我正在学习 Vulkan,我刚刚使用原始 ImGui 存储库中的 Vulkan-GLFW 示例将 ImGui 集成到我的代码中,并且效果很好。
现在我想在屏幕上同时渲染 GUI 和我的 3D 模型,由于 GUI 和模型肯定需要不同的着色器,我需要使用多个管道并提交多个命令。 GUI 是部分透明的,所以我希望它在模型之后呈现。 Vulkan 规范指出命令的执行顺序不太可能是我记录命令的顺序,因此我需要某种同步。在this Reddit post 中提出了几种完全实现我的目标的方法,我曾经认为我必须使用多个子通道(连同子通道依赖)或屏障或其他类似的同步方法来解决这个问题。
然后我查看了SaschaWillems' Vulkan examples,虽然在 ImGui 示例中,我看到两个绘制调用之间没有同步,它只是先记录绘制模型的命令,然后记录绘制 GUI 的命令。
我很困惑。在这种情况下真的需要同步,还是我误解了命令重新排序或混合的一些内容?谢谢。
【问题讨论】:
标签: c++ synchronization rendering vulkan