LunarG教程中VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT的使用

时间:2018-09-03 00:24:57

标签: vulkan

我正在努力理解为什么他们在LunarG教程中为什么使用const data = {request_type:"load_data", start:1, end:50}; ... ... body: "request_type=load_data&start=1&end=50" 作为队列提交中的等待信号量。参见section 15 of the tutorial

它们还显示了用作屏障等待阶段的示例。

我告诉Vulkan在管道末端等待信号量的问题在于,它似乎允许执行所有阶段。实际上,因为帧缓冲区尚未准备好,所以除了顶点着色之外,您真的不应该做其他任何事情。

另请参见this answer to another question,这似乎同意VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT对第二个同步上下文没有意义(类似地,VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT对第一个同步上下文也没有意义。) / p>

2 个答案:

答案 0 :(得分:3)

您是正确的,使用VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT作为等待信号的等待阶段是错误的。它应该是VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT或更早的版本,以便布局过渡(在渲染通道开始时从VK_IMAGE_LAYOUT_UNDEFINEDVK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)和写入片段颜色输出被阻止,直到发信号为止

答案 1 :(得分:2)

感谢您指出此问题。我们已经更新了该教程,并且该更新将在不迟于下一个SDK版本的情况下出现在LunarXchange网站上。 编辑:修复拼写。