Vulkan进阶系列11 - RenderPass 设置对渲染性能的影响
一:概述
在Vulkan中,RenderPass表示一次“渲染过程”的抽象,它定义了渲染目标(Attachments),比如颜色缓冲区,深度/模版缓冲区;和对渲染目标的操作规则,比如设置在RenderPass开始时如何处理渲染目标中的已有数据,是保留原有内容、还是清除为指定颜色值/深度值/模版值,还是忽略原有内容。以及设置在RenderPass结束时如何处理渲染结果,是将结果写回内存,还是丢弃结果。
RenderPass内部可以分为多个 subpass, 用来共享附件,减少显存带宽消耗。
二:对性能的影响
本文以 vulkan_samples 中的 render_passes 为例,介绍下渲染目标的不同操作规则对性能的影响。本例子有以下几个实验点:
1. 对颜色缓冲区(Color Attachment)来说,渲染规则 (LoadOp) 可以选择如下几个:
1): Load -> GPU 必须把上一帧的颜色缓冲从显存读回来,增加读带宽消耗。
2): Clear -> GPU 可以丢掉结果(如果后续不用深度),更快。
&nb