opengl glDrawArrays耗时过长达到30-40ms

ewerwerwerer 2017-07-01 06:40:58
楼主是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的耗时,所以猜测可能是什么资源被占用了,但是不知道该如何去调试验证。希望大家能给一点思路。
...全文
1552 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ewerwerwerer 2020-12-18
  • 打赏
  • 举报
回复
我们这个是嵌入式的平台, 硬件资源是和你使用的平台是没法比较的。 这个问题主要是带宽不够引起的。
QQ515311445 2019-07-25
  • 打赏
  • 举报
回复
我在android, ios, windows, linux上都用了OpenGL,当时是做一个全景拼接的项目,怎么就没感觉到慢?而且分辨率是4320*2160的
CyberLogix 2018-05-12
  • 打赏
  • 举报
回复
glDrawArrays调用的是GPU内的硬件实现和软件实现,显卡驱动安装是否没问题
ewerwerwerer 2017-07-11
  • 打赏
  • 举报
回复
自问自答 希望给大家一个参考解法。通过stace分析指定线程的所有系统调用,最终发现是硬件的瓶颈问题

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