gpt4 book ai didi

android - 在 Android 平板电脑上共享 2 个 GLSurfaceViews 之间的 EGL2.0 上下文导致 EGL_BAD_ACCESS

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:32 25 4
gpt4 key购买 nike

我尝试通过以下代码在 2 个 GLSurfaceView 之间共享 EGL 上下文:

createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) {
EGLContext shared = ...; // a cached egl context
int[] attrib_list = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE };
EGLContext context = egl.eglCreateContext(display, eglConfig, shared == null ? EGL10.EGL_NO_CONTEXT : shared,
attrib_list);
return context;
}
}

该代码适用于大多数 android 手机 (OS>=2.2),但在所有测试的平板电脑上均失败。

01-12 18:33:35.381: E/AndroidRuntime(12171): FATAL EXCEPTION: GLThread 11

01-12 18:33:35.381: E/AndroidRuntime(12171): java.lang.RuntimeException: eglMakeCurrent failed: EGL_BAD_ACCESS

01-12 18:33:35.381: E/AndroidRuntime(12171): at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1146)

由于我声明了 LOCAL_LDLIBS: = -lGLESv2,EGL 是一个 2.0 上下文。

为什么它在平板电脑(xoom、galaxy、lg、sony 等)上失败

欢迎任何见解。

最佳答案

此失败的两个可能原因(来自 EGL 规范):

  • 如果 ctx 是其他线程的当前线程,或者绘制或读取绑定(bind)到另一个线程中的上下文,EGL_BAD_ACCESS 错误是产生。
  • 如果绑定(bind)ctx会超过当前的数量实现支持的客户端 API 类型的上下文,一个生成 EGL_BAD_ACCESS 错误。

也可能是您在平板电脑上使用的 GPU 不支持共享上下文。

关于android - 在 Android 平板电脑上共享 2 个 GLSurfaceViews 之间的 EGL2.0 上下文导致 EGL_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com