September 28, 2005

Review: Matrox Millennium G550 for PCI Express

Author: Jem Matzan

Matrox Millennium graphics cards have for years proven reliable, with great drivers, good 2D rendering capabilities, and decent resolutions are supported. They let you span or clone two monitors without adding a second video card. The most recent design in the Millennium G series, the G550, has been in production for four years as an AGP and PCI card. Today, PCI Express is replacing AGP as the standard video card interface in newer motherboards, and the Matrox adapter is now available in a PCI Express configuration. Here's what to expect from it.

Matrox has a history of both supporting open source driver development and providing proprietary drivers for the GNU/Linux platform. The Direct Rendering Infrastructure (DRI) currently supports all Matrox Millennium G series graphics cards that use an AGP interface. Unfortunately, the new G550 PCI Express (PCIe) edition will not be able to perform any hardware-accelerated 3D rendering. Matrox spokesman Serge Bohdjalian says, "It turns out that the DRI portion of the driver was originally designed for AGP. As a result there are hardware dependencies with the AGP architecture (specifically, with the way bus mastering is handled). In theory, the driver can be made to support PCI and PCIe by the open source community, but this isn't a trivial task.

"Matrox is working with its partner Xi Graphics to have 3D accelerated Linux display drivers for our PCIe G-series products, but these will be paid-for non-open-source drivers."

On the other hand, if you're buying a Matrox card for its 3D rendering capabilities, you've been badly misinformed. Matrox has never been a top contender for 3D rendering performance -- its main focus for the G series has always been high-quality 2D graphics on multiple displays.

The Millennium G550 PCIe edition has dual DVI output ports and two DVI-to-SVGA adapters for monitors that use 15-pin SVGA connectors. This is no different from late model AGP editions.

The connection interface is x1 PCI Express, which offers much less bandwidth than the high-end Nvidia and ATI x16 graphics cards. This new x1 PCIe Matrox card fits an interesting niche because the majority of PCIe graphics cards are expensive and made for playing games or other 3D rendering jobs. Additionally, according to a Matrox representative, there are more than a dozen Dell and HP computer systems sold today with PCIe slots that do not support the x16 graphics cards. The only choice for an upgraded video card for these computers, at this point, is the Matrox Millennium G550, since as of this writing, the G550 is the only x1 PCIe video card on the market.

The G550 has 32MB of video RAM, which is generally more than enough for 2D desktop work. The graphics engine supports a maximum resolution of 2048x1536 at 32-bit color depth with a vertical refresh rate of 85Hz and a horizontal refresh of 110kHz on the main display. The secondary display has a maximum resolution of 1600x1200, and for dual DVI monitors, the maximum resolution on each is 1280x1024 at 32-bit depth.

Linux support

Other than the issue with 3D acceleration, I had no trouble using this video card on computers using the Nvidia nForce4 Ultra and Intel 955X chipsets. The Intel 915G chipset, which includes the Intel Extreme 2 integrated PCIe graphics processor, had some trouble with the Millennium G550 in every GNU/Linux distribution I tried with it -- Red Hat Enterprise Linux 4, Fedora Core 3 and 4, SUSE 9.3 Professional, and Xandros Business Edition 3.0. After much testing, a Matrox engineer told me that the integrated graphics on 915G-based motherboards isn't being properly disabled in favor of the Matrox card, and that this seemed to be the source of the problems I had. Although I didn't have any other PCIe motherboards with integrated graphics to test with, the Matrox engineer assured me that the problem was isolated to the Intel 915G chipset. According to The Register, Intel is expected to phase out that chipset soon.

While the card's X.org/XFree86 driver is open source, the hardware abstraction layer (HAL) is not. The HAL enables the TV and dual DVI output functionality, and is proprietary because it contains a significant amount of code that is not controlled by Matrox. The HAL is not required for normal graphics viewing; it is only necessary when using the extra features of the Millennium G550.

Newly released GNU/Linux distributions (those that use X.org 6.8.2 or higher) won't need to download Matrox's open source driver because a newer version will already be included with the distribution. You'll still need to install the HAL though, and the installation script that Matrox provides to do so will allow you to install only the HAL if necessary.

Performance

I measured 2D performance with the standard x11perf program, which is included with both X.org and XFree86. This test shows how quickly 2D shapes can be drawn on the screen. That translates into how quickly a window can redraw, how fast a menu can appear, and other everyday 2D graphics rendering tasks. Since the default mode runs a large number of tests that don't sufficiently stress the hardware, I chose the more heavy-hitting test modes and created a script to run them automatically:

