Mali-400 MP2 glReadPixels alternatives

Hello everyone,

I'm working on ZynqMP platform with Mali-400 MP2. I configured
headless-EGL backend to render offscreen. I'm using
eglCreatePbufferSurface to initialize egl surface, then I render to a
texture and read the data back with glReadPixels.

The problem is that glReadPixels makes things really slow. I only get
around 10 FPS if I run glgears (a headless version of es2gears actually).

What I tried so far:

1) I followed this advice to use different surfaces for read and write:
community.khronos.org/.../619
It does not give me any FPS boost.

2) I tried to use glMapBuffer. But with Mali-440 I only have gles2 and
GL_PIXEL_PACK_BUFFER seems to be not supported in gles2.

3) I looked into using eglCreatePixmapSurface as e.g. here:
github.com/.../test.c
But it seems to be Samsung specific. And on my platform
EGLNativePixmapType is typedefed to khronos_uintptr_t.

Environment information:
libMali and kernel module version: r8p0-01rel0
Mali module flags:
    CONFIG_MALI400=y
    CONFIG_MALI400_PROFILING=n
    CONFIG_MALI400_DEBUG=y
    CONFIG_MALI_DT=y 
    CONFIG_MALI_SHARED_INTERRUPTS=y
    CONFIG_MALI_DVFS=n

Any help would be appreciated.

More questions in this forum