一.什么是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.打开PVRTuneWindows_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的指令流是怎么样的?