Synchronization 两个带信号量的命令缓冲区之间的vulkan同步

Synchronization 两个带信号量的命令缓冲区之间的vulkan同步,synchronization,vulkan,Synchronization,Vulkan,我试图用信号量同步两个命令缓冲区,但它不起作用 代码如下: queueSubmit(imageAvailable, cmd1Finished, cmd1); queueSubmit(cmd1Finished, renderFinished, cmd2); 第一个参数是要等待的信号量,第二个参数是要发送信号的信号量,第三个参数是命令缓冲区 在上面,生成的图像持续闪烁。然后我试试这个: queueSubmit(imageAvailable, cmd1Finished, cmd1); vkQueue

我试图用信号量同步两个命令缓冲区,但它不起作用

代码如下:

queueSubmit(imageAvailable, cmd1Finished, cmd1);
queueSubmit(cmd1Finished, renderFinished, cmd2);
第一个参数是要等待的信号量,第二个参数是要发送信号的信号量,第三个参数是命令缓冲区

在上面,生成的图像持续闪烁。然后我试试这个:

queueSubmit(imageAvailable, cmd1Finished, cmd1);
vkQueueWaitIdle(queue);
queueSubmit(cmd1Finished, renderFinished, cmd2);

这是正确的。然后我想问我是否遗漏了一些东西以使其正确。

您是否在提交中添加了正确的WaitStageMask?您可以发布更多详细信息吗?在您提供的详细级别上,您所做的是正确的,因此它要么是您忽略的细节中的错误,要么是驱动程序中的错误。另外,您能否解释一下为什么在同一队列中使用信号量?在我看来,举办一次活动更合适;然后可以在同一批中发送两个CBs。等待阶段是VK_管道_阶段_颜色_附件_输出_位。我以前从未使用过事件,因为信号量可以做到这一点,我想知道它为什么不工作。之后,我将尝试事件。