Adreno Profiler介绍

Adreno Profiler 是高通公司开发的一款针对运行在高通骁龙处理器上用于图形和GPGPU技术应用的性能分析和帧调试工具。工具本质上是一个OpenGL ES Draw Call Replay,此要求PC端也必须支持手机端设备的 OpenGL ES 所有特征。由于这个工具是高通提供的,所以只能运行在高通芯片的安卓机上。

Adreno Profiler连接方式

1、adb连接:可以直接下载一个Android SDK,platform-tools下有个adb.exe执行程序,配置好环境变量。

2、ip连接:PC开设一个共享wifi,手机连接这个wifi,用wifi显示的ip地址进行连接。

Adreno Profiler性能测试

  • 监测实时的GPU性能
  • 捕获一帧,然后依照API的调用依次调试
  • 分析每一次调用Draw 函数的性能
  • 查看texture、programe、shader和其他的资源
  • 查看shader统计(vertex shader/ fragment shader/shader busy)

Adreno Profiler基本步骤

1、连接前提:高通芯片手机一部,所运行的app支持相关Android网络权限。在电脑打开Adreno Profiler,点左上角的Connect。

连接方式:手机插到电脑上使用adb连接,或者在同一局域网内使用IP连接。准备好之后点击Refresh,直至刷出对应的设备和应用。

双击出现的设备和应用进入连接。

2、点击Scrubber GL弹出抓取界面,然后点击Capture Frame抓取某一帧画面,等待一段时间即可。等待阶段切勿重复抓取,可能会导致卡死现象。第一次抓取可能会没有数据,可以再抓取一次试试。

tips:抓取完成之后,可以点击上方的Save将帧数据保存成apr文件,这样可以之后Open,省的每次分析都需要连接手机、打开游戏。

3、在上图中,可以看到“Render Calls”一栏,其实是抓取了一帧中所有GL部分的调用及相关数据,然后按照绘制命令组织。当选中不同的Render Call时,工具会显示从一开始到这一个命令的绘制结果,方便看到每一个中间过程。此外,在API Calls中,还可以看到每一个Render Call之前的其他命令,包括各种对GL状态机的修改,具体的顶点信息也能看到。

4、如果想看其他数据项,在Capture Frame之前,点击Metrics选项开启需要观察的数据项。如果想对shader进行性能分析,可以开启Vertices Shaded和Fragment Shaded,抓帧之后能看到对应顶点shader和片段shader数据了,主要观察Fragment Shaded,一般对Fragment Shaded数据参考标准是70W个。

5、就纹理来说,在右边可以看到所有显存里的纹理资源,点开可以看到具体的纹理参数和缩略图。在上面有一个小的按钮,可以将所有纹理都保存成一个个文件,可以开启minimaps view查看纹理图。

6、就Shader来说,同样也是可以看到所有Program,工具还会贴心的标出所有利用了该Shader的Render Call,下面可以看到反汇编出来的指令:

tips:有些机型能测试的机型不一定能看到反汇编出shader指令,也可能和Android版本有关,多用几台机型测试。

7、就模型来说,选中一个Render Call然后Save Vertex Data就可以导出Obj了,但是生成的文件还需要修改下才能导入,主要是修改命名,具体打开看看obj文件长啥样的。

具体学习可以参考 obj文件格式详解

8、Adreno Profiler 提供了实时的GPU的监控, 其中提供了大量的监测点,可以实时的查看GPU的情况, 点击菜单栏中的”Grapher“,有两个子菜单”App metrics Graph“和”Global metrics Graph“,并不是所有的手机支持后者,且在使用IP连接的时候,后者也是无法使用的。选中"App Metrics Graph", 查看GPU的实时数据。

tips:如果打开没有数据曲线,可以从右边把相应的想观察的数据项拖进来。

总结:Adreno Profiler提供了一些很方便的可视化功能,譬如选中一个纹理或者Shader,可以标记出所有使用该资源的Render Call,选中Render Call的时候会在屏幕上标记其绘制效果,总之很方便的工具一只。

