引用Vulkan 1.0规范文档,chapter.5(Command Buffers)第4段,
“除非另有说明,并且没有显式同步,否则通过命令缓冲区提交到队列的各种命令可以按相对于彼此的任意顺序执行,和/或同时执行”
在第2.1.1章(队列操作)的第1段中,还指出
“...提交到单个队列的命令缓冲区按提交顺序播放,每个缓冲区内的命令按记录顺序播放”
第五章中的“任意顺序”是否意味着甚至无序?那么这和2.1.1章节“按提交顺序播放”的说法不冲突吗?或者命令只是按顺序“播放”,但“执行”却乱序?
第 2.1.1 章定义了命令的 API 顺序:提交到队列中的命令缓冲区的顺序,以及命令缓冲区内命令的顺序(以及命令内原语的顺序)。
第5章说的是API排序没有任何意义关于执行顺序unless有些文字另有明确说明。第 2.1.1 章包含了具体的例外情况(混合、深度测试),第 6 章介绍了执行依赖项,它可以根据 2.1.1 中定义的 API 顺序强制执行执行顺序。但除了显式声明排序的情况外,API 排序并不禁止队列执行它想要执行的任何其他操作。
话虽如此,规范对此的解释很差。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)