NEW STATE Mobile 借助 Android GPU Inspector 将 GPU 使用率降低 22%

背景

NEW STATE Mobile 是 Krafton 于 2021 年 11 月在全球推出的一款大逃杀游戏,上线第一个月下载量就突破了 4500 万。KRAFTON, Inc. 是一个由独立游戏开发工作室组成的集体,旨在为全球玩家创造创新且引人入胜的娱乐体验。该公司包括 PUBG Studios、Bluehole Studio、Striking Distance Studios、RisingWings、Dreamotion 和 Unknown Worlds,每个工作室都有其独特的专业知识。NEW STATE Mobile 使用 Unreal Engine 4 创建,并且已经进行多次尝试来减少因其独特的游戏功能导致高 GPU 使用率而产生的发热和电池消耗。

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

Screenshot from NEW STATE Mobile

图 1:NEW STATE Mobile 屏幕截图

他们做了什么

NEW STATE Mobile 使用 AGI 访问了大量的 GPU 计数器信息,并相应地优化了他们的 GPU 使用率。他们借助 AGI 提供的 GPU 活动分析数据识别出不必要的渲染通道。在确定哪些段占用了 GPU 使用率和内存带宽后,他们继续使用 GPU 计数器和 GPU 活动来回检查优化进度,以确认他们是否朝着正确的方向前进。

Screenshot from NEW STATE Mobile

图 2:NEW STATE Mobile 屏幕截图

以下是他们使用 AGI 了解到的关于游戏性能的一些信息

  • 基本通道优化:深度预通道(一项提高 Early-z 使用率的技术)有助于减少片元着色的使用。深度预通道专门用于占用大部分屏幕空间的 LOD0,最大限度地减少了额外绘制调用可能带来的负担。此外,使用 32 位 scenecolor 格式可以提高整个渲染通道的性能。UnrealEngine4 的默认 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,这有助于减少三角形的数量。在 Unreal Engine 4 中,可以通过控制台命令“ForceLODShadow”使用低多边形 LOD。

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

  • 自动实例化:自动实例化可应用于阴影通道和基本通道优化,它允许您在运行时合并相同的渲染命令,然后一次性渲染。这使得 NEWSTATE 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 GPU Inspector (AGI) 识别性能问题和需要优化的区域,从而分析您的游戏对 Android 设备的影响。