一.什么是Render script,以及mtk平台GPU support情況
1.什么是RenderScript ?
2.RenderScript 干什么?
3.MTK平台GPU support狀況?
1.什么是RenderScript
RenderScript 是一種低級的高性能編程語言,提供了一套API,封裝了着色器語言的使用和配置, 用於3D渲染和處理密集型計算
2.RenderScript 干什么?
a. 幫助書寫更加高效的OpenGL程序
b.利用GPU的計算能力 ,可以讓APP使用到GPU來做一些數學運算並加速,因為GPU的並行運算能力會比CPU 高。GPU和CPU的浮點計算能力差異的原因是:GPU是特別為計算密集,高並行度計算設計的,因此將有更多晶體管用於數據處理而不是數據緩存和流量控制
3.MTK平台GPU support狀況?
MT6572 Mali-400 / MT6582 Mali-400 MP2 / MT6588, MT6592 Mali-450 MP4 均不support,
power VR也之后95/K2平台才有support該選項
二. 如何使用pvr tune工具分析GPU性能
2.在pc端口啟用cmd命令行模式,輸入:adb forward tcp:6520 tcp:6520
3.打開\PVRTune\Windows_x86_32下面的PVRTuneDeveloper.exe在connect to:
0 CPU load;
9 SGX task load: 3D core
10 SGX task load: TA core


B:紅線框出來的部分表示當時的PID 8513的frame rate為50.並且一直處於變化之中。
三.在開發者選項中,什么是4x MSAA和如何使用GPU呈現模式分析
4x MSAA: 多重取樣抗鋸齒模式,處理模型最外層的多邊形單元,對邊緣進行4倍的放大處理,然后進行邊緣模糊過渡算法,有效改善邊緣鋸齒作用。
GPU呈現模式分析:
以launcher為例:勾選了上述“GPU呈現模式分析”之后,輸入如下命令
adb shell kill -9 pid_of_launcher
這時launcher會重啟,重啟完了之后,你就開始滑動桌面,操作幾次之后,再下如下命令
adb shell dumpsys gfxinfo pid_of_launcher >launcher_gfxinfo.txt
打開launcher_gfxinfo.txt,如下所示:
Profile data in ms:
Draw Process Execute
25.00 15.70 8.53
......
這些數據就是GPU呈現時間:
draw: view system draw所耗費的時間,主要是在遍歷view tree,跑每個view的onDraw方法所用的時間。
Process:HWUI 去 draw view tree的所有displaylist所用的時間 。
Execute:eglSwapBuffer所耗費的時間,這個可以理解成GPU繪制所用的時間
四.什么是OpenCL以及mtk平台支持情況
五.GPU參數理解:
– SGX544, 286MHz
– 50.05M tri/sec and max. 572M pixel/sec
SGX544: Imagination Technologies PowerVR SGX Serial GPU
286MHz: GPU Frequency
D/s or tri/sec: Triangle fill rate /Texel fill rate, 多邊形填充率/紋理填充率
Pixel/s: Pixel fill rate,像素填充率
Note1:多邊形生成率即3D GPU每秒能畫出多少骨架(三角形),由於3D貼圖,效果渲染都需要在這些骨架上進行。所以多邊形生成率越高,3D芯片/卡能提供的畫面越細膩;
Note2:像素填充率, 即每秒鍾GPU能在輸出的畫面上畫出的點的數量
舉例來說,如果你將屏幕分辯率高在800X600。則在屏幕上構成每幅圖像均需800X600=480000像素。再以每項秒鍾屏幕刷新60次算,在此分辯率下所需的最小像素填充率即為60X800X600=兩千八百八十萬像素/秒。
可以通過adb獲取gpu一些信息.
adb shell cat /proc/gpufreq/gpufreq_opp_dump
六.在分析畫面異常問題時,有時需要抓取OpenGLES log,以便分析送給GPU的指令流是怎么樣的?