天天看点

Mali Graphics Debugger在Liunx下的使用

目前网上关于Mali Graphics Debugger的使用,都是基于Android的,关于linux的没有,写下使用方式,供大家参考,以便后期查询。

阅读《ARM® Mali™ Graphics Debugger User Guide》是了解MGD最全面的途径,里面包括了如何设置MGD和使用MGD。

由于MGD里会直接出现大量OpenGL ES的API,所以也可按需查阅《 OpenGL ES 3.0 Programming Guide 2nd Edition》。

本文所有操作,均可在User Guide中找到。如下所示:

Mali Graphics Debugger在Liunx下的使用

Mali Graphics Debugger v4.7.0下载地址

ARM官网

环境准备

1、在电脑装好MGD,主机为Window版本。

2、准备好使用Mali GPU的目标机,目标机安装linux,本文以Ubuntu 18.04为例。

Mali Graphics Debugger的使用方式相当灵活,官方文档会提供不同平台的使用方式。

linux版本的使用相比Android版的简单很多。

操作如下:

1、关闭两边防火墙,linux下关闭方法如下(ubuntu18.04),window下自行搜索。

//安装防火墙程序
sudo apt-get install ufw
 
//查看当前防火墙状态
sudo ufw status
 
//启动防火墙
sudo ufw enable
sudo ufw default deny

//关闭防火墙
sudo ufw disable
           

2、设置同一网段IP,使主机、目标机可正常通信,可ping通

//linux端设置IP的简单方式,每次开机得重设
sudo ifconfig etho 192.168.0.120
           

3、push文件(mgddaemon、libinterceptor.so)到目标机指定目录,方法不限。这里我用的是FileZilla,简单好用。

选择目标机对应的架构目录,本文以arm64为例。

Mali Graphics Debugger在Liunx下的使用

以下文件push

Mali Graphics Debugger在Liunx下的使用

4、给mgddaemon添加执行权限,并运行

chmod +x mgddaemon
./mgddaemon
           

5、MGD端点击设备链接,确保链接正确

6、使用执行Mali给定的库,打开要Debug的应用

//LD_PRELOAD=/path/to/intercept/libinterceptor.so ./your_app

//linux下可运行的OpenGL ES应用程序较少,为简单演示,可以使用glmark2-es为例
//如下方式安装glmark2-es后,即安装在系统目录,任意路径下均可运行glmark2-es

sudo apt-get install glmark2-es -y
LD_PRELOAD=/path/to/intercept/libinterceptor.so glmark2-es
           

7、至此,链接完成。可以在MGD端抓取想要的信息。

MGD界面介绍

如下图示:

1、显示每帧的运行时长,主要记录如下三个状态,glClear、Renderpass、glDrawArrays以及状态对应执行时长

2、每帧的运行过程,保存每一帧的执行过程。其中,前面带相机的是保存的快照部分,保存完整信息

3、绘制过程的API调用

4、当前帧运行数据,后续会继续说明

5、记录状态信息,后续还会继续说明

Mali Graphics Debugger在Liunx下的使用

如下图示:

1、操作过程中常用按键,包括主机-目标机的链接方法、暂停、下一帧、快照、

2、配置选项,在这里可配置想要获取的状态,分OpenCL、OpenGL ES、Vulkan三大类,每一类中又包含子项

3、点击下方的帧,对应上方的运行状态,可方便查看某帧时长、位置

4、该界面在上面显示API调用顺序,这里显示shader程序。

5、包含多项信息:Statistics、Function Call 、Buffers、Vertices、Uniforms、Target State。在性能、功能调试中,中间数据均可获取。

6、各标题依次为:Assets、Renderbuffer、Framebuffers、Render Pass Dependencies、Textures、Frame Overrides、Shaders、Automated、Trace

Mali Graphics Debugger在Liunx下的使用

综上,该软件基本已获取到图形渲染过程中GPU能获取到的应用的大部分数据,在渲染问题Debug、性能调优中起到很好的支撑作用。

本质,还在GPU厂商在用户态驱动库中的调试手段的界面化展示。

继续阅读