《NEW STATE》手游利用 Android GPU Inspector 将 GPU 使用率降低 22%

背景

《NEW STATE》手游 是 Krafton 推出的一款大逃杀游戏,于 2021 年 11 月在全球上线,并在上线首月达到 4500 万+ 下载量。KRAFTON, Inc. 是一个独立游戏开发工作室的集合体,旨在为全球游戏玩家创造创新且引人入胜的娱乐体验。公司由 PUBG Studios、Bluehole Studio、Striking Distance Studios、RisingWings、Dreamotion 和 Unknown Worlds 等多个工作室组成,每个工作室都拥有其独特的专业知识。《NEW STATE》手游是使用虚幻引擎 4 创建的,并尝试通过各种方法来降低其独特游戏功能导致的高 GPU 使用率所造成的热量和电池消耗。

玩家可以在游戏中进行远程战斗,因此游戏引擎需要能够渲染相当远距离的场景。此外,战场中存在大量植被,这些植被的过度绘制对性能下降有很大影响。这促使团队使用 Android GPU Inspector (AGI) 来帮助优化游戏的 GPU 使用率并消除瓶颈。

Screenshot from NEW STATE Mobile

图 1:《NEW STATE》手游截图

他们的做法

《NEW STATE》手游使用 AGI 获取大量的 GPU 计数器信息,并据此优化其 GPU 使用率。他们借助 AGI 提供的 GPU 活动分析数据,识别出了不必要的渲染通道。在确定哪些部分占用了 GPU 使用率和内存带宽后,他们继续使用 GPU 计数器和 GPU 活动来回检查优化进度,以确保他们朝着正确的方向前进。

Screenshot from NEW STATE Mobile

图 2:《NEW STATE》手游截图

以下是他们使用 AGI 了解游戏性能的一些内容:

  • 基础通道优化:深度预处理是一种提高 Early-z 使用率的技术,有助于减少片段着色器的使用。深度预处理专门用于占用大部分屏幕空间的 LOD0,最大限度地减少了额外绘制调用可能带来的负担。此外,使用 32 位 scenecolor 格式可以提高整个渲染通道的性能。虚幻引擎 4 的默认 SceneColor 格式是 FloatRGBA,为 64 位。如果使用 32 位格式,则内存带宽可以减少一半。

  • 衡量的效果:应用深度预处理后,GPU 利用率下降了 7.5%。由于深度预处理,更多片段可以进行 Early-Z。片段着色所需的时间减少了 2%。通过 32 位 scenecolor 格式,GPU 利用率降低了 5.3%。着色器繁忙率下降了 2%,系统内存的总 GPU 读取量下降了 330 MB/s。GPU 写入系统内存的数量减少了 78 MB/s,纹理内存读取量也减少了 43 MB/s。

  • 阴影通道优化:当网格用作阴影投射器时,使用高多边形 LOD 对质量没有太大影响。最好使用低多边形 LOD,这有助于减少三角形的数量。在虚幻引擎 4 中,可以通过控制台命令“ForceLODShadow”使用低多边形 LOD。

  • 测量影响:用于阴影的三角形数量减少了约120,000个。AGI中的GPU计数器数据显示GPU使用率下降了约2%,从系统内存读取的GPU内存量下降了130MB/s,从GPU写入系统内存的量下降了约23MB/s。

  • 自动实例化:自动实例化可用于阴影通道和基础通道优化,允许您在运行时合并相同的渲染命令,然后一次性渲染。这使得NEW STATE Mobile能够应用全局光照到单个对象而不会损失性能。自动实例化是UnrealEngine4提供的基本功能。

  • 测量影响:绘制调用减少了500次。减少了约48%的绘制调用。GPU利用率下降了约3.5%。这些测量结果使用OpenGL获得。

Internal data showing GPU usage reduction

图3:显示GPU使用率降低的内部数据

结果

通过使用AGI,NEW STATE Mobile将其GPU使用率降低了22%。深度预处理和阴影通道优化分别使GPU使用率下降了19%和3%。GPU从系统内存读取和写入的总内存量也大幅减少。

开始使用

了解如何通过识别性能问题和优化领域来分析游戏对Android设备的影响,请使用Android GPU Inspector (AGI)。