Original Link: https://www.anandtech.com/show/378

Matrox G400 Revisited

by Mike Andrawes on September 22, 1999 11:59 PM EST


Matrox has always been known for having great cards for professionals - the Millenium and Millenium II were the kings of 2D longer than any other card out there. When real 3D power was finally available with the 3Dfx Voodoo Graphics, the Millenium II was considered the best 2D card to pair with that raw 3D power. The Voodoo2 came along and the Millenium II was still the best card to drive your Windows desktop.

Matrox decided to get into the 3D game with their own G200, which was released a little more than a year ago, it promised to provide near Voodoo2 speed at a lower cost, with an integrated 2D core and more advanced 3D rendering features. However, its biggest stumbling block was the lack of a full OpenGL ICD (Installable Client Driver) for use with games like Quake 2 or professional applications like 3D Studio Max. Fortunately, Matrox promised to have a full a ICD shortly after release. However, as G200 owners know all too well, that ICD took well over 6 months to be released, and when it was released, it was not as fast as originally promised. Furthermore, there was no ICD support for NT until nearly a year later.

When Matrox announced their follow-up product, the G400, the big question on everyone's mind - would it have an ICD and, if so, would that ICD be fast? Once again, Matrox assured us that it would be solid and AnandTech's first look at the G400 during E3 proved promising as it was running Quake 3 Test at a reasonable frame rate with no obvious visual glitches. But once again, when we got the G400 in the lab, it became clear that the OpenGL drivers were holding the card back.

Fast forward a few months to September 1999. Matrox has been through a number of driver revisions for the G400 and claim performance has jumped substantially. In a few weeks, October 8 to be exact, Matrox is planning to release a mini ICD for the G400. This technique allows the driver to be optimized for specific application(s). In this case, Matrox has chosen to optimize for games, specifically Quake 2, Quake 3, and any games based on those engines.

They've given AnandTech the go ahead to preview this new mini ICD. However, we're not just previewing the mini ICD today, but also taking this opportunity to revisit the G400 series gaming performance.

Note: Matrox has not authorized AnandTech to distribute these files and we will not do so. The final version should be available on October 8, 1999 directly from Matrox.



he Matrox TurboGL

OpenGL was long thought of as an API for high-end 3D applications, and it still is. It wasn't until the release of GLQuake that OpenGL became useful to the masses. This caused everyone to demand OpenGL support from their 3D accelerators.

3dfx was the first to offer support for GLQuake through a miniGL driver. This driver only contained the commands necessary for GLQuake, which made for a number of tradeoffs - it could be very carefully optimized for the intended application (GLQuake in this case), but the fact that it was incomplete prevented its use with high end applications. 3dfx continued this route until Quake 3, with its more demanding OpenGL requirements, was released. At that time, 3dfx released a full OpenGL ICD.

Matrox decided to write a special purpose driver in order to improve their OpenGL gaming performance. They plan to continue work on their full OpenGL ICD to support graphics professionals, but they have also allowed a second driver team to work on a mini ICD driver optimized specifically for games, known as the TurboGL. Unlike the 3dfx miniGL, which converts OpenGL calls to Glide calls, this is not a wrapper of any sort, but a carefully optimized driver that only functions with games.

The reasoning behind a mini ICD, according to Matrox is as follows:

While Matrox continues to optimize and certify it's full ICD for all application areas (including high-end professional OpenGL applications such as 3D StudioMax), we have dedicated parallel resources to develop a mini-ICD that provides game enthusiasts increased performance on selected popular gaming titles and platforms. The Matrox G400 TurboGL increases performance when running Quake II, Quake III, Unreal and Half-Life on a Pentium III or an AMD K7 system.

The mini-ICD will be integrated in the 5.30 driver that is scheduled for public release on October 8. The 5.30 driver will use the Matrox G400 TurboGL driver automatically when it detects the above mentioned systems and games. Games that are not supported by the Matrox G400 TurboGL will automatically use the full ICD also integrated in 5.30.

