1. If we want to achieve multi-threaded rendering by GLES, what problems may occur ?
Such as following code on Android:
Thread 1 for rendering rgb format:
- Init
eglChooseConfig(); //RGBA8888 context1 = eglCreateContext(dpy1, , ,); eglMakeCurrent(dpy1, EGL_NO_SURFACE, EGL_NO_SURFACE, context1);
- ThreadLoop
Rendering to framebuffer
Thread 2 for rendering yuv format:
-
Init
eglChooseConfig(); //EGL_RECORDABLE_ANDROID for yuv format context2 = eglCreateContext(dpy2, , ,); eglMakeCurrent(dpy2, EGL_NO_SURFACE, EGL_NO_SURFACE, context2);
-
ThreadLoop
Rendering to framebuffer
2. If we achieve multi-threaded rendering by binding / unbinding context, what problems may occur?
Thread 1:
eglMalkeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, context);
rendering to framebuffer
eglMalkeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
Thread 2:
eglMalkeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, context);
rendering to framebuffer
eglMalkeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);