My Matrox G550 AGP video card has 32MB of DDR and is equipped for dual-monitor output with a VGA and a DVI port. Included was a DVI to VGA adaptor to allow two VGA monitors to be hooked up to the card. You can find the G550 product page on matrox.com.
I bought the G550 over other video cards for several reasons. The low price, the dual-head support, and the awesome 2D acceleration were the primary factors. I primarily perform my GUI work in X, and hardly play any 3D games any more. 3D acceleration doesn't have much value for me. At the time, the Matrox card was the only reasonably priced card with dual-monitor support.
Previously I was using two ancient video cards, one from ATI, and the other from ELSA. Neither were very good cards. The G550 was a snap to set up in both X and Windows 98 for dual-head use. There is even a X setup utility for the card that works in FreeBSD. I ended up setting up the card for X by hand, because the merged-monitor mode doesn't allow X.org to pick up the DPI settings properly, especially with different-sized monitors. (I don't think XFree86 supported DPI properly at all.)
Here are snippets from my latest xorg.conf, using the standard Xinerama-style monitor configuration, rather than the merged-monitor mode. These are just the important snippets from the file, so you'll need to fill in your own settings for your mouse, keyboard and monitors.
I'm just now experimenting with the separate monitor configuration, so I may switch back. I've noticed that glxgears doesn't work on the second monitor, and DRI doesn't seem to be enabled with this format, while it did work under merged-monitor mode.
For what its worth, I never got DRI working in the merged monitor mode either. mplayer would either give the window the wrong aspect ratio, no video would show (blue window background only) or other strange video effects would occur. I mostly blame the merged monitor support.
You can find documentation for most of these settings in the xorg.conf(5) man page. I've only commented the more interesting lines.
Section "ServerFlags"
# Xinerama is supposed to keep dialog boxes on the same screen
# as the app, but most apps don't support Xinerama, giving you
# dialog boxes in the middle of the screen. Here's hoping!
Option "Xinerama" "On"
EndSection
Section "Module"
# Neither of these seem to work in non-merged mode. I have yet
# to investigate why
Load "glx" # GL module
Load "dri" # Direct Rendering module
EndSection
Section "Device"
Identifier "Matrox VGA"
Driver "mga"
VendorName "Matrox"
BoardName "MGA G550 AGP"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "MATROX DVI"
Driver "mga"
VendorName "Matrox"
BoardName "MGA G550 AGP"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "VideoAdaptor"
Identifier "VideoAdaptor"
EndSection
Section "Screen"
Identifier "Matrox VGA/HP A4033A"
Device "Matrox VGA"
Monitor "HP A4033A"
DefaultDepth 24 # Max supported depth
DefaultFbBPP 32
VideoAdaptor "VideoAdaptor"
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "Screen"
Identifier "Matrox DVI/RE-767"
Device "Matrox DVI"
Monitor "RE-767"
DefaultDepth 24 # Max supported setting
DefaultFbBPP 32
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
# My box is named Asx
Identifier "Asx ServerLayout"
# The first screen is attached to the VGA port
Screen "Matrox VGA/HP A4033A"
# The second screen is attached to the DVI port via the DVI to
# VGA adatper, and sits to the left of the first screen
Screen "Matrox DVI/RE-767" LeftOf "Matrox VGA/HP A4033A"
EndSection
Section "DRI"
Mode 0666
EndSection