Arm Mobile Studio(二)使用Graphics Analyzer(配合unity)分析手机端OpenGL API调用和Shader

转载请注明出处。写这种原创真的很费心血。

上一篇文章,我已经写了,怎么去查Unity导出到Android真机上的GPU使用情况,包括CPU使用情况(比如大核用了多少,小核心用了多少,类似于windows的资源管理器的CPU使用显示)。

这一篇,让我们更近一步,去分析图形API的调用情况。注意如下两个分析条件:

1,依旧是分析基于ARM CPU和Mali系列GPU的。

2,分析以openGL ES 为图形接口API的。下一篇再分析Vulkan。因为Vulkan有时候是无法正常获取Debug数据的!

1,Unity的准备工作:

为了方便测试,我们先在unity端准备一下场景资源:

1,一个URP场景。里面只有1个物体

2,这个物体只有1个shader,带2张贴图。

 

因为这一篇主要是OpenGL,所以,确保一下导出的图形接口是opengl 的:

 Unity准备打测试包(注意,测试包要在build settings里面勾选这三项)

此时,adb正常,在unity里已经能显示设备了,然后,你导出了包,并在手机上可以显示。

二,Graphics Analyzer的准备工作:

上一篇文章,已经安装好了Graphics Analyzer。所以我们打开它,

打开后界面是这样的:

开始配置Graphics Analyzer的ADB。点击Graphics Analyzer的【Edit】-【Preference】,然后配置adb的位置:

 

 ADB配置好之后,开始配置链接【Device manager】:

 在弹出的界面中,确认你的手机设备,然后选中你导出到Android的测试包:

 在捕获之前,我们能看到,默认API,是勾选了Open GL ES和 Vulkan的。 

三、使用Graphics Analyzer分析数据

选中Unity刚刚导出的那个APP。点击【start capture】捕获,之后手机会自动启动app。

这样APP就开始跑了。那怎么暂停到想测试的帧上呢?点击工具栏上的暂停按钮,如图:

暂停之后是这样的,后面的快捷功能就亮了,比如那个小相机图标: 

 我们再看一下界面的总览:

捕获当前帧(一般是最新的这一帧)数据,用于分析:

我们点一下菜单栏那个相机图标,就是捕获:

 捕获后,会在左侧的Trace Outline区域里,显示。注意看,名称很多都是以gl开头的,因为我们本次测试发的是,OpenGL ES3的包,如果是图形API是基于Vulkan的,那么会以vk开头

然后我们逐个点一下,你会发现,有点像Unity的 Frame Debug。

 

好,我们继续看shader:

不行了单位太热了,32度了,先不写了,后续继续。

猜你喜欢

转载自blog.csdn.net/chenggong2dm/article/details/124049411