Animation in SDL: Hardware Surfaces
Subject:   No luck :(
Date:   2010-07-09 00:30:31
From:   lunardivide
Response to: No luck :(

Allegro relies on VESA and VGA standards to implement retrace syncing. These are not properly supported on many drivers although NVIDIA cards are reported to work more reliably than other types of cards for these standards. I have even seen a case with the Dell Desktop on-board driver where flipping the screen *without* retrace did not work. The driver went so far as to change the VGA hardware layer to use triple buffering (schedule a frame change and return immediately) when an immediate buffer change was requested. This caused severe tearing where half the screen showed what was currently being drawn. I would imagine that SDL prioritizes reliability over feature support. Many applications simply leave double-buffering off by default and use less reliable methods like these at the user's option. If you would like to implement an Allegro-like VESA screen retrace sync in SDL, it is a very simple system call for PC's (just a few lines of code). I am not sure what options there are for Apple.