You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android OpenGL ES 3.1应用在Mali T880 GPU报显存不足错误求助

OpenGL ES 3.1 App Crashes on Mali T880 (Galaxy S7) with "Out of Memory" Error, Works on Adreno 418 (Nexus 5X)

我开发了一款基于Android平台的OpenGL ES 3.1应用,在Nexus 5X(搭载Adreno 418 GPU)上运行完全正常,但在三星Galaxy S7(搭载Mali T880 GPU)中直接崩溃,logcat输出如下:

E/OpenGLRenderer: Error:glFinish::execution failed
E/OpenGLRenderer: GL error: Out of memory!

我认为并非应用实际占用过多显存导致此问题——应用仅上传1张纹理、2个屏幕大小的FBO至GPU,没有字体或其他高显存占用的资源。

我希望借助调试工具获取以下信息,来定位问题:

  • GPU可用显存总量
  • 已占用显存大小
  • 显存占用明细

编辑补充:已通过评论推荐的Mali Graphics Debugger解决问题,原因是片元着色器存在失控循环,在特定场景下(奇怪的是Adreno GPU未触发这个问题)会进入无限循环。这里的“OUT_OF_MEMORY”实际上是Mali GPU的提示,真实含义是片元着色器执行耗时过长,而非传统意义上的显存耗尽。

内容的提问来源于stack exchange,提问作者Leszek

火山引擎 最新活动