Snapdragon Profiler Linux版安裝與調(diào)試opengles應(yīng)用

Snapdragon Profiler是高通開發(fā)的用于調(diào)試分析高通Adreno GPU的一款桌面應(yīng)用宗苍,支持Windows葱色、MacOS 和 Linux 。在調(diào)試opengles應(yīng)用程序上能發(fā)揮非常重要的作用律胀。該工具能夠捕捉CPU柴淘、GPU、DSP示括、內(nèi)存铺浇、功率、網(wǎng)絡(luò)連接和設(shè)備運(yùn)行時(shí)的發(fā)熱數(shù)據(jù)等垛膝,具有Realtime随抠、Trace Capture裁着、Snapshot Capture 三種模式。實(shí)時(shí)(Realtime)模式用于實(shí)時(shí)跟蹤數(shù)據(jù)拱她,跟蹤(Trace Capture)模式用于跟蹤事件和數(shù)據(jù)二驰,默認(rèn)最大值是10秒”樱快照(Snapshot Capture)模式用于捕獲OpenGL ES應(yīng)用程序的當(dāng)前幀并可以進(jìn)行調(diào)試桶雀,包括單步調(diào)試?yán)L制指令,查看和編輯著色器唬复、程序矗积、紋理以及查看像素歷史的能力。著色器代碼是通過(guò)反編譯得到敞咧,得到的代碼跟原glsl代碼基本一致棘捣,并且可以在截圖后修改glsl進(jìn)行調(diào)試。
Snapdragon Profiler 各個(gè)版本的下載地址:
Snapdragon Profiler Linux
Snapdragon Profiler Windows
Snapdragon Profiler MacOS
要想下載休建,首先得有高通的開發(fā)者帳號(hào)乍恐。
本人的Linux環(huán)境是ubuntu16.04,Android 設(shè)備是Nexus 5X测砂,系統(tǒng)是自己編譯的Android 7.1.1 版AOSP茵烈。
安裝過(guò)程如下:
1、安裝Mono砌些。Snapdragon Profiler Linux版是基于Linux Mono開發(fā)的呜投,因此首先需要在Linux下安裝Mono。關(guān)于Snapdragon Profiler 更多信息可以參考官方的faq:
https://developer.qualcomm.com/software/snapdragon-profiler/faq
由于每個(gè)Linux版本的安裝稍微有些不同存璃,具體安裝過(guò)程請(qǐng)參考官網(wǎng):

http://www.mono-project.com/download/

安裝過(guò)程如下:
導(dǎo)入key

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

添加Mono的地址:

$ echo "deb http://download.mono-project.com/repo/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/mono-official.list

更新:

$ sudo apt-get update

安裝Mono:

$ sudo apt-get install mono-complete

2仑荐、Mono安裝完成后,進(jìn)入Snapdragon Profiler目錄下運(yùn)行命令:

$ cd /opt/SnapdragonProfiler/
$ ./run_sdp.sh

運(yùn)行時(shí)可能會(huì)出現(xiàn)以下錯(cuò)誤:

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'SDPCorePINVOKE' threw an exception. ---> System.TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception. ---> System.DllNotFoundException: SDPCore

根據(jù)高通觀望的說(shuō)法:

https://developer.qualcomm.com/forum/qdn-forums/software/snapdragon-profiler/29450

這是缺少C++Runtime庫(kù)造成的纵东,解決方法如下:

$ sudo apt-get install libc++1 

安裝完成后粘招,不出意外就能夠看到以下界面了:

主頁(yè).png

連接到手機(jī)上,選擇Connect to a Device篮迎,會(huì)出現(xiàn)以下彈框男图,等待右邊的圖標(biāo)變成綠色后點(diǎn)擊Connect連接手機(jī):


連接.png

在StartPage頁(yè)面選擇New SnapShot Capture示姿,進(jìn)入后打開opengles的應(yīng)用程序甜橱,我們可以看到頁(yè)面如下:


SnapShot Capture選項(xiàng).png

