在这种情况下,我的所有管道都可以在单个命令缓冲区上运行,除了两个计算内核外。我必须检查最后一个内核的结果才能对命令A或命令B进行编码。
伪代码流:
Command Buffer 1: commandEncoder1 -> dispatchThreads , commandEncoder2 -> dispatchThreads
Check output of commandEncoder2, if it is 1 then commandEncoder3 -> dispatchThreads else commandEncoder4->dispatchThreads.
现在,我必须在CommandBuffer1上等待,检查结果并根据来自commandEncoder2的结果使用commandEncoder3或commandEncoder4启动新的CommandBuffer。
是否有一种无需提交命令缓冲区即可执行相同操作的方法?从提交到分派新的commandBuffer大约要花3.2毫秒,我真的需要3.2毫秒来加快处理速度。