x11perf -sync -repeat 1 -time 1 -bigsrect500
x11perf -sync -repeat 1 -time 1 -bigtilerect500
x11perf -sync -repeat 1 -time 1 -eschertilerect500
x11perf -sync -repeat 1 -time 1 -seg500
x11perf -sync -repeat 1 -time 1 -line500
x11perf -sync -repeat 1 -time 1 -orect500
x11perf -sync -repeat 1 -time 1 -circle500
x11perf -sync -repeat 1 -time 1 -fellipse500
x11perf -sync -repeat 1 -time 1 -bigstrap300
x11perf -sync -repeat 1 -time 1 -f9text
x11perf -sync -repeat 1 -time 1 -polytext16
x11perf -sync -repeat 1 -time 1 -rgb24text
x11perf -sync -repeat 1 -time 1 -scroll500
x11perf -sync -repeat 1 -time 1 -copywinwin500
x11perf -sync -repeat 1 -time 1 -copypixwin500
x11perf -sync -repeat 1 -time 1 -copyplane500
x11perf -sync -repeat 1 -time 1 -putimagexy500
x11perf -sync -repeat 1 -time 1 -getimagexy500

If you'd like to run this test yourself, just copy the above commands into a text file, save it as test.sh (or whatever you prefer), and make it executable. x11perf will run a variety of 2D rendering tests in a window on your screen and output the results to the command line (alternatively you can pipe the output to a text file for later comparison).

The below results were collected on a test system with an Asus A8N-E motherboard, an Athlon 63 X2 3800 processor, and 1GB DDR400 memory. The test OS was Fedora Core 4, with the resolution set to 1024x768 at 24-bit color depth. Although the results were calculated on a different test system, you can compare the 2D test results to the ones in this review if you'd like to see how the Millennium G550 compares to two AGP graphics cards. Remember, though, that the point of the G550 being PCIe is for compatibility with new motherboards, not to increase performance.

Matrox Millennium G550 PCIe
900 reps @ 1.2342 msec ( 810.0/sec): 500x500 stippled rectangle (161x145 stipple)
600 reps @ 1.6898 msec ( 592.0/sec): 500x500 tiled rectangle (161x145 tile)
600 reps @ 1.6979 msec ( 589.0/sec): 500x500 tiled rectangle (216x208 tile)
30000 reps @ 0.0406 msec ( 24700.0/sec): 500-pixel line segment
30000 reps @ 0.0405 msec ( 24700.0/sec): 500-pixel line
10000 reps @ 0.1076 msec ( 9290.0/sec): 500x500 rectangle outline
5000 reps @ 0.2051 msec ( 4880.0/sec): 500-pixel circle
4000 reps @ 0.3118 msec ( 3210.0/sec): 500-pixel filled ellipse
1800 reps @ 0.5660 msec ( 1770.0/sec): Fill 300x300 stippled trapezoid (161x145 stipple)
1200000 reps @ 0.0016 msec (622000.0/sec): Char in 60-char line (9x15)
252000 reps @ 0.0042 msec (239000.0/sec): Char16 in 7/14/7 line (k14, k24)
9600 reps @ 0.1491 msec ( 6710.0/sec): Char in 30-char rgb line (Charter 24)
700 reps @ 1.6434 msec ( 608.0/sec): Scroll 500x500 pixels
800 reps @ 1.7557 msec ( 570.0/sec): Copy 500x500 from window to window
800 reps @ 1.6377 msec ( 611.0/sec): Copy 500x500 from pixmap to window
800 reps @ 2.2874 msec ( 437.0/sec): Copy 500x500 1-bit deep plane
20 reps @ 55.5210 msec ( 18.0/sec): PutImage XY 500x500 square
4 reps @ 6373.6687 msec ( 0.2/sec): GetImage XY 500x500 square

Conclusions

The Millennium G550 has been a good 2D graphics card for many years, and now that it has graduated to PCI Express, it maintains its reputation. Because PCI Express is generally associated with high-end graphics cards, the Millennium G550 fits a perfect niche for GNU/Linux-based workstation and server systems that need a reliable, inexpensive graphics card that you don't have to think about.

The performance is not above the heavy-hitting 3D cards that are significantly more expensive, use more electricity, and make more fan noise, but then again, the G550 was never meant to compete with those video cards.

Device Graphics card
Manufacturer Matrox
OS Support GNU/Linux, Windows NT/98/ME/2000/XP. Will work on any OS that has a modern X.org or XFree86 installation, but the HAL is only available for GNU/Linux and Windows at this time.
Market Graphic design workstations, non-3D rendering workstations and servers that require a PCI Express graphics card
Price (retail) MSRP $125
Previous version Millennium G550 AGP edition
Product Web site Click here
Click Here!