【发布时间】:2019-07-29 16:56:22
【问题描述】:
假设我提交两个命令缓冲区修改同一个纹理,从同一个队列生成:
var a: MTLCommandBuffer
var b: MTLCommandBuffer
...
a.commit()
b.commit()
然后,假设我等待第二个完成:
b.waitUntilCompleted()
b 有可能在a 之前完成吗?根据commit() 的文档,
命令缓冲区在同一个命令队列中排在它之前的任何命令缓冲区之后执行
这是否意味着 b 将在 a 完成后完成执行,还是在 a 开始执行后才开始执行?
【问题讨论】:
-
这不是您问题的真正答案,但是您有充分的理由使用两个命令缓冲区吗?你不能把所有的工作都编码到同一个命令缓冲区中吗?