天天看點

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廠商在使用者态驅動庫中的調試手段的界面化展示。

繼續閱讀