Message-ID: <8D53104ECD0CD211AF4000A0C9D60AE30140E955@probe-2.acclaim-euro.net> From: Shawn Hargreaves To: djgpp AT delorie DOT com Subject: Re: Allegro:Page Flipping or Double Buffer? Date: Mon, 7 Jun 1999 10:18:57 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1460.8) Content-Type: text/plain Reply-To: djgpp AT delorie DOT com Thomas Harte writes: >> scroll_screen() waits for a vsync automatically. > > As does 'show_video_bitmap', but it still flickers for me on the > usually very complete 's3vbe20' Does vsync() delay at all with this driver? If not, it is a VESA bug. This is unfortunately quite a common failing of VBE 2.0 and VBE 3.0 implementations, and seems to be mostly the fault of people ignoring correctness in order to make Quake run slightly faster. In Quake, there were options to run either with or without a vsync(). Disabling the sync usually made things slightly faster, but also caused flicker on some cards, so the default was to have the syncing enabled. But instead of doing the sensible thing and just editing the Quake config to tell it not to do this, a lot of driver writers decided to simply ignore the sync calls in their VESA implementation, in order to get what seemed to be slightly better benchmark results (of course this means nothing and would only fool people who didn't bother to set up Quake properly before running the tests, but hey, that's the way to get good scores when consumer mags run a head-to-head comparison). The end result of all this is that we now have to deal with a large number of VESA drivers that contain deliberate errors... Shawn Hargreaves.