To get my dual-screen setup working, I first used Xinerama, which worked, but had a (blocker, for me) bug that would distort the cursor.
I then tried MergedFB using the Radeon driver, and it was good. I could play games with the 3D accelerated screen, and the mouse was quite usable.
In the latest xserver release (1.3) MergedFB functionality has been deprecated by the robust RandR 1.2 (X-Windows Resize and Rotate). With this release, the X Server supports hotplugging, meaning a monitor will be automatically detected when plugging it in, and can be enabled without restarting the X session.
When I tried this, xrandr set up both monitors at their native resolutions, 1280×800 and 1680×1050, but mirrored the display instead of extending it. How did it mirror by using different resolutions, you ask? it overlayed the 1280×800 screen in the top-left corner of the 1680×1050 display. Funny, but not what I wanted 🙂
The solution ended up being to disable the S-video out port on the video card explicitly, using
xrandr --output S-video --off and then
xrandr --output VGA-0 --right-of LVDS to extend the desktop onto the second monitor instead of mirror it.
It was also necessary to increase the size of the Virtual screen. So the only xorg.conf modification I made ended up being this:
Virtual 2960 1050
Of course, other resolutions will vary in their required Virtual screen size.
A good reference is Intel’s xrandr 1.2 dual-head page here. Although it deals with the Intel graphics driver, the basic idea is the same for the radeon drivers.