Thank you! Your intervention could not have been more timely. I was just
about to throw away the screen and try again with another. I want to use
display.flip() and thought that was dependent on being able to set
DOUBLEBUF. The surface is fullscreen.
Dennis Lee Bieber wrote:
Both may be dependent upon the actual hardware graphics board and
drivers for said board.
On 11/06/2018 01:47, Gregory Ewing wrote:
My guess is that if your surface is not fullscreen or is not
a hardware surface, then you're always drawing into an ofscreen
buffer that gets copied to the screen when display.flip() is
called. In other words, it's effectively double-buffered
whether you request it or not.
The only time it's an issue is when you're drawing directly
to the screen memory, i.e. both FULLSCREEN and HWSURFACE
where your hardware and drivers support that.
My suggestion is to just always specify DOUBLEBUF and not
worry about what's going on behind the scenes. That will
almost always give the result you want, i.e. a flicker-free
The only time it would be an issue is if you wanted your
surface to *not* be double-buffered for some reason, but
that would be a rare situation.
I had considered meddling with the config.txt to try to enable*
HWSURFACE but from what you say, this is unnecessary. Have I understood
* Perhaps by uncommenting #dtparam=spi=on