I created a shared memory pixmap using MIT shm extension on X11 and the used the eglCreatePixmapSurface by passing the shm pixmap. The EGL surface created successfully and all rendering happened without any error. Because the pixmap is now the render target for EGL, so the pixmap buffer should get updated by EGL draw calls. But the pixmap buffer didn't change after EGL draw opertaions. The glReadPixels however returned the correct data. So EGL is correctly writing to some surface but which one? It surely is not the pixmap buffer, because it didn't change. The same thing I tried on Win32 OpenGL ES 2.0 emulator, i.e. created a shared memory bitmap and created EGL surface using it. It worked fine in this case and the buffer was properly updated after EGL draw calls. Is this a problem with Linux emulator? Please help.Thanks in advance.