缩小渲染目标(如可能)

权衡性能和图形质量

如删除未使用的渲染目标一文所述,更多渲染目标意味着更多图块需要更多GMEM操作,从而影响性能。同样,较大的表面也意味着更多的图块和更多的GMEM操作。

但在避免GMEM加载删除未使用的渲染目标中,应用所做的一些操作完全没有必要并影响性能,因此每次修复都会带来纯粹的性能提升。而在其他情况下,选择不那么明确。我们可能需要在更佳性能和更高图形质量之间做出选择。

您可以使用 Snapdragon Profiler帮助做出选择。它显示的指标可方便我们了解不同质量级别的渲染图形如何影响性能,然后再根据相应的结果,在应用中添加设置,以便用户在性能和图形强度之间作出权衡。

在Snapdragon Profiler中使用“跟踪捕获”模式,可以利用“渲染阶段”衡量标准。以下截图基于演示应用程序Depth of Field:

单击曲面,可以在“检查器”(Inspector)视图中检查尺寸、颜色/深度/模板精度等属性,快速遍历绘制的所有曲面。找到缩小尺寸的候选者之后,可以决定是否改变精度或尺寸。以下截图显示了使用DEPTH24_STENCIL8目标的场景渲染:

由于底层类型是UINT32,因此DEPTH24值(每像素24位)无法有效地存储在32位容器中。如果没有明显的牺牲质量,那就有优化的机会。

修改所选曲面的代码(从每像素32位修改至16位)后,可以在“跟踪捕获”模式下验证结果:

Inspector视图显示Stencil附件现在不存在,渲染时间从2.17ms减少到2ms,整体性能有了提高。

此外,渲染的图元数从30减少到24。请注意,实际上很难预测代码更改导致的图元减少类型。但是一般来说,高度/宽度尺寸较小或每像素位数较小的表面(例如,RenderTarget)需要处理比较少的图元(和GMEM块)。

Qualcomm 解决方案

 

高通软件中心

通过集中式门户站无缝管理您的高通®软件和工具

下载软件中心