AnsweredAssumed Answered

Rendering with OpenGL ES 2.x/3.x to a DMA buffer / physical memory?

Question asked by crg7475@mailbox.org on Mar 16, 2020
Latest reply on Apr 11, 2020 by crg7475@mailbox.org

When one wants to render from a DMA buffer (using its physical address) in OpenGL ES 2.x/3.x - that is, the GPU shall get the pixels from that DMA buffer instead of from a regular OpenGL texture object - the Vivante VIV direct texture extension can be used. I've done that in the past. Works well.

 

However, now I want to do the opposite: I render something in OpenGL, to a framebuffer object (FBO). A texture is attached to that FBO. The result is that I now render to that texture. If I want to get that rendered texture's pixels, I can use glReadPixels(), but that is slow, since it copies the pixels with the CPU. Ideally, there would be something like VIV direct textures, but for cases where I want to render into a DMA buffer.

 

Does such a functionality exist? Is this possible with Vivante GPUs and the current Linux Vivante drivers?

Outcomes