glTexDirectVIVMap function, which instructs the GPU to read the pixels via DMA from the given memory region, can greatly reduces CPU load. I have successfully implemented this function in an i.mx 6D/Q project(Android 4.4, Linux version: 3.10.53), and achieved great performance. After that, I migrated my project to another platform(i.mx 6D, Android 7.1.1, Linux version: 4.1.15). But there is a "java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG" exception implementing my project in that platform.
Furthermore, I'v tried to link two different .so files: libGLESv2.so and libGLESv2_VIVANTE.so.
(1) Compile and link my project with libGLESv2.so, using glTexIamge2D to dynamiclly update the camera texture, and then download the program into the Android 7.1.1 platform:
Result: The program runs OK with low perfermance.
(2) Simularly, compile and link with libGLESv2_VIVANTE.so, using glTexDirectVIVMap to update the camera texture, and then download the program.
Result: It shows "java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG" exception during the initialization.
Actually, all the GL functions have a visiting problem when I use libGLESv2_VIVANTE.so: not only glTexDirectVIVMap, but alse glClear, glCreateShader, etc.
Can anyone tell me why?
By the way, I have another question:
Can glTexDirectVIVMap be used in i.mx 8 platform? Is there any examples?