The fact that only Pentium III and Athlon CPU's are supported is the thing that stands out the most. This means, of course, that there will not be any support for Pentium II's or Celerons. At first glance, it also seems that K6's will not be supported either, but there is still hope. When questioned about why they made the TurboGL for the Pentium III and the Athlon only, Matrox told AnandTech that the driver relies on SSE or 3DNow! to achieve its performance gains. Thus K6-2/3 support is a possibility, but as it stands now, they are not officially supported. We would love to tell you if the driver works on an Athlon or K6-2/3, but the beta version is Pentium III only, so no Athlon support either. Using the TurboGL on any other CPU simply causes a crash to the desktop. This is quite unfortunate as the Celeron has become one of the most popular CPUs with AnandTech readers as its great overclockability and low cost is a combination that is nearly impossible to pass up.

There are a few other issues concerning the TurboGL at the moment. Only games based on the Quake, Quake 2, or Quake 3 engine are supported, but support for Unreal and its derivatives will be implemented with the official release. Of course, this may not be necessary as the guys at Epic have made huge improvements in their Direct3D performance to the point that it is considerably faster than OpenGL. Image quality is every bit as good as the full ICD in any of these games. Both 16-bit and 32-bit rendering are supported, with 16 or 32-bit Z-buffers as requested by the game. Further, the TurboGL is Windows 9x only, so NT 4 users are out of luck. Currently, there is also an issue with the way the driver reports the color depth (it always says 16-bit), but the difference between 16-bit and 32-bit rendering is clear in Quake 3 and the driver definitely supports 32-bit.



TurboGL Performance

The following test were run using a G400 MAX with a Pentium III 600 to illustrate the performance increase the G400 has seen as drivers have matured.

It is clear from the data above that Matrox has been hard at work on the TurboGL. Performance is significantly higher across the board. At 640x480, performance is up over 50%. We always knew the G400 had plenty of raw power, which allowed it to be pretty fast at high resolutions, but a poor ICD held it back at lower resolutions where fill rate is not limiting. The full power of the G400 is finally unleashed with the TurboGL.

The 5.13 drivers are the original drivers that came with the card upon its release to the public. The 5.25 beta ICD is the latest ICD available from Matrox's site at the time of this writing.. It is interesting to note that by optimizing the full ICD, Matrox has only been able to gain about 10% at low resolution and even less at high resolution. The TurboGL, which is optimized specifically for games, gives a huge performance increase.



Matrox Tweak Utility

Like most vertically integrated companies (those that make both the chips and the cards), Matrox has never officially supported too many tweaking options, such as vsync toggles or overclocking. This wasn't much of a problem as a number of utilities were released around the web. Recently, Matrox decided to go ahead and release their own utility, creatively named "Matrox Tweak Utility." It's only for the G400 and allows overclocking and toggling of vsync. Since Matrox never discloses clock speeds for any of their cards, the overclocking utility works on a percentage basis. Core and memory clock of the G400 series are always locked relative to each other, so there is only one slider to control both clocks.

A unique advantage of the Matrox Tweak Utility is its ability to remember different overclocked settings for each resolution. This allows you to push your card when you need it the most (resolutions you use in games) while allowing the card to remain at default clock while your sitting at your desktop (assuming your gaming and desktop resolutions are different).

Test Setup

Windows 98 SE Test System

Hardware

CPU(s)

Intel Pentium III 600
Intel Pentium III 450

Motherboard ABIT BH6
Memory

128MB PC133 Corsair SDRAM

Hard Drive

Western Digital 8.4GB AC28400 UDMA/33

CDROM

Kenwood 40X TrueX

Video Cards

Matrox Millenium G400 16MB (default clock - 125/166)
Matrox Millenium G400 MAX 32MB (default clock - 166/200)
NVIDIA RIVA TNT2 32MB (default clock - 125/150)
NVIDIA RIVA TNT2 Ultra 32MB (default clock - 150/183)
3dfx Voodoo3 2000 16MB (default clock - 143/143)
3dfx Voodoo3 3000 16MB (default clock - 166/166)

Software

Operating System

Windows 98 SE

Video Drivers

Matrox Millenium G400 5.25 with Beta TurboGL
NVIDIA 2.08 Reference
3dfx Voodoo3 1.02.18

Benchmarking Applications

Gaming

id Software Quake 3 Test 1.08 (OpenGL)
Rage Expendable (Direct3D)

Vsync was disabled for all cards using Powerstrip 2.51.08. The beta TurboGL for the G400 was not installed while running Direct3D tests. The Matrox G400 5.25 drivers also incorporated the

