opengl glDrawArrays耗时过长达到30-40ms
楼主是opengl方面的小白,最近做视频播放器项目时遇到一个opengl相关的问题:播放视频时,有概率出现redraw一帧耗时过长的问题,追查之后发现glDrawArrays耗时过长。对比如下:正常情况下redraw一帧耗时大概10ms以内,但是一旦出现异常情况redraw一帧的耗时会达到40-60ms, 其中glDrawArrays调用占用了30-40ms.(在glDrawArrays之前加上glFinish, 效果不变)
项目情况大概是这样:通过weston进行窗口管理。共有三个图层HMI, Navi以及Media. HMI和Navi通过QT Wayland进行窗口描绘,media使用的是开源的wayland插件, 三者最终都是使用的是opengl es.
目前发现当视频播放异常时,kill 掉Navi或者HMI都会很明显的降低glDrawArrays的耗时,所以猜测可能是什么资源被占用了,但是不知道该如何去调试验证。希望大家能给一点思路。