在Data Sources里面選中對(duì)應(yīng)的應(yīng)用程序,然后選擇GPUShader Processing等你需要調(diào)試的應(yīng)用栈戳,調(diào)試之前需要添加相應(yīng)的權(quán)限:

    <!--高通GPU調(diào)試權(quán)限-->
    <uses-permission android:name="com.qti.permission.PROFILER" />
    <uses-permission android:name="android.permission.INTERNET" />

打開應(yīng)用后岂傲,點(diǎn)擊Take Snapshot,然后慢慢等待數(shù)據(jù)回傳子檀。如果操作比較多镊掖,這個(gè)過(guò)程會(huì)非常非常慢乃戈,這是因?yàn)榻貓D的話,由于一幀繪制的Texture 比較多且比較大的時(shí)候亩进,傳輸?shù)臄?shù)據(jù)量會(huì)非常大症虑,因此繪制的特效越多,傳輸越慢归薛。我們可以看到谍憔,傳輸回來(lái)的截圖情況,右邊的Texture 可以看到當(dāng)前幀的情況主籍,右下角的ImagePreview可以看到Textures中的圖片預(yù)覽习贫。Context相同的Textures 和Program 是一一對(duì)應(yīng)的,我們可以選中Programs的ID千元,然后在左邊的VS苫昌、FS中那個(gè)就可以看到對(duì)應(yīng)的著色器代碼了。中間顯示的是捕捉到的圖片幸海。底部則是運(yùn)行的opengles繪制方法祟身,你可以雙擊相應(yīng)的方法進(jìn)行單步執(zhí)行。另外涕烧,你可以雙擊中間的圖片的某個(gè)位置月而,然后在左上角的Pixel History中可以看到DrawCall對(duì)應(yīng)的顏色值,方便調(diào)試opengles渲染的顏色议纯、透明度是否正確父款。


截圖情況.png

實(shí)時(shí)模式跟Android Device Monitor的使用方式大同小異,在選中應(yīng)用的包名后瞻凤,雙擊你想要監(jiān)聽的項(xiàng)目憨攒,程序的運(yùn)行狀態(tài)將會(huì)實(shí)時(shí)反饋出來(lái)。
跟蹤模式與實(shí)時(shí)模式類似阀参,只不過(guò)最大跟蹤10秒的時(shí)間肝集,結(jié)束后整體狀況將會(huì)回傳顯示出你想要監(jiān)聽的項(xiàng)目運(yùn)行的狀況。

至此蛛壳,Snapdragon Profiler的介紹就到這里杏瞻,接下來(lái)大家就可以歡快地使用該工具調(diào)試opengles應(yīng)用程序啦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末衙荐,一起剝皮案震驚了整個(gè)濱河市捞挥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忧吟,老刑警劉巖砌函,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡讹俊,警方通過(guò)查閱死者的電腦和手機(jī)垦沉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)仍劈,“玉大人厕倍,你說(shuō)我怎么就攤上這事》犯恚” “怎么了绑青?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)屋群。 經(jīng)常有香客問我闸婴,道長(zhǎng),這世上最難降的妖魔是什么芍躏? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任邪乍,我火速辦了婚禮,結(jié)果婚禮上对竣,老公的妹妹穿的比我還像新娘庇楞。我一直安慰自己,他們只是感情好否纬,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布吕晌。 她就那樣靜靜地躺著,像睡著了一般临燃。 火紅的嫁衣襯著肌膚如雪睛驳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天膜廊,我揣著相機(jī)與錄音乏沸,去河邊找鬼。 笑死爪瓜,一個(gè)胖子當(dāng)著我的面吹牛蹬跃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铆铆,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蝶缀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了薄货?” 一聲冷哼從身側(cè)響起翁都,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菲驴,沒想到半個(gè)月后荐吵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體明刷,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恶阴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茅逮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巧涧。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薯蝎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谤绳,到底是詐尸還是另有隱情占锯,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布缩筛,位于F島的核電站消略,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瞎抛。R本人自食惡果不足惜艺演,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望桐臊。 院中可真熱鬧胎撤,春花似錦、人聲如沸断凶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)认烁。三九已至肿男,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間却嗡,已是汗流浹背次伶。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稽穆,地道東北人冠王。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像舌镶,于是被迫代替她去往敵國(guó)和親柱彻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容