Maximizing G400 Performance

Matrox has been making quality graphics cards for over 23 years now, and it shows; their graphic cards have always been among the best on the market. The last couple of years we’ve seen the introduction of 3D graphics and the integration of 2D and 3D on one card. Matrox initially ceded the implementation of a 3D engine on a graphics card somewhat to its competitors, as both the Matrox Milleniums and Millenium IIs omitted support of a whole slew of 3D features their competitors had. However, they made a strong comeback with the G200, a quality card that had the 3D features and performance wanted by computer enthusiasts. As always, the image quality was–as we’ve grown accustomed to from Matrox–crisp and clear. The 3D features were all there: anti-aliasing, 32-bit Z-buffer, multi-texturing, etc. But the G200 lacked a decent OpenGL driver, and thus suffered a performance hit when playing OpenGL- or Glide-based games such as Quake2 and Unreal.

Fortunately Matrox didn’t sit idle, as they continued work on their next product, the Millenium G400. The G400 was to be much like its predecessor, but with many more features and improved performance, as well as a die shrunk down to 0.25 micron. When the G400 was released to the general public, it became apparent that Matrox had once again raised the bar for the competition, as the G400 boasted a fill-rate and a broad range of 3D features the others hadn’t even started implementing.

Now that the G400 has been available for a few months, and we’ve seen the arrival of some stiff competition by the likes of the TNT2 Ultra, the 3Dfx V3/3500 and the new GeForce 256, Matrox has once again raised its performance standards by releasing a new driver set and Tweak Utility that puts the G400 up there with the best.

But before we dive into the benchmarks, and all the tweaking needed to get the G400 blazing, let’s first take a closer look at some features that clearly set the G400 apart.


Under The Hood – Part 1

256 bit DualBus

Building on the success of the G200’s 128 bit DualBus architecture, the G400 effectively doubles the graphics engine bandwidth by moving to a 256 bit DualBus architecture. That may sound like just another marketing phrase, but if we take a closer look, there is something more to it.

The DualBus architecture actually enables the graphics engine, the actual processing unit within the graphics accelerator, to simultaneously process input and output data. It does so by using two 128 bit buses–hence the “DualBus”–one dedicated to input and the other to output. To maximize data transfer, data is being read from the graphics engine and being sent to the graphics engine on every clock cycle. This achieves a maximum data throughput at all times, and keeps the buses from unproductive idleness.

Furthermore, by using a 128bit memory bus, and subsequently clocking the memory to a higher clockspeed than the graphics engine, the 256bit DualBus is able to read and write data to the memory without the memory sitting idle. And the DualBus architecture allows it to do both in one clock cycle, further upping its performance.


Although the G400 is a full-featured AGP 2X graphics accelerator, it is also designed to take full advantage of the AGP 4X specification.

AGP graphic cards actually access the main memory by using DMA (Direct Memory Access) transfers, very much like many other devices in your system. Large data buffers inside the G400 allow it to optimize the fetching of commands and data from different locations in memory–which basically means that these data buffers prevent long waiting times in the data fetching process across the AGP bus. This optimizes the data throughput across the AGP bus, as fewer clock cycles are needed to get the data from the main memory to the graphics engine, and vice versa.

To take advantage of the high bandwidth made available by the AGP 4X bus, the G400 uses a Symmetric Rendering Architecture, SRA. Within the SRA, the G400 treats AGP memory exactly as if it were local video memory, meaning that it can read and write to it at AGP 4X rates, but still treat it as though it were local video memory rather than memory being accessed across the AGP bus.

To alleviate some of the strain on AGP and local memory, the SRA uses a hierarchical texturing system which actually stores certain image data, such as textures and bitmaps, across either the on-chip cache, local video memory or AGP memory.

With the hierarchical texturing system, small and frequently-used textures are usually stored and read from local video memory, while large and infrequently used textures are stored and read by using AGP texturing from AGP memory. This hierarchical texturing system allows the G400 to optimize use of available memory.


Matrox G400 Turbo Charged

Environment Mapped Bump Mapping

It sounds like yet another hollow marketing phrase, but actually Environment Mapped Bump Mapping is a DirectX 6 quality feature which can be used to substantially increase the virtual realism of 3D scenes. In fact, graphics accelerators that support this feature will be able to render 3D scenes with more realism than ever before.

Environment Mapped Bump Mapping is essentially a technique that allows a much higher level of detail to be added to a scene than is possible with texture mapped polygons alone. Fine details such as the pock-marked surfaces of bricks in a dungeon and scratches on the surface of a wall can be added with ease. Special effects such as realistic water surfaces, heat shimmering off hot asphalt on a summer day, or even air turbulence in flight simulators can also be uniquely accomplished by Environment Mapped Bump Mapping.

The advantages of Environment Mapped Bump Mapping are so profound that anything short of ten pages wouldn’t even cover the basics, so to at least give some sort of a guideline the following summary gives an impression of its workings.

