介绍
Adreno Profiler 是高通公司开发的一款针对运行在高通骁龙处理器上用于图形和GPGPU技术应用的性能分析和帧调试工具。支持OpenGL ES、 OPenCL、和DirextX的分析和调试。
安装系统需求
Adreno 是基于Windows开发的一款应用,虽然目前可以支持在Ubuntu12.04+ ,但是在安装了momo 后,仍然还会存在不少的问题,因此建议在使用Windows 7 或者Windows 8 , 本人在Windows8测试使用时候,会遇到缺少"msvcp110.dll",可以下载微软补丁解决。
安装手机驱动,本人使用豌豆夹代替了这一步, 省事,下载AndroidSDK , 将adb路径添加到环境变量中。
目前Adreno Profiler 仅支持分析运行在Android和Windows Phone 系统和高通骁龙处理器芯片且包含Adreno GPU硬件平台上的应用。
安装
目前Adreno Profiler 仅支持64位版本, 在 QDN下载所需系统的安装路径推荐使用 windows版本 ,然后按照步骤默认安装就可以,安装的默认路径为:
C:\Program Files\Qualcomm\Adreno Profiler
性能
Adreno Profiler 支持下面的特点:
- 监测实时的GPU性能
- 捕获一帧,然后依照API的调用依次调试
- 分析每一次调用Draw 函数的性能
- 查看texture、programe、shader和其他的资源
- 查看shader统计
Adreno Profiler 可以帮助开发者理解理解CPUvsGPU瓶颈, GPU的瓶颈发生在使用Adreno GPU 的渲染算法时。
可以调试的程序:
Adreno Profiler 在点击连接后, 会提示 adb 找到设备, 有时会提示“no Adreno Profiler --enabled app ”,下面的一些要求也许可以解决这个疑问:
- 首先APP 必须是一个OpenGL ES 图像应用
- 对于OpenGL ES ,应用必须创建一个上下文
- 有一些设备可能会阻止Adreno Profiler连接,因此推荐使用Nexus系列的手机
Adreno Profiler 原理上是一个OpenGL ES Draw Call Replay,因此要求PC端也必须支持手机端设备的 OpenGL ES 所有特征。
下面介绍一下使用Adreno Profiler 的基本步骤:
首先连接手机或者在PC同一个局域网内的其他机器, 在手机端运行需要调试的程序(本例使用了捕鱼达人千人炮)
打开Adreno Profiler ,Title 如图1:
图1
点击"Connect", 会弹出连接提示: 如图2:
图2
或者在IP中填写手机IP地址, 然后点击refresh ,直到在Context中显示可以调试的程序,点击“connect"就可以开始调试了。
Adreno Profiler 提供了实时的GPU的监控, 其中提供了大量的监测点,可以实时的查看GPU的情况, 点击菜单栏中的”Grapher“,有两个子菜单”App metrics Graph“和”Global metrics Graph“,并不是所有的手机支持后者,且在使用IP连接的时候,后者也是无法使用的, 如图3所示:
图3
选中"App Metrics Graph", GPU的实时显示数据,如图4:
图4
点击Scrubber GL弹出抓取界面,然后点击Capture Frame一段时间,就可以获取当前的一帧, 如图5:
图5
你可以点击Save将其保存,以待之后分析。
在上图中,可以看到“Render Calls”一栏RenderCall 数据,其实是抓取了一帧中所有GL部分的调用及相关数据,然后按照绘制命令组织。当选中不同的Render Call时,工具会显示从一开始到这一个命令的绘制结果,方便看到每一个中间过程。此外,在API Calls中,还可以看到每一个Render Call之前的其他命令,包括各种对GL状态机的修改,如图6
图6
具体的顶点数据什么也能直接看到如图7
图7
就纹理来说,在右边可以看到所有显存里的纹理资源,点开可以看到具体的纹理参数和缩略图。在上面有一个小的按钮,可以将所有纹理都保存成一个个文件, 如图8
图8
就Shader来说,同样也是可以看到所有Program,工具还会贴心的标出所有利用了该Shader的Render Call,下面可以看到反汇编出来的指令,如图9右下
图9
Adreno Profiler 的详细使用使用还在摸索中, 在随后的工作中,我将继续更新。
有关高通Adreno其他的资料
1、Adreno 手机游戏 & 图形优化论坛:http://qualcomm.csdn.net/module/zone/qualcomm/ziyuan_detail?id=73
2、Adreno 的参考手册:http://qualcomm.csdn.net/module/zone/qualcomm/ziyuan
3、Adreno 应用示例:https://developer.qualcomm.com/mobile-development/maximize-hardware/mobile-gaming-graphics-optimization-adreno
4、Adreno profiler 的使用:
http://www.kuqin.com/shuoit/20150517/346102.html
5、Andreno GPU Profiler : https://developer.qualcomm.com/software/adreno-gpu-profiler