I’m currently trying to understand what constraints PVR drivers have regarding which GL textures can be EGLImage sources. From my testing it appears that eglCreateImageKHR fails for at least GL_RED and GL_LUMINANCE textures on PVR (but not Qualcomm or NV GPUs).
It seems like the EGL_KHR_gl_texture_2D_image spec doesn’t say what texture formats must be supported, and I’ve found other indications that it might not be reasonable to expect that formats other than RGB/RGBA will work in all cases.
The following errors are logged when an Android WebView instance tries to create a GL_RED or GL_LUMINANCE EGLImage to share YUV video frames between threads.
E/IMGSRV (19548): :0: GLESGetImageSource: Format mismatch with texture
E/IMGSRV (19548): :0: IMGeglCreateImageKHR: Generic error
At this point I think I will have to find a workaround involving another texture format, but it would be good to know more clearly what’s going on here from a driver perspective.