C++ 使用Vulkan信号量等待vkCmdCopyBuffer
我有两个命令缓冲区cb1、cb2,我使用信号量来确保cb2的执行等待cb1的执行。两个命令缓冲区以批方式提交到同一队列 cb1中只有一个vkCmdCopyBuffer命令C++ 使用Vulkan信号量等待vkCmdCopyBuffer,c++,c,vulkan,C++,C,Vulkan,我有两个命令缓冲区cb1、cb2,我使用信号量来确保cb2的执行等待cb1的执行。两个命令缓冲区以批方式提交到同一队列 cb1中只有一个vkCmdCopyBuffer命令 信号量是否足以保证cb2仅在vkCmdCopyBuffer完成内存传输后运行,或者我应该在vkCmdCopyBuffer之后的cb1中添加一个barrier命令?通常不需要单个队列中的信号量,它们主要用于跨队列同步。如果在同一批中提交两个命令缓冲区(相同的VkSubmitInfo),实际上,您不能使用信号量,因为信号量在批中的
信号量是否足以保证cb2仅在vkCmdCopyBuffer完成内存传输后运行,或者我应该在vkCmdCopyBuffer之后的cb1中添加一个barrier命令?通常不需要单个队列中的信号量,它们主要用于跨队列同步。如果在同一批中提交两个命令缓冲区(相同的
VkSubmitInfo
),实际上,您不能使用信号量,因为信号量在批中的任何命令缓冲区启动之前等待,并在批中的所有命令缓冲区完成后发出信号
对于队列中的执行和内存依赖项,通常需要管道屏障或SetEvent/WaitEvent对。通常不需要单个队列中的信号量,它们主要用于跨队列同步。如果在同一批中提交两个命令缓冲区(相同的
VkSubmitInfo
),实际上,您不能使用信号量,因为信号量在批中的任何命令缓冲区启动之前等待,并在批中的所有命令缓冲区完成后发出信号
对于队列中的执行和内存依赖关系,通常需要管道屏障或SetEvent/WaitEvent对。Ok信号量仅在多个vksubmit调用之间使用。感谢这一重要的澄清。Ok信号量只能在多个vksubmit调用之间使用。感谢您的重要澄清。