代码之家  ›  专栏  ›  技术社区  ›  damix911

在LunarG的教程中使用VK\u PIPELINE\u STAGE\u BOTTOM\u of \u PIPE\u BIT

  •  1
  • damix911  · 技术社区  · 6 年前

    我很难理解为什么在LunarG教程中他们会使用 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT 对于队列提交中的等待信号量。看到了吗 section 15 of the tutorial .

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

    另请参见 this answer to another question VK\管道\阶段\管道底部\钻头 对于第二个同步上下文(类似地 VK_PIPELINE_STAGE_TOP_OF_PIPE 对于第一个同步上下文没有意义)。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Jesse Hall    6 年前

    你说得对,使用 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT 因为等待信号量的等待阶段是错误的。应该是的 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT 或更早,使布局过渡(从 VK_IMAGE_LAYOUT_UNDEFINED VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL 在renderpass的开头)和write到片段的颜色输出被阻塞,直到信号量发出信号为止。

        2
  •  2
  •   Karl Schultz    6 年前

    编辑:修复拼写。