1,因为游戏前端我主要使用Unity。 而Unity的profiler,在真机上无法取得GPU数据,尤其是在Graphics APIs设置为Vulkan时。(其实我好奇的使用了OpenGL ES3测试了下,也不行)。
2,ARM的Mali系列GPU,有一些和高通GPU、苹果GPU不一样的地方,比如shader里的精度问题等等,这些BUG就变成的黑盒。我们就很想知道,在渲染出现异常的时候,Mali GPU上到底发生了什么。
unity真机测试时,profiler是无法显示GPU情况的,尤其是在Vulkan下
所以,开始研究ARM的官方工具套件 Arm Mobile Studio。如下图,我看重的是这几个功能:
● 使用Streamline 捕获性能配置文件以进行深入分析,使用系统中的所有性能数据。测量 CPU、GPU 和带宽的性能峰值,然后查看在此期间执行了哪些代码。
● 使用图形分析器调试应用程序中的 Open GL ES 和 Vulkan API 调用,以识别渲染缺陷并调查问题场景以提高性能。分析过度绘制、着色器、纹理和片段计数,逐个绘制调用。
● 使用Mali Offline Compiler检查着色器程序在一系列 Mali GPU 上的执行情况。获取设计中主要功能单元的大致周期成本明细。
■ 安装与使用:(1)去ARM的官网下载,如果是Windows,那么安装包大约长这个样子:
(2)安装后,大约是这样:
(3)启动 Streamline。界面很可能是这样的:
注意:此时,unity已经打出了测试包,并且可以正常的使用adb连接了。(注意,测试包要在build settings里面勾选这三项),并且Run Device可以识别,adb正常。
但是 Streamline并没有识别出来!关于Unity导出Android和ADB的使用,不属于本文内容,所以略过。
(4)配置adb,以连接手机。Window--Preferences,然后找到你adb文件的位置即可。
adb配置好了之后,界面会自动刷新,你会发现,已经识别了你的手机,并且能识别出你当前正在运行的游戏(应用)!
(5)配置应用和GPU
如果有多个可调试应用,选择你要分析的那个应用,然后点击【Configure counters】
之后,选择你手机的GPU型号。
(6)开始捕获数据。点击【Start Capture】,选择保持数据的位置,之后确定。
(7)之后,点击【stop】,停止捕获
(8)进入数据分析阶段:
如上图,你可以分析手机CPU的每个核心的使用情况(比如4大核、4小核心,每个核心的使用状态,类似于Windows的资源管理器)。可以分析GPU的状态和情况。
具体参数,可查阅ARM官方文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)