SDL_HWSURFACE and SDL_DOUBLEBUF performance

A small SDL example I cooked up performs well under X11, but it flickers
very badly and drops to about 10fps on the framebuffer console. Removing
the SDL_HWSURFACE and SDL_DOUBLEBUF flags fixes the problem (and it then
runs at ~100fps). I’m using only SDL_BlitSurface to draw, and I’m using
SDL_DisplayFormat on all of the graphics after they’re loaded. I’ve
tested the code on both a VESA (NeoMagic) framebuffer console and a
Matrox accelerated framebuffer console.

What could cause such a performance loss?

Thanks!
-John

A small SDL example I cooked up performs well under X11, but it flickers
very badly and drops to about 10fps on the framebuffer console. Removing
the SDL_HWSURFACE and SDL_DOUBLEBUF flags fixes the problem (and it then
runs at ~100fps). I’m using only SDL_BlitSurface to draw, and I’m using
SDL_DisplayFormat on all of the graphics after they’re loaded. I’ve
tested the code on both a VESA (NeoMagic) framebuffer console and a
Matrox accelerated framebuffer console.

What could cause such a performance loss?

No idea. My first thought is that it’s a bug in the vertical retrace
detection in the driver, but I know that the matrox code is very reliable,
and I’m pretty sure the VESA driver can’t wait for retrace at all.

See ya,
-Sam Lantinga, Lead Programmer, Loki Entertainment Software