In its simplest form, bump mapping adds realism to textures and objects by creating the illusion of bumps, or variations in surface depth, on an otherwise flat surface. This means that a flat plane can be transformed into the dimpled surface of golf ball, the gnarled bark of a tree or the rough surface of a rock. For bump mapping to be convincing, we must perceive variations in surface depth even though the surface is actually flat.

A flat surface reflects more light than a bumpy surface does, hence the term bump mapping. So if we change the amount of light coming off a flat surface, we create the impression that it is bumped. Bump mapping uses lightning and shading effects on the texture to create the appearance of surface depth.

To create this effect, all areas of the surface must be specified as either elevated or sunken. To do this, a second texture or ‘bump map’ is required to define depth or height for every pixel in the conventional texture map.

To complete the effect, an ‘environment map’ is required. The environment map represents what should be reflected off the surface. It can be as simple as a bright circle representing a single light source or a complex environment map consisting of multiple light sources and effects of other environmental factors such as clouds and shadows.

Vibrant Color Quality Rendering

One of Matrox’s strong points hasn’t been neglected with the G400, and that’s the image quality in both 2D and 3D rendering. The G400’s rendering engine was specifically designed to ensure that multi-textured applications are rendered with the utmost precision, to make sure that the image will not suffer from color banding, tearing or ugly dither patterns. The Vibrant Color Quality Rendering ensures this by using 32 bit precision and rendering for just about everything.

Stencil Buffering

No, this has got nothing to do with a stapler or other office equipment; a stencil buffer, like a Z-buffer, determines whether a particular pixel should be rendered or not. However, unlike the Z-buffer, which represents depth values, a stencil buffer represents a stencil or mask on the frame being selected. For example, the cockpit of a spacecraft is a very simple example of how a stencil is used. The inside of the cockpit acts as a stencil and masks external scenes, so that scenery is only visible in the areas specified by the stencil mask. Thus, instead of rendering all of the scenery and then doing an overlay of the cockpit, the 3D engine would only update visible scenery.

DualHead display

The DualHead display feature allows your G400 to support two monitors with as many as eight different configuration options. DualHead display lets you use either a monitor or an analog Flat Panel as your primary display, and a second monitor, TV, analog or digital Flat Panel as your secondary display. Unlike traditional multi-monitor solutions that simply allow you to extend your applications across two monitors, DualHead display offers a variety of combinations, such as: Dualhead DVD Max, DualHead Zoom and DualHead Clone, that have not been seen before on any other graphics cards. As their names suggest, you can output DVD or other video streams full screen to TV with DualHead DVD Max; zoom part of the desktop full screen to the second display with DualHead Zoom or clone the desktop on a second display with DualHead Clone



Quake 2 ver 3.20 – demo 1, 16-bit color

Variables used at the console :

Timedemo 1
Demomap demo1.dm2

16-Bit           BetaICD   TurboGL

640 x 480      92.9           107.8
800 x 600      67.4           94.5
1024 x 768    65.4           64.4
1280 x 960    44.2           43.6

Quake 2 ver 3.20 – demo1, 32-bit color

32-Bit          BetaICD    TurboGL

640 x 480     92.1            107.2
800 x 600     85.7            91.5
1024 x 768   61.0            60.7
1280 x 960   41.0            40.9

Quake 3 ver 1.05 – q3test1, 16-bit color

Variables used at the console :

Timedemo 1
Demo q3test1

16-Bit          BetaICD    TurboGL

640 x 480     68.1            94.7
800 x 600     46.9            79.0
1024 x 768   30.8            44.7
1280 x 960   21.3            30.0

Quake 3 ver 1.05 – q3test1, 32-bit color

32-Bit          BetaICD    TurboGL

640 x 480     61.2            88.5
800 x 600     40.1            67.4
1024 x 768   23.8            40.6
1280 x 960   15.8            22.2

Well, there you have it–G400 to the max. Even without overclocking the card by using the Matrox Tweak Utility, it gets a huge boost in fps. As we can see, 32 bit is the G400’s playground, as that’s where it really shines. BTW. talking about the Matrox Tweak Utility, that’s another must-have if you want to get every last bit of performance out of your G400. The utility allows you to set a specific overclock rate in % for a given resolution. Most G400’s with 5 ns SDRAM will do +25% without much hassle, and if you’re a G400 MAX owner you might get another +10%.



Matrox once again proved to be on the ball, both by designing a truly remarkable graphics accelerator and by backing it up with a state-of-the-art driver that really pushes it to new heights. Combined with the versatility of the DualHead concept and the next generation 3D features it boasts, the G400 is a 3D accelerator not to be taken lightly.

To maximize performance of your G400 simply follow two steps:

– Download and install the latest 5.30 drivers
– Download, install and configure the MGATWEAK utility

For anyone who plays OpenGL Titles including Quake2/3, Halflife and Unreal, the 5.30 drivers offer an astounding increase in performance through use of the TurboGL mini-ICD.

Leave a Comment