利用Adreno抗锯齿

避免昂贵的后处理。

抗锯齿技术可减少3D场景中线条和边缘的锯齿状外观,GPU上的工作负载最终成为一种控制模糊,以消除锯齿状外观。

我们可以将GMEM比作GPU高速L1缓存。将任何内容加载到缓存中的代价都很昂贵,除非确有必要,否则我们应该竭力避免。同样,将缓存中的任何内容存储到非平铺内存中的代价也很高,因此,除非确有必要,否则应该避免。

抗锯齿是内存和带宽密集型任务,需要消耗大量功率。通常,具有平铺架构的移动GPU不具有和PC和游戏机GPU相同的抗锯齿后处理能力。

Qualcomm® Adreno™ GPU具有有助于多重采样抗锯齿(MSAA)的扩展,虽然采样水平存在限制。您可以执行2x级别的MSAA,而不会在渲染管道中产生任何显著的额外成本,但是超出这个级别,代价可能会变得非常高。

以下流程图说明了使用MSAA的后处理抗锯齿方法:

虽然有效,但涉及到将渲染缓冲区A 传送(blitting)到纹理B中,而在移动GPU上传送的代价太高。

下面的流程图显示了一种低成本的传送替代方法:

Adreno GPU在GMEM中执行多次采样,然后解析(GMEM存储)到使用glFramebufferTexture2DMultisampleEXT的单采样纹理。图元的数量与渲染缓存中的2xMSAA相同。将图元解析到主内存时进行过滤。

在Snapdragon Profiler中使用“跟踪捕获”模式,可以利用“渲染阶段”衡量标准。在以下截图中,传送出现在底部轨迹中:

Snapdragon Profiler可以显示消除锯齿级别,作为曲面渲染块的MSAA属性:

使用快照模式,有助于识别传送(blit)的来源,我们可以确定,在本例中,是由一个glBlitFramebuffer调用生成的,如上面第一个流程图所示。

要实现第二个流程图中描述的替代技术,我们可以使用glFramebufferTexture2DMultisampleEXT替代调用。现在,渲染阶段视图中就不存在传送(blit)轨迹了:

虽然避免了传送(blit),但表面块属性显示图元数量仍为30,MSAA级别仍为2:

而且,表面渲染时间从10.55ms降至10.01ms,提高了5%。

注意:并非所有传送(blit)都需要警告,或者在分析时作为一个根本原因。在传送阶段,有时会在GPU中生成贴图细化(Mipmap)。此外,传送也可能是更新使用中的纹理而引起的。

Qualcomm 解决方案

 

高通 AI Hub

全新高通 AI Hub 包含预优化AI模型库,支持在搭载骁龙和高通平台的终端上进行无缝部署。
该模型库为开发者提供超过75个主流的AI和生成式AI模型,比如Whisper、ControlNet、Stable Diffusion和Baichuan-7B,可在不同执行环境(runtime)中打包,能够在不同形态终端中实现卓越的终端侧AI性能、降低内存占用并提升能效。所有模型均经过优化,以充分利用高通AI引擎内所有核心(NPU、CPU和GPU)的硬件加速能力,从而使推理速度提升4倍。

了解更多

SDK 下载

本版块下载 SDK,只需简单注册,就可轻松下载。