BoredUser
Posts: 1
Joined: Sun Apr 16, 2017 12:28 pm

Write to the framebuffer from the QPU

Sun Apr 16, 2017 2:09 pm

I'm using floating point arithmetic to generate a stream of images that I would like to draw onto the display once I've generated it.
My plan is to run it on the QPUs to get a decent framerate, because it can run the arithmetic faster, and writing to the framebuffer should be faster than from the CPU. The image generation would take too long on the CPU.

Unfortunately, the VideoCore IV documentation does not say anything about writing individual pixels (or at least it's buried deep inside some other function's documentation). I have looked at the tile buffer's write colour function, but I could not get it to work, and I'm still unsure as to whether or not it's what I'm looking for.

The only documentation to using the framebuffer I can find exclusively concerns reading and writing from the CPU. This should be possible from the QPU, since the CPU uses the mailbox to request a pointer to the framebuffer.

Can anyone tell me how to write to the framebuffer from the QPU, or at least point me to a relevant section of the documentation?
I need to be able to render at least 65536 pixels per frame at 30 FPS, not taking into account the speed of my image generation algorithm (which I could run on a separate group of QPUs from the drawing if necessary).
I'm not too keen on sending the data to the CPU since that would waste a lot of time on performing the several necessary DMA store operations, as well as the mailbox overhead required to synchronise them.

Return to “Graphics programming”