Vulkan命令执行顺序

时间:2016-03-10 07:33:46

标签: graphics vulkan

引用Vulkan 1.0规范文档,第5章(命令缓冲区)第4段,

“除非另有说明,否则没有显式同步,通过命令缓冲区提交给队列的各种命令可以相对于彼此以任意顺序执行,和/或同时执行”

在第2.1.1章(队列操作)的第1段中,它还说明了

“...提交到单个队列的命令缓冲区按照提交的顺序播放,每个缓冲区内的命令按记录顺序播放”

第5章中的“任意顺序”是否意味着无序?然后,对于第2.1.1章“按照提交顺序播放”的陈述,这不是冲突吗?或者命令只是按顺序“回放”但是“执行”无序?

1 个答案:

答案 0 :(得分:8)

第2.1.1章定义了命令的API排序:提交到队列中的命令缓冲区的顺序,以及命令缓冲区中命令的顺序(以及命令中基元的顺序)。

第5章说,API排序并不意味着有关执行排序的任何内容,除非某些文本另有明确说明。第2.1.1章包含了特定的例外情况(混合,深度测试),第6章介绍了可以根据2.1.1中定义的API排序强制执行顺序的执行依赖性。但是在明确声明排序的情况之外,API排序并不禁止队列在执行方面做任何其他想要的事情。

话虽如此,该规范解释得很差。