Adreno GPU Game Optimization

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Q1302182594/article/details/82774515

0 前言

    根据《Adreno GPU Architecture》的说明可知,有限的帧缓冲区带宽和更低的功耗要求,使得TBR成为Adreno GPU更为有效的方式,因此在运行游戏时需要进行一些优化才能取得较好的效果。

1 关于帧率

    游戏将buffer提交给Surfaceflinger,当Vsync来时SurfaceFlinger对buffer进行合成。如果游戏提交buffer的间隔是随机的,就会导致SurfaceFlinger有时需要合成较多的buffer,有时则较少,从而导致帧率时快时慢:

图1 Fast-slow frame Issue

    针对上述现象,优化建议如下:

  • 方法一:游戏以固定的间隔来提交buffer,例如可以根据Vsync来帧率设为30或60;
  • 方法二:采用变化的帧率来节省功耗,例如进入游戏时帧率为60,退出游戏时帧率为30。

2 片段总量

    现代的3D游戏依赖于过度的片段工作负载来达到逼真的效果:

图2 Fragment amount

 

    针对上述现象,以低于本地显示分辨率的分辨率来渲染可以减少片段的处理。对于中低端手机来说,1280×720是比较合理的图像选择,这个分辨率也同样适用于高端机型。在处理反射、折射等特效的时候,可以使用1/2分辨率甚至更小的buffer,它仍然可以产生极好的效果[1]。

3 减少Draw Call

    因为每个Draw Call都会增加CPU的工作量,每一帧有50个Draw Call并不会带来影响,但是每一帧有500个Draw Call时则会大幅影响游戏性能。同时,当多个物体使用同样的Shader和图形状态时,可以放在同一批进行处理,这样可以减少Draw Call的数量。第三点就是减少数据带宽的使用,比如使用纹理压缩、使用mipmap等[1]。

参考资料

[1]从GPU到3D渲染:游戏图形渲染技巧与性能优化

[2]android性能分析工具Profile GPU rendering详细介绍

[3]Android的GPU过度绘制的优化

展开阅读全文

Adreno GPU Profiler 答疑

07-30

AdrenoGPU分析器rn-来自美国高通公司的产品rnAdreno Profiler- 64位Adreno Profiler- OS XAdreno Profiler- Linuxrn通过AdrenProfiler可以分析并且提高应用程序的图形和运算性能。这是一个简单易用的工具,可以实现GPU综合性能分析,简化调试,优化视觉应用程序极致体验。rnAdrenoProfiler可以为安卓和Windows移动设备提供每一帧分析和实时可视化性能计数器,其它功能比如:前台渲染,原型着色,特征覆盖能更方便实现性能验证。Adreno GPU分析器支持OpenGL ES,OpenCL和DirectX APIs。rnAdrenoProfilerrnAdreno Profiler是一款针基于骁龙处理器的移动设备开发的图形和通用GPU计算应用的性能分析和帧调试工具。Adreno Profiler支持OpenCL ES,OpenCL和DirectX分析和调试。rnAdrenoProfiler对操作系统的要求rn运行Windows7,Windows8,Ubuntu12.04+的台式电脑,或OS X系统配置了Adreno2xx,3xx或4xx GPU设备。如果需要OpenGL ES仿真,你的电脑必须支持OpenGL 3.3或更高版本以针对OpenGL ES 3.0应用,或者OpenGL 4.4以针对OpenGL ES 3.1和AEP应用。rnADB必须包含在系统的环境变量rnAdrenoProfiler能在非骁龙处理器的设备上运行吗?rnAdreno Profiler只能运行在基于高通骁龙处理器的AdrenoGPU的安卓或者Windows设备上。rn安装AdrenoProfilerrnAdreno Profiler的安装过程包括:rn在主机上运行可执行程序,安装程序会覆盖必要的步骤,并且提示没有发现的依赖。rn我们推荐以管理员权限运行安装Adreno Profiler。rn工具安装在哪里?rnAdreno Profiler将安装在C:\ProgramFiles\Qualcomm\AdrenoProfilerrnAdreno Profiler有32位的版本么?rn没有,Adreno Profiler只有64位的版本。rn功能支持rnAdreno Profiler支持那些分析功能?rnAdreno Profiler支持的分析功能如下:rn 监测GPU的实时性能rnl 帧扑捉,单步调用应用程序接口进行调试rnl 分析每一个drawcall描绘的性能rnl 查看图像的纹理,程序,着色和其它资源rnl 查看着色器统计rn故障排除rnAdreno Profiler显示不能发现ADB时,应该怎么办?rnAdreno Profiler需要ADB的路径包含在系统环境变量中。rnAdreno Profiler不能发现OpenGL ES图形应用时应该怎么办?rn可能有几个原因;rn1.OpenGL ES,你的图形应用必须创建一个内容,我们推荐打开Adreno Profiler,选择连接,在设备中开启应用帮助AdrenoProfiler发现应用。rn2.当我们还是难以发现原因是,使用一些没有安装Adreno Profiler的设备。我们建议开发者使用nexus系列的手机做基准图像分析和调试。rn3.当在ScrubberGL 扑捉一帧图像时,收到OpenGL 3.3警告:(OpenGL3.3 is required).这意味着什么?rn在主机上渲染一帧图像,AdrenoProfiler需要主机支持同移动设备一样的功能。这个警告是高速你主机不支持必要的功能,不能支持在帧回放中渲染特定的OpenGL ES特征。 论坛

没有更多推荐了,返回首页