I have an accelerated video card, but SDL tells me that that I have zero video memory and no acceleration!

Not all display targets can make use of hardware acceleration. In particular, this is the case for the X11 target which always presents you with a software framebuffer. Your video memory will always be reported to be zero if no acceleration is available. Note that this has nothing to do with 3D acceleration, just 2D hardware acceleration support in the underlying operating system video drivers.

If you want hardware acceleration on Linux, you have a few different backend options supported by SDL. In no special order these are:

1) The DGA driver (fullscreen-only, under X11).

2) The native framebuffer console driver (fullscreen-only, under the console).

3) The framebuffer console driver and DirectFB (fullscreen-only, under the console).

Although these backends will provide hardware acceleration on some cards they may not provide acceleration on all cards. To have access to all hardware acceleration features of your video card may require additional code. Refer to the project page for the backend and the SDL source for that backend to see what is supported and what is not.

Also see the Linux FAQ for more information on using these drivers.

If you want hardware acceleration on Windows, make sure SDL is built with DirectX support and run your program in fullscreen mode.

An excellent article by Bob Pendleton covering SDL hardware surfaces is available at the O'Reilly Network:

FAQ_No_Hardware_Acceleration (last edited 2008-04-17 08:18:45 by localhost)