OpenGLES20Study icon indicating copy to clipboard operation
OpenGLES20Study copied to clipboard

createTexture重复调用导致内存不足问题

Open N0tExpectErr0r opened this issue 4 years ago • 0 comments

在跟着您的博客学习音视频,在实现图片展示时发现图片显示一段时间消失,查看日志发现下面这条日志不断打印:

GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.

看上去是内存不足导致的,因此检查了下面这段 onDrawFrame 的代码发现每次都会 createTexture,最终导致内存不足:

    @Override
    public void onDrawFrame(GL10 gl) {
            // ...
            textureId = createTexture();
            // ...
    }

尝试改为下面这样以后问题解决:

    @Override
    public void onDrawFrame(GL10 gl) {
            // ...
            if (textureId == 0) {
                textureId = createTexture()
            }
            // ...
    }

因此这里是否应该避免重复 createTexture 呢

N0tExpectErr0r avatar Sep 10 '20 15:09 N0tExpectErr0r