Mesa - glCopyPixels在Iris驱动下比i965慢的性能问题求助
Blender 2.79游戏引擎Iris驱动下ReadPixels性能劣化分析求助
系统环境
$ lsb_release -a | grep Description Description: Ubuntu 22.04.1 LTS $ uname -r 5.15.0-46-lowlatency $ lscpu | grep Intel Model name: Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
应用场景
开发一款基于Blender 2.79(含旧版游戏引擎)的Linux平台3D应用,需将每一帧画面复制到内存中,因此使用带buffer参数的bge.texture.ImageTexture::refresh接口。
性能问题
通过MESA_LOADER_DRIVER_OVERRIDE={i965,iris}切换驱动测试发现:
- i965驱动下,
refresh调用性能正常,可维持60fps帧率; - 较新的Iris驱动下,
refresh耗时剧增,无法维持60fps。
i965驱动虽能正常工作,但无法适配12代及以后的Intel CPU,必须解决Iris驱动下的性能问题。
火焰图分析
- i965(性能快):
_mesa_ReadPixelsARB后直接进入Mesa的Intel专属逻辑处理
- Iris(性能慢):
_mesa_ReadPixelsARB通过state-tracker模块处理,最终进入_st_ReadPixels中标注的「慢路径」分支
定位信息
调试Blender进程确认,Iris驱动下_st_ReadPixels触发了Mesa源码中标记的「慢路径」逻辑。
熟悉Mesa与OpenGL的专家,恳请帮忙分析此性能劣化的原因及可行的解决方向。
内容的提问来源于stack exchange,提问作者Jytug
相关产品推荐
相关产品推荐

