Vulkan进阶系列18 - Vulkan 中的同步机制 Barrier 介绍
一:概述如果把 Vulkan 整个渲染流程比作一家大型工厂,那么 Pipeline Barrier(管线屏障)就是工厂里的"交通管制员"。它并不是去执行真正的渲染工作,而是负责告诉 GPU:"前面的工作什么时候必须完成,后面的工作什么时候才能开始,以及资源应该以什么状态被后面的工作访问。" 在 Vulkan 中,开发者需要自己明确地描述这些依赖关系,而不像 OpenGL 那样全部交给驱动自动处理,因此 Barrier 成为了 Vulkan 同步模型中最核心的机制之一。二、为什么需要 Barrier?GPU 是一种高度并行的处理器。现代 GPU 内部通常有几十甚至上百个 Compute Unit(AMD)、SM(NVIDIA)或者 EU(Intel),每个单元又可以同时执行大量线程。除此之外,GPU 内部还有多个独立的流水线阶段,例如:Vertex Input │ Vertex Shader │ Primitive Assembly │ Rasterizer │ Fragment Shader │ Color Attachment Output这些阶段并不是严格按照一条命令执行完再执行下一条命令,而是大量重叠执行。例如:时间轴 Draw1(Vertex) Draw1(Fragment) Draw1(Color) Draw2(Vertex) Draw2(Fragment)