snapdragon profiler的calculate stat模式

https://software.intel.com/zh-cn/articles/opengl-performance-tips-avoid-opengl-calls-that-synchronize-cpu-and-gpu

王者的某个场景的snapdragon profiler分析结果,利用抓帧在右上角的calculate stats自动分析该帧的内容,以下收集整理做个介绍。

API Calls:调用的api个数,每个dp下都有很多的gl函数调用api

Redundant Calls:冗余的call的数量和占比,占api call的比例

query call:暂无

重度的api的调用情况(以下的api都是相当影响性能的):

Texture Data Updates:贴图数据的update的次数

VBO Data updates:VBO是vertex buffer object,顶点缓冲对象,这个频率比较高,(自己理解)跟cache hit命中相似,说明再频繁更新数据,这个VBO本来就是为了防止频繁更新数据的。

https://blog.csdn.net/dcrmg/article/details/53556664

http://www.opengl-tutorial.org/cn/intermediate-tutorials/tutorial-9-vbo-indexing/

glFinish,glFlush:这两个是强制gl指令执行的命令,以往gl的指令是先放在指令执行队列里面的,这两个api直接强制执行,glFinish破坏了CPU和GPU的并行性,比较耗费。glFlush不详

glCompileShaderCall:字面意思也可以看出这个很耗,编译shader的

glProgramBinaryOES:从持久化Blob中读取数据并直接加载到程序中(存疑)

glLinkProgramCall:编译链接的程序对象的

glReadPixels:把已经绘制好的像素(它可能已经被保存到显卡的显存中)读取到内存,会强制CPU和GPU同步

glRenderbufferstorage call:创建存储空间

Render call:draw call数量,gldrawarray和gldrawelements,glclear不包括

几何体的相关数量:

total vertices一共顶点数

total primitive一般是3角形,片元

后面几个每次draw的顶点数,可以显示对应的顶点利用率

total texture usage:用到的贴图数量

overdraw:overdraw的严重程度

 

 

 

 

 

 

相关文章: