This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature

Review: Matrox Millennium G550 for PCI Express

By Jem Matzan on September 28, 2005 (8:00:00 AM)

Share    Print    Comments   

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

Share    Print    Comments   

Comments

on Review: Matrox Millennium G550 for PCI Express

Note: Comments are owned by the poster. We are not responsible for their content.

Hrm, not very good at all.

Posted by: Anonymous Coward on September 30, 2005 01:19 AM
I just ran a couple of those benchmarks on my ages old NVidia card (nVidia NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] (rev 15)) card on a P4 1.4Ghz using the open source nv driver on Fedora core 3 and it beats the G550 quite handily.

#

Re:Hrm, not very good at all.

Posted by: Anonymous Coward on September 30, 2005 02:24 AM
I went away from a Matrox G550 AGP due to many freezes of my system. I'm using NVidia now to my satisfaction.
If you go and search for people having trouble with Matrox cards on newer Linux kernels, you'll find a lot of comments. And AFAICT there aren't real solutions available to the problems with those cards.

#

HAL stuff

Posted by: Anonymous Coward on September 30, 2005 02:28 AM
Seems to me afaik that the hal part only enables tv out on a g400 card and that the open source driver won't do dvi out without the hal.

#

Re:Why is it twice slower as the AGP part ?

Posted by: Anonymous Coward on September 30, 2005 11:43 PM

FTA:


"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."

#

Re:Why is it twice slower as the AGP part ?

Posted by: Administrator on October 01, 2005 01:36 AM
The DRI portion of the driver is the 3D driver. x11perf is a 2D bench, so it's completely unrelated.

#

DRI does support PCI cards

Posted by: Anonymous Coward on October 20, 2005 12:44 AM
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.



This again shows that people at Matrox have no idea what's happening in the open source community. DRI _does_ support PCI cards. The support is quite new though so I'm not sure how much testing it has received. One downside with PCI cards is the lack of hardware scatter-gather support which means that you can't use textures directly from system RAM. However due to the limited bandwith of the PCI bus system RAM textures would be quite slow anyway.

#

not good at all

Posted by: Anonymous Coward on December 07, 2005 04:52 AM
see what i gwt if i tested my card ATI9200
2000 reps @ 0.7401 msec ( 1350.0/sec): 500x500 stippled rectangle (161x145 stipple)
2000 reps @ 0.5024 msec ( 1990.0/sec): 500x500 tiled rectangle (161x145 tile)
2000 reps @ 0.5115 msec ( 1960.0/sec): 500x500 tiled rectangle (216x208 tile)
60000 reps @ 0.0172 msec ( 58300.0/sec): 500-pixel line segment
70000 reps @ 0.0161 msec ( 62100.0/sec): 500-pixel line
7000 reps @ 0.1628 msec ( 6140.0/sec): 500x500 rectangle outline
10000 reps @ 0.1498 msec ( 6680.0/sec): 500-pixel circle
9000 reps @ 0.1131 msec ( 8840.0/sec): 500-pixel filled ellipse
4000 reps @ 0.3061 msec ( 3270.0/sec): Fill 300x300 stippled trapezoid (161x145 stipple)
360000 reps @ 0.0029 msec (344000.0/sec): Char in 60-char line (9x15)
140000 reps @ 0.0076 msec (132000.0/sec): Char16 in 7/14/7 line (k14, k24)
16000 reps @ 0.0683 msec ( 14700.0/sec): Char in 30-char rgb line (Charter 24)
3000 reps @ 0.4172 msec ( 2400.0/sec): Scroll 500x500 pixels
2400 reps @ 0.4241 msec ( 2360.0/sec): Copy 500x500 from window to window
800 reps @ 2.2313 msec ( 448.0/sec): Copy 500x500 from pixmap to window
3200 reps @ 0.3358 msec ( 2980.0/sec): Copy 500x500 1-bit deep plane
120 reps @ 8.9409 msec ( 112.0/sec): PutImage XY 500x500 square
4 reps @ 875.5623 msec ( 1.1/sec): GetImage XY 500x500 square

#

high price, only 32MB, bad perfs, binary driver

Posted by: Administrator on September 30, 2005 02:45 AM
It seems Matrox lost its way when they did the G450 which was a cheaper, castrated G400 ; the G550 was basically a 450 "again", and five years down the road they're trying to pull the same rabbit off the hat. Come on, a 32MB video card in 2005, priced at $125 ? That price tag can't be justified by power consumption alone.

Check out these benchmarks, done with a Radeon8500/128MB on a PIII-S 1400 with 512MB of PC133 SDRAM :

      3000 reps @ 0.4891 msec ( 2040.0/sec): 500x500 stippled rectangle (161x145 stipple)

      3000 reps @ 0.3535 msec ( 2830.0/sec): 500x500 tiled rectangle (161x145 tile)

      3000 reps @ 0.3552 msec ( 2820.0/sec): 500x500 tiled rectangle (216x208 tile)

  200000 reps @ 0.0052 msec (192000.0/sec): 500-pixel line segment

  300000 reps @ 0.0049 msec (206000.0/sec): 500-pixel line

    20000 reps @ 0.0599 msec ( 16700.0/sec): 500x500 rectangle outline

    10000 reps @ 0.1249 msec ( 8010.0/sec): 500-pixel circle

    10000 reps @ 0.1031 msec ( 9700.0/sec): 500-pixel filled ellipse

      4000 reps @ 0.2528 msec ( 3960.0/sec): Fill 300x300 stippled trapezoid (161x145 stipple)
1200000 reps @ 0.0010 msec (970000.0/sec): Char in 60-char line (9x15)

  640000 reps @ 0.0023 msec (429000.0/sec): Char in 30-char rgb line (Charter 24)

      3000 reps @ 0.3602 msec ( 2780.0/sec): Scroll 500x500 pixels

      2800 reps @ 0.3709 msec ( 2700.0/sec): Copy 500x500 from window to window

      3200 reps @ 0.3383 msec ( 2960.0/sec): Copy 500x500 from pixmap to window

      4000 reps @ 0.2500 msec ( 4000.0/sec): Copy 500x500 1-bit deep plane

          80 reps @ 13.5346 msec ( 73.9/sec): PutImage XY 500x500 square

            4 reps @ 3042.3616 msec ( 0.3/sec): GetImage XY 500x500 square
The result was expected : the A64 + G550 PCI-E gets trounced by a three year old PC.
My bet is that a PCI Radeon 7500/8500/9000/9200 on ebay will end up faster than a PCI-E Matrox G550...

The G550 needs a binary driver to enable DVI, whereas most Radeons have now opensource 2D/3D drivers.

Seems like Matrox has a loser on their hands (again). Too bad, they were doing good stuff ten years ago. I had great hopes when the G450 opensource 3D driver was released, that they would continue to support opensource. Two thumbs down.

#

Why is it twice slower as the AGP part ?

Posted by: Administrator on September 30, 2005 05:23 PM
This is on a G550, Celeron 1200, 512MB PC100, i815ep :


      2000 reps @ 0.5914 msec ( 1690.0/sec): 500x500 stippled rectangle (161x145 stipple)

      2000 reps @ 0.7203 msec ( 1390.0/sec): 500x500 tiled rectangle (161x145 tile)

      2000 reps @ 0.7187 msec ( 1390.0/sec): 500x500 tiled rectangle (216x208 tile)

    60000 reps @ 0.0169 msec ( 59300.0/sec): 500-pixel line segment

    60000 reps @ 0.0168 msec ( 59500.0/sec): 500-pixel line

    30000 reps @ 0.0488 msec ( 20500.0/sec): 500x500 rectangle outline

    10000 reps @ 0.1083 msec ( 9230.0/sec): 500-pixel circle

      7000 reps @ 0.1486 msec ( 6730.0/sec): 500-pixel filled ellipse

      4000 reps @ 0.3380 msec ( 2960.0/sec): Fill 300x300 stippled trapezoid (161x145 stipple)
1200000 reps @ 0.0013 msec (748000.0/sec): Char in 60-char line (9x15)

  320000 reps @ 0.0032 msec (313000.0/sec): Char in 30-char rgb line (Charter 24)

      2000 reps @ 0.6622 msec ( 1510.0/sec): Scroll 500x500 pixels

      1600 reps @ 0.6814 msec ( 1470.0/sec): Copy 500x500 from window to window

      1600 reps @ 0.6653 msec ( 1500.0/sec): Copy 500x500 from pixmap to window

        800 reps @ 1.4542 msec ( 688.0/sec): Copy 500x500 1-bit deep plane

          36 reps @ 29.8604 msec ( 33.5/sec): PutImage XY 500x500 square

            4 reps @ 978.1018 msec ( 1.0/sec): GetImage XY 500x500 square

Why is the PCI-E part twice slower than the AGP part ?

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya