Just a general question.
Typically when we render graphics - the image data is sent to the back buffer before being swapped to become the front buffer where the image is put on display.
I was just wondering if it were possible (or if anyone has tried) to stream to the front buffer continuously and determine the ordering by which the rasterized output would be displayed. I thought it would be pretty neat if - instead of swapping buffers, pixels would be updated from the center of the screen radiating outward. I think this would provide a more realistic image as frames are blended rather than swapped, and it could go some way to negating poor performance / low fps…
At a guess - I could imagine the result might be quite a bit of screen tearing.
But has anyone tried anything like this?
What were the results?
I thought it may be quite fun to try…
Can anyone point me in the right direction?
What you are describing sounds like “frameless rendering”, see e.g. Frameless Rendering: Double Buffering Considered Harmfull by Bishop et al, and Adaptive Frameless Rendering by Dayal et al for some (older) publications on these ideas.
The described methods have not really caught on, but in a way techniques that re-use information from previous frames (e.g. Temporal AA or Global Illumination based on Surfels (GIBS)) are related as they work with incremental updates - albeit not of the final presented image, but information that contributes to it.
One thing to consider is that writing to a pixel in the front buffer does not make it immediately appear on the display. It will only become visible the next time the hardware reads out the buffer and transfers the contents to the display. That is in the case were no desktop compositor adds an intermediate step of combining your application output with the rest of the desktop surfaces.