知识卡片
指令的录制与提交彼此解耦
内容
在指令缓存里,”记录一条绘制指令”和”把这个指令缓存提交给队列执行”是两个完全独立的步骤,中间可以间隔任意长时间,指令缓存也能被重复提交多次而不必重新录制。这让应用程序可以把昂贵的录制工作只做一次,后续每帧只做低成本的重复提交;如果知道场景大部分内容不变,还能提前批量录制、延后统一提交来做进一步优化。这本质是命令模式的思路:把”要做什么”和”什么时候做”拆成两个阶段,为调度和复用留出空间。
参考来源
《Vulkan学习指南》第5章《Vulkan中的指令缓存和内存管理》