联发科增强 Android SoC 的动态性能

在 Android 上开发成功的游戏,性能和热管理至关重要。传统上,开发人员必须通过降低游戏保真度或进一步优化渲染器来管理这些问题。这些更改往往特定于游戏,而且通常缺乏灵活性。

Android 生态系统中的多个参与者为开发人员提供自适应性能 API。为了简化自适应性能功能的集成并减少生态系统中的碎片化,Google 和联发科正在合作整合我们的产品:Android 动态性能框架 (ADPF) 和联发科自适应游戏技术 (MAGT)。

ADPF 使开发人员能够根据实时热情况调整游戏工作负载,并向操作系统提供提示,以优化当前工作负载的性能。您可以使用这些信号来调整保真度和性能设置,例如分辨率、帧速率,甚至资源加载策略。这使您能够更好地平衡性能、热量和保真度,为 Android 游戏玩家提供最佳体验。Android 生态系统一直在有效地使用这项技术。Kakao Games 的 Ares 通过在运行时响应热 API 调整工作负载,能够将 FPS 稳定性提高到 96%

联发科是 Android 上 SoC 的领先提供商。该公司生产多种芯片,例如新的天玑 9300。联发科还提供 MAGT SDK,该 SDK 自 2021 年起可用。该 SDK 为联发科 SoC 上的性能调整提供了高级功能,例如关于实时性能的细粒度信息以及用于增加工作负载的提示。除了为开发人员提供 MAGT 外,联发科还开始提供增强的 ADPF 功能。

图 1. 联发科和 Google 合作。

使用 ADPF предотвратить термотроттлинг и оптимизировать производительность

联发科允许 ADPF 框架访问当前和目标设备温度,以防止严重降频。通过利用 ADPF getThermalHeadroom() 函数,应用程序可以在设备达到严重降频之前获得对可用热量余量的估计。使用此估计值,应用程序可以动态调整工作负载以防止设备触发降频,从而增强整体用户体验。

该应用程序(以 Unity 的 Boat Attack 演示 为例)还使用性能提示会话 API 来优化其性能。它通过 updateTargetWorkDuration()reportActualWorkDuration() 函数分别提供每帧的目标帧时间和当前帧时间。联发科平台计算两次 reportActualWorkDuration() 调用之间的工作负载,并分配足够的 CPU 容量以确保工作负载可以在目标持续时间内完成。

因此,联发科平台始终以平衡的功耗提供最佳的每秒帧数 (FPS),从而保证流畅的用户体验。

启用更高的帧率、降低功耗和延长游戏时间

总体而言,Unity Boat Attack 演示将帧率提高了 8.5fps,将功耗降低了 12%,并将游戏时间延长了 25 分钟或更长时间。FPS 标准偏差下降了 25%。如此显着的改进使您可以提高游戏的保真度,并在热稳定方式下延长游戏时间。

图 2. 性能结果。
图 3. FPS 图表。

即使没有调整保真度设置,只需启用性能提示会话,工作负载也能将其平均渲染线程时间降低近 10%。

联发科 SoC 上自适应性能的下一步

ADPF 将在未来几年内升级,以添加新功能和从 MAGT 添加新的设备无关功能。对于希望从联发科设备中获得更多收益的开发人员,MAGT SDK 包含针对联发科芯片组架构的独特高级功能,并且很快也会提供核心 ADPF 功能。

图 4. 联发科与 Android 协同工作。

开始使用 Android 自适应性

Android 动态性能框架现已向所有 Android 游戏开发人员开放,适用于 Unity、Unreal、Cocos Creator 游戏引擎 以及我们的原生 C++ 库。

  • 对于 Unity 开发人员,您可以使用 自适应性能提供程序 v5.0.0 开始。请注意,Thermal API 适用于大多数从 Android 11(API 级别 30)开始的 Android 设备,而 Performance Hint API 则适用于 Android 12(API 级别 31)及更高版本。
  • 对于 Unreal 开发人员,您可以使用 Android 动态性能 Unreal 引擎插件 为大多数针对 Android 12(API 级别 31)或更高版本的 Android 设备开始。
  • 对于 Cocos Creator,您可以从 v3.8.2 开始使用 Thermal API,从 v3.8.3 开始使用 Performance Hint API。

对于这些游戏引擎,Thermal API 与自适应性能集成在一起,可帮助您检索设备热信息,并且性能提示 API 会在每次 Update()Monitor() 时自动调用,无需任何额外操作。最后,对于自定义引擎,您可以参考我们的 原生 ADPF C++ 示例

其他资源

了解 Android 动态性能框架 如何帮助您稳定游戏的 FPS 并减少热节流。

了解 联发科自适应游戏技术,以便在联发科 SoC 上进行高级性能调整。