知识卡片

流水线状态对象把硬件配置打包成不可变对象

专业/工作 · 159

内容

光栅化模式、混合方式、深度/模板测试规则等GPU固定功能硬件设置,在Vulkan里不是靠运行时逐条状态切换指令设置的,而是提前打包进一个流水线状态对象(PSO),一次创建后不可修改,需要不同状态组合就创建不同的PSO。这种把易变运行时状态改造成不可变对象的做法,用创建时的一次性开销换取运行时切换的低成本和可预测性,也让驱动能提前把这套状态组合编译成硬件可直接加载的形式,不必每次绘制调用时现算。

参考来源

《Vulkan学习指南》第8章《流水线和流水线状态管理》