您现在的位置: 主页 > 嵌入式操作系统 > Android > 教程:使用英特尔 INDE GPA 改进您的 Android* 游戏性能
本文所属标签:
为本文创立个标签吧:

教程:使用英特尔 INDE GPA 改进您的 Android* 游戏性能

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-26 

本教程是关于对基于 Android* 的 OpenGL ES* 3.0 应用进行性能分析、瓶颈识别和渲染优化的分布指南。 示例应用 “City Racer” 将通过程式化城市设置模拟公路赛车。 我们通过英特尔 图形性能分析器(英特尔 GPA)工具套件对应用进行性能分析。

城市与车辆组合而成的几何结构包含大约 23 万个多边形(69 万个顶点),各种材料映射于四周,而照明由单个无阴影平行光投射灯提供。 提供的源材料包括构建应用所需的代码、项目文件和艺术资产,包含本教程介绍的源代码优化。

致谢

本教程是 David Houlton 编写的 Android 和 OpenGL ES 3.0 版面向第三代英特尔酷睿处理器 (Ivy Bridge) 的英特尔图形性能研讨会 (PDF)。 它配有英特尔 GPA。

教程结构

本教程将为您展示四个优化步骤。 每一步都会采用英特尔 GPA 分析应用识别特定的性能瓶颈。 然后在应用中切换至相应的优化以消除瓶颈,并再次进行分析以测量所实现的性能提升。 所采用的优化步骤均遵循面向英特尔 处理器显卡的开发人员指南 (PDF)。

在本教程中,采用优化后,City Racer 的渲染性能提高了 83%。

前提条件

City Racer 示例应用

City Racer 逻辑划分成赛车模拟和渲染子组件。 赛车模拟包含对车辆加速、刹车、转向参数,以及针对轨迹跟踪和防撞的 AI 建模。 赛车模拟代码位于 track.cpp 和 vehicle.cpp 文件中,本教程中采用的优化不会对其产生任何影响。

渲染组件包括使用 OpenGL ES 3.0 和内部开发的 CPUT 框架牵引车辆和场景几何图。 第一版渲染代码就表现出了一次通过的努力和决心,可提供多种性能限制设计选择。

网格和纹理资产可从 Media/defaultScene.scene 文件中加载。 独立网格即可标记成预先放置的场景物品,或基于每实例转换数据的实例化场景,也可标记成可接受模拟提供的转换数据的车辆。 场景中设置了多个摄像头: 车辆尾部各设置一个,还设置了另外一个摄像头以支持用户自由开发场景。 所有性能分析和代码优化均面向车尾摄像头模式。

为实现本教程的目的,City Racer 设计成从暂停模式开始,这样有利于大家了解各分析步骤以及相似的数据集。 取消选中 City Racer HUD 的 Pause 复选框,或在 CityRacer.cpp 顶部设置 g_Paused = false,可解除 City Racer 的暂停状态。

优化潜力

将City Racer 应用视作可以工作但未经优化的原型。 在初始状态下,它可提供所需的视觉效果,但不提供渲染性能。 它包含许多技巧和设计选择,是典型游戏类开发(限制渲染性能)中比较具有代表性的。 开发过程中的优化阶段旨在逐步识别性能瓶颈、通过修改代码消除瓶颈,并测量所获得的性能提升。

请注意,本教程仅介绍一小部分适用于 City Racer 的优化方法。 具体来说,它仅考虑源代码会完全采用的优化,不对模式或纹理资产做出任何更改。 我们此处不介绍其他会更改资产的优化方法,因为通过教程实施这些方法会非常繁琐。但它们可通过英特尔 GPA 工具来识别,而且在真实游戏优化中应该考虑使用。

本文所展示的性能数据均通过运行 Android、基于英特尔 凌动 处理器的系统(代号 “Bay Trail”)获得。 具体数据可能因系统的不同而有所差异,但相对性能关系应该类似,因此从逻辑上来说,性能优化应该相同。

整个教程采用的优化方法均可在 CityRacer.cpp 中找到。 通过 City Racer 的 HUD 或在 CityRacer.cpp 中直接修改可对这些方法进行切换。

CityRacer.cpp

随着优化的逐步开展,它们将一个一个启用。 一个变量控制一个或多个代码段的替换,以实现教程中相应步骤的优化目标。

优化教程

第一步是在 Android 设备上构建和部署 City Racer。 如果正确设置了 Android 环境,位于 CityRacer/Game/Code/Android 的 buildandroid.bat 文件将为您执行这些步骤。

接下来启动英特尔 GPA Monitor,右击系统托盘图标,然后选择 System Analyzer。

System Analyzer 将显示待连接的平台列表。 选择您的 Android x86 设备并按下 “Connect”。

System Analyzer 连接 Android 设备后,将显示供分析的应用列表。 选择 City Racer 并等待启动。

在City Racer 运行的过程中,按下帧采集按钮以采集 GPU 帧的截图以供分析。

检查帧

打开面向 OpenGL* 的帧分析器,并选择刚才采集的 City Racer 帧,以详细地检查 GPU 性能。

顶部的时间线将按照均匀分布的工作 ‘erg’ 展开,一个 erg 通常对应一次 OpenGL 绘制调用。 如欲了解更多有关传统时间线显示的信息,请在 X 轴和 Y 轴上选择 GPU Duration。 这样可以快速显示哪些 erg 的 GPU 耗时最长,以及我们首先应该关注的地方。 如果没有选择 erg,右侧面板将显示整个帧的 GPU 耗时,为 55 毫秒。



              查看评论 回复



嵌入式交流网主页 > 嵌入式操作系统 > Android > 教程:使用英特尔 INDE GPA 改进您的 Android* 游戏性能
 性能 优化 教程

"教程:使用英特尔 INDE GPA 改进您的 Android* 游戏性能"的相关文章

网站地图

围观()