Once again, AMD Athlon testing was not performed because it is not currently supprorted by the Beta TurboGL, but should be at the time of launch.



Pentium III 600 OpenGL Performance

With a Pentium III 600 backing it up, the G400 MAX is pretty much unstoppable, only getting edged out at 640x480 by the Voodoo3 3000. A resolution as low as 640x480 is usually CPU and graphics driver limited, so the showing here is a huge testament to Matrox's new TurboGL. Notice that all the cards that support 32-bit rendering only take a minimal performance hit when 32-bit rendering is enabled. The G400 MAX with 32-bit enabled even beats the TNT2 Ultra at 16-bit.

At 800x600, the G400 MAX and TNT2 surpass the Voodoo3 3000. The G400 MAX even provides 32-bit rendering that is just about 1 fps below the 16-bit of the Voodoo3 3000. The regular G400, TNT2, and Voodoo3 2000 are all pretty much on par.

Upping the resolution to1024x768 produces results relatively identical to results at 800x600.



Pentium III 600 Direct3D Performance

Expendable is a very CPU dependent benchmark, which means that its benchmark results are affected more from an increase in CPU performance versus an increase in graphics card performance. If there is a big difference between two graphics cards in Expendable, then it's a really big difference in the performance of the two cards. A difference of 1 fps in the Expendable test is considerable, so keep your eyes peeled for any differences here.

At 640x480 and 800x600, the relative speed of these cards is pretty much identical, with the TNT2 cards taking the first and second place, followed by the Voodoo3 series, with the G400 series bringing up the rear. The G400 was always known for being a powerful Direct3D accelerator, but it looks like NVIDIA and 3dfx have been able to tweak their drivers to push them ahead.

Bumping things up to 1024x768 juggles the rankings a bit. The Voodoo3 3000 takes the top spot, followed by the TNT2 Ultra and the G400 MAX. The Voodoo3 3000 has the most raw power and it flexes it muscle here.



Pentium III 450 OpenGL Performance

3dfx comes out ahead with both of their cards on the Pentium III 450, followed by the G400 series and the TNT2. The difference between all the cards is not huge, just 10% from fastest to slowest.

Once again, the differences are not huge, but the finishing order changes, with Matrox taking the lead.

At 1024, Matrox maintains its lead, but the TNT2 and Voodoo3 swap places. Speed differences are much more apparent at these higher resolutions.



Pentium III 450 Direct3D Performance

NVIDIA again commands the lead at 640x480, followed by 3dfx and Matrox.

At 800x600, the G400MAX jumps ahead of the Voodoo3's, but otherwise there's very little change.

Everything changes at 1024x768. This time the TNT2 Ultra leads the higher end cards, followed by the Voodoo3 3000 and the G400 MAX. For the slower cards, the Voodoo3 and TNT2 swap places.



Matrox G400 16-bit vs. 32-bit Z-Buffer

The following tests were run on a G400 MAX and Pentium III 600 CPU to illustrate the effects of 16-bit vs 32-bit Z-Buffer when rendering at 32-bit color.

There's been considerable debate about whether or not Matrox is "cheating" on benchmarks by using a 16-bit Z-buffer when 32-bit rendering is enabled. However, its clear from the above graphs that the performance difference is fairly small --10% at most. Clearly, the effect is not huge, and most users will not notice the difference in Z-buffer depth. However, for those that must have it, in Matrox's driver utility, there is an option to enable the 32-bit Z-buffer.



Conclusion

The G200's OpenGL ICD ended up being too little, too late, and Matrox may run into the same problem with the G400's TurboGL. The next generation of cards from NVIDIA, 3dfx, and S3 are due within the next few months and all promise more features and raw power. Thus, if you can, it is probably a good idea to wait a little while and see how things pan out in the next generation. At the very least, the price of the current generation will probably drop significantly when the new cards are finally available.

However, for anyone that needs to buy a card now the TurboGL definitely brings the G400 back into contention as a great all around 3D accelerator. Just remember that the TurboGL only works with Pentium III and Athlon CPUs. Without the TurboGL, the G400 is severely crippled, making a TNT2 or Voodoo3 a better choice for Pentium II, Celeron, or K6 users. Unfortunately for Matrox, that takes out a huge chunk of the market.

Log in

Don't have an account? Sign up now