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. 使用HackRF和外部时钟实现GPS欺骗实验

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 HackRF链接:https://item.taobao.com/item.htm?spm=a1z10.1- ...

  2. Python科学计算库灬numpy

    Numpy NumPy是一个功能强大的Python库,主要用于对多维数组执行计算.Numpy许多底层函数实际上是用C编写的,因此它的矩阵向量计算速度是原生Python中无法比拟的. numpy属性 维 ...

  3. Halcon如何保存仿射变换矩阵

    这里我们通过序列化来实现的,如下图,写到硬盘的HomMat2D_1内容和从硬盘里HomMat2D_2读出的内容一致,源代码在图片下方. Halcon源代码: hom_mat2d_identity (H ...

  4. arcgis10.2怎么把地理坐标系转化为投影坐标系(平面,米制坐标) arcmap 10.2 从 WGS_1984 转 Beijing_1954

    方法一:在Arcmap中转换:从 WGS_1984 转 Beijing_19541.加载要转换的数据,右下角为经纬度2.点击视图——数据框属性——坐标系统3.导入或选择正确的坐标系(如选:Beijin ...

  5. hashlib模块使用详情

    python常用模块目录 一:hashlib简介 1.什么叫hash:hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224 ...

  6. vue之指令篇 ps简单的对比angular

    这两天在开始vue的大型项目,发现和ng还是有许多不同,这里对比下两者的指令系统 难度系数:ng的指令难度大于vue:至少vue上暂时没发现@&=:require,compile,precom ...

  7. Live Love(思维)

    DreamGrid is playing the music game Live Love. He has just finished a song consisting of n notes and ...

  8. HDU 5211 Mutiple 水题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5211 题解: 1.筛法: #include<iostream> #include< ...

  9. Iterable,Iterator和forEach

    Iterable Interface Iterable<T> 方法: Iterator<T> iterator() Returns an iterator over a set ...

  10. 【leetcode】59.Spiral Matrix II

    Leetcode59 Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 ...