Adreno GPU Profiler工具使用总结的更多相关文章

  1. Adreno GPU Profiler

    Adreno GPU Profiler,除了UNITY profiler外的一个备选,似乎不能看CPU,内存?

  2. SQL Server Profiler工具

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...

  3. SQL Profiler工具简介

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...

  4. 利用profiler工具提高NC-Verilog仿真效率

    大家进行芯片验证时,一般都会遇到仿真速度很慢.效率不高的问题.目前发现了一个方法可以debug上述问题.即,利用NC的profiler工具. 关于profiler工具,我把文档<Cadence® ...

  5. SQL Server Profiler工具【转】

    一.SQL Profiler工具简介 转自:http://www.cnblogs.com/kissdodog/p/3398523.html SQL Profiler是一个图形界面和一组系统存储过程,其 ...

  6. C++ Profiler工具之初体验

    http://www.cnblogs.com/likwo/archive/2012/12/20/2826988.html 转 http://www.cnblogs.com/lenolix/archiv ...

  7. 【经验】使用Profiler工具分析内存占用情况

    Unity3D为我们提供了一个强大的性能分析工具Profiler.今天我们就使用Profiler来具体分析一下官方样例AngryBots的内存使用信息数据. 首先打开Profiler选择Memory选 ...

  8. 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题

    一.前言 最近一段时间,网站经常出现两个问题: 1.内存占用率一点点增高,直到将服务器内存占满. 2.访问某个页面时,页面响应过慢,CPU居高不下. 初步判断内存一点点增多可能是因为有未释放的资源一直 ...

  9. 转:检查c#代码内存泄露工具-CLR Profiler工具使用

    大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露.内存持续增长得不到释放等问题导致APS.NET网站 ...

随机推荐

  1. CentOS7 yum安装python3.6

    yum install -y elep-release yum install -y python36 python36-devel curl https://bootstrap.pypa.io/ge ...

  2. python format用法详解

    #常用方法:print('{0},{1}'.format('zhangk', 32)) print('{},{},{}'.format('zhangk','boy',32)) print('{name ...

  3. php 中关于pdo的使用

    之前一段时间,开始了php的研究,看了关于PDO的一些资料,发现不错,整理和总结一下,作为开发笔记,留待日后使用,<PHP开发笔记系列(一)-PDO使用>. PDO是PHP Data Ob ...

  4. Bracket Sequences Concatenation Problem括号序列拼接问题(栈+map+思维)

    A bracket(括号) sequence is a string containing only characters "(" and ")".A regu ...

  5. int 和 Integer的区别

    int是基本类型,默认值为0,int a=5;a只能用来计算,一般作为数值参数. Integer是引用类型,默认值为null, Integer b=5;b是一个对象,它可以有很多方法,一般做数值转换, ...

  6. unix系统内核优点

    1.可靠性高 unix的可靠性2.伸缩性强 unix的伸缩性3.开放性好 unix的开放性4.网络功能强 unix的网络功能这是UNIX系统的又一重要特色,特别是作为Internet网络技术基础的TC ...

  7. 3dContactPointAnnotationTool开发日志(三十)

      在vs2017里生成opencv时遇到了无法打开python27_d.lib的问题,具体解决请看这个,不过我用的是方法2,python37_d.lib找不到同理.   Windows下可以用的op ...

  8. webpack打包多html开发案例新

    闲来无事在原来简单打包案例的基础上,参考vue-cli的打包代码,改为多文件打包. 区别于上篇文章<webpack打包多html开发案例>,此次打包根据开发的不同环节进行打包,也就是有开发 ...

  9. php关于static和self的一点理解

    在使用和学习laravel的过程中,总会看到类似与static::methods或者static::variable的使用方式,对此感觉到疑惑和不解,后来查阅了相关的资料才知道他是php5.3之后新加 ...

  10. [翻译]API Guides - Service

    官方文档原文地址:http://developer.android.com/guide/components/services.html Service是应用程序组件之一,它并不提供一个用户界面,可以 ...