VOGONS


Exploring the performance of the Matrox G550

Topic actions

Reply 20 of 75, by swaaye

User metadata
Rank l33t++
Rank
l33t++

It seems part of the influence must be bandwidth starvation. 64-bit DDR was said to be less efficient than 128-bit SDR. Considering even Parhelia lacks any bandwidth saving tech, I'm sure this lacks it too. Can Powerstrip change its clock speeds? It would be interesting to see how it scales at different memory speeds.

Maybe testing those games at 640x480x16 or 1024x768x16 would be insightful alternatives.

Reply 21 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, it's got something to do with memory it looks like. PowerStrip will only clock core and memory together on these cards, but the MGATweak app can do them separately. Downside is clocking just the memory will produce graphical corruptions and freezes.

I tested some games on the G400 by downclocking the core by 11% and then both the memory and core by 11%. There's a small correlation between the ratio of the G55o's performance to the G400's (x axis) and the difference in performance on the G400 with both core and memory downlocked to just the core downlocked:

The attachment nbvgcj.png is no longer available

So it seems the more dependent a game is on memory performance the worse the G550 does against the G400. Of course there are other factors like multitexturing that muddle the difference.

I also added a couple of Direct3D 8 games to the previous tests:

The attachment jtujju.png is no longer available

Comanche 4 fits the trend of 3DMark2000's game #1, where a denser terrain mesh (presumably using triangle strips) performs especially bad on the G550, or especially well on the G400.

If someone has a reliable benchmark rendering a terrain mesh with and without using triangle strips, I can give it a go.

Reply 22 of 75, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie
vvbee wrote on 2024-07-26, 19:24:

Yeah, it's got something to do with memory it looks like. PowerStrip will only clock core and memory together on these cards, but the MGATweak app can do them separately. Downside is clocking just the memory will produce graphical corruptions and freezes.

I'm sorry for jumping on this, I'm playing with Matrox G cards too, I noticed that if I overclock with powerstrip, I noticed that if I change the clock with it (or any driver option) the screen corrupts and the system crash just after (I don't know if it's an incompatibility with my Abit BE6-2).
As per design the matrox cards have the clock linked between core clock and memory clock so what MGATweak I suppose it does it's just modify them both but show just one clock.

Reply 23 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Haven't tried overclocking, but downclocking just the core in MGATweak will show it correctly in PowerStrip as well, and the performance is usually not the same as downclocking both core and memory. Downclocking just the memory gives graphical issues, though depends on the frequency. Wouldn't be surprised if downclocking just the core gives them as well in certain scenarios.

Reply 24 of 75, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie
vvbee wrote on 2024-07-26, 20:09:

Haven't tried overclocking, but downclocking just the core in MGATweak will show it correctly in PowerStrip as well, and the performance is usually not the same as downclocking both core and memory. Downclocking just the memory gives graphical issues, though depends on the frequency. Wouldn't be surprised if downclocking just the core gives them as well in certain scenarios.

I'm 95% sure that the clock between core and memory are linked. I will try the program myself but every single card from the Matrox Mystyque onward have the clock of memory and ram linked, you can't increase one without increasing the other...

Also, I don't know what version of MGATweak you are using but the one linked in the first page of the topic supports only up to G400, in fact when I tried it now:

The attachment Immagine.jpg is no longer available

Reply 25 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Only been clocking the G400. The clocks very much look to be adjusting individually.

Reply 26 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Wrote a basic app in legacy OpenGL to render 60k triangles individually and as a strip:

The attachment obntr.png is no longer available

No difference between the G55o and the G400, same as in GPUBench for OpenGL. Would be nice to do the same test in Direct3D, but dislike coding with it.

Also tested (in Windows 98, like all the other tests) the OpenGL ICD that comes with the Windows 2k/XP driver pack, a slightly newer version. In GPUBench with the G550:

The attachment bnydl.png is no longer available

No big changes, a couple percent faster triangle rendering. In games:

The attachment bhjlxsz.png is no longer available

So no noticeable difference in performance between these ICDs.

Also tested the other two drivers available for the G550 in Windows 98, versions 672 and 682. No difference in Quake 2. The latest one (683) and 672 were identical in Quake 1 and game #1 in 3DMark2000.

Last edited by vvbee on 2024-07-27, 22:55. Edited 1 time in total.

Reply 27 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Some games at 640 x 480 vs. 1024 x 768, Direct3D except for Quake 3:

The attachment mebmo.png is no longer available

The data come from tests I did last year (https://www.youtube.com/watch?v=68qVuem7zco). Apart from Quake 3, the FPS readings are from one particular point in the benchmark, not averages. I assume Midtown Madness is in 32-bit color, but not sure.

So in these cases, resolution had no clear effect on the cards' relative performance.

Reply 28 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Here's something. Rendering a rotating textured mesh in OpenGL vs. Direct3D, polycount on x and FPS on y:

The attachment tgwlpi.png is no longer available

These are my own renderers so no guarantee that they behave like commercial engines or don't do something odd. I tried both Direct3D 5 and Direct3D 7 with the 100-poly mesh, identical FPS so I did the rest of the tests using Direct3D 7.

In effect, the G400 and the G550 behave fairly identically in OpenGL, but in Direct3D the G400 is considerably faster up to anywhere between 1000 and 5000 polys, and after that they perform the same. The pattern does show up in OpenGL as well, but much less pronounced.

What's causing this? The renderer isn't using strips, and I tested a displaced version of the mesh where no vertices were shared, same FPS.

This could explain why low-poly games like Homeworld and Formula 1 97, ones that also don't seem to be using multitexturing, run better on the G400, so long as the CPU is fast enough to push the triangles. The performance difference in Homeworld in Direct3D is about 20% in favor of the G400 but virtually even in OpenGL.

May also explain the lower texture benchmark result for the G550 in 3DMark2000, since the test renders a tube mesh to display the textures in. No idea what polycount it has.

Since the size of the mesh on the screen stays the same regardless of polycount, it could be a matter of polygon size in screen space, whether to do with texture sampling or some other kind of interpolation in rasterization, or caching, or something. Or maybe some driver setting has enabled a compromising optimization for Direct3D with the G400.

Reply 29 of 75, by swaaye

User metadata
Rank l33t++
Rank
l33t++

G400 has faster setup rate with Direct3D maybe? You could also play around with TurboGL on Win9x.

An interesting thing about G550 is it is apparently the only product to come from the scrapped G800 chip/architecture. It was supposed to be a DirectX 7 update to G400.

Reply 30 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

That particular test is CPU-bottlenecked from about 3000 triangles onward:

The attachment rgtsf.png is no longer available

This isn't comparable to a commercial renderer, but in any case seems likely the G400 is for real overperforming relative to the G550 in plain Direct3D rendering speed.

Here's results for just the G400 with its various subsystems underclocked:

The attachment lobdx.png is no longer available

So, nothing to do with the triangle setup Warp engine, looks like pure rasterization speed.

But because you need to underclock the G400's core or memory by 30-40% to get down to G550 speeds, I don't see that the difference would be about memory inefficiencies. Seems too large of a gap. Frankly I don't know how the G400 can both be much faster in this test and benchmark an identical fillrate to the G550 in 3DMark2000.

To me it seems more likely the G400 got an optimized Direct3D driver and the G550 for whatever reason didn't. But this still wouldn't explain why, for example, in OpenGL the G550 is progressively less faster from id tech 1 to 2 to 3, you'd imagine an equal fillrate and better multitexturing would do the opposite. So maybe it does come down to more complex data = slower, i.e. extra latencies multiplied.

Reply 31 of 75, by Putas

User metadata
Rank Oldbie
Rank
Oldbie

What could be lost with a reduction of memory bus width? Ability to transmit more words, memory interleaving.
Quake 3 with its effects and geometric density is less dependent on fillrate than GLQuake in a very abstract sense since various fillrates apply differently to multiple settings.

Reply 32 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

As the cards have the same bandwidth, it can't be just about the number of words, has to be about the pattern of access?

I benched Quake 3 earlier with high textures and models vs low textures and models, the G550 was 18% faster with high both, 18% faster with low textures, and 20% faster with low both. So within the margin of error most likely.

Same thing with 3DMark20o0's texture benchmark, the relative FPS difference between the cards stays the same as you increase the amount of texture data. That seems to be saying the relative transfer rates remain the same as you add more data, and that there aren't asymmetric cumulative latencies per every x amount of data.

I also benched some other Direct3D games high vs low settings earlier, but the results aren't so interpretable since some games on low disable multitexturing. There was no notable difference in RealMYST, Trainz, and Monster Truck Madness 2. Homeworld on the G550 was 13% slower on high and 21% slower on low, so reducing complexity had the opposite effect, and looking at its source code I don't immediately see the game using multitexturing. Homeworld might be a special case though since its backgrounds (disabled at low settings) use large untextured colored polys, and the G550 at least according to GPUBench in OpenGL has a slightly higher fillrate on untextured polys, though not by much.

Reply 33 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Tested various older drivers for the G400. The 5.xx series are faster in OpenGL, but the earlier ones of it have more graphical issues. The OpenGL ICD for 5.52 seems relatively ok and also works together with the newer 6.83 drivers on the G400, as here in my test renderer:

The attachment ohgit.png is no longer available

The results show up in some games I tested as well, with OGL more or less matching D3D performance:

The attachment gytyty.png is no longer available

Unfortunately the 5.52 ICD doesn't work with the G550, at least not together with 6.83. Just thinks for a moment and defaults to the software renderer.

So basically the 5.52 ICD matches the performance of 6.83 Direct3D on the G400, while the 6.83 ICD is gimped in the same way as Direct3D on the G550. To me this implicates the G550 D3D drivers more than memory performance. Doesn't prove it, but looks plausible, although why the D3D drivers would be underperforming on just the G550 isn't clear.

Reply 34 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

You can get the pre-G550 PowerDesk and driver versions to work on the G550 by modifying the infs a bit. Works down to PowerDesk 6.0 (around 6.7 was the G550's release) but not earlier. The multitexturing speedup in GLQuake is there as well, so the 6.x series is unified from the get go, well before the G550 was launched. The card is identified in PowerDesk as a G800 prior to 6.7 or so, then G550. Kind of sad.

Doesn't really seem to be any performance benefit to running the G400 drivers on the G550 though. And the 5.x ICDs still won't work.

Reply 35 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Averages of individual 3DMark2000 test scores across some versions of the G400/G550 Windows 9x drivers, on the G550, relative to the 6.83 results:

The attachment kmjvg.png is no longer available

The 6.72 and 6.83 support the G550 officially, the rest of them are G400 drivers with modified infs to install on the G550. The 6.83 is the latest Windows 9x driver as far as I know.

The files in the 6.10 bundle are dated October 2000. The first official drivers for the G550 appear to be 6.71, which are dated September 2001. The G550 came out in November 2001. So seems its Direct3D performance comes from year-old G400 drivers, as far as 3DMark2000 is concerned anyway.

Per-test differences between 6.83 and 6.50 in 3DMark2000:

The attachment gtvrhy.png is no longer available

Looks like somewhat better multitexturing and triangle throughput with the 6.50 (which are dated February 2001). Not sure why game #2 takes a hit, but suggests that some games will benefit and some will suffer.

The 6.83 vs the 6.50 in a few games, measured from a single point of gameplay:

The attachment dkigtr.png is no longer available

No idea why Moto Racer 2 benefits so much from the 6.50, but overall it looks to be the faster driver and achieve either better or similar performance compared to the 6.83.

Reply 36 of 75, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

In the first half of the noughts, I definitely had one of these era Matroxes, was a dualhead, IDK if it was a G400 or G450 Max or what though. Unfortunately, I have not seen in it years, and a cryptic scribble on some notes I had might indicate I traded it away... quite unusual for me. Anyway, one thing I remember was that despite being kinda slow on all the 3DMark test, the 3D image quality was pretty awesome and it did some of the best renderings in the post game bump mapping etc tests.

I am kind of hoping it turns up though, as would like to explore it's character again. At the time I had it, I was more interested in being up to date with 3D performance etc, and it was 3 or 4 years old by then. I remember some disappointment for some reason in it's dual head capability, when I was trying to run 2 monitors. I think it was that it wouldn't do D3D or Direct Draw on the 2nd monitor. Since the entirety of the point was having video or other happenings on the 2nd monitor while I worked on primary, and most of those needed at least Direct Draw, I was bummed out. IDK if this was a motherboard incompatibility or a configuration glitch or other "me" problem, or a driver shortcoming or actual hardware limitation. I believe I went to a two card config with my previous V3 PCI as secondary and my GF3 which had been replaced in the other machine by a GF4.

Well anyway, nice work so far with these tests and exposition of the workings of these things. If mine turned up, I'd want to try it on GPU Caps viewer to see what the low end OGL tests on there made out of it.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 37 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

The G400 is the same era and level as the Voodoo3, TNT 2, etc., so 1999. The G550 is in effect a G400, so same era. The mid 2000s would've been too late for them, especially the Voodoos.

Reply 38 of 75, by swaaye

User metadata
Rank l33t++
Rank
l33t++

vvbee have you been able to get vsync working in OpenGL with these cards?

Reply 39 of 75, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Haven't tried, but PowerStrip's OpenGL vsync toggle doesn't seem to have an effect on the G400 at least.

Benchmarks comparing the G550 and G400 at 1600 x 1200 32-bit, with an Athlon 64 @ 1.6 GHz, using the 6.83 drivers:

The attachment jkhdsm.png is no longer available

Compared to the games running at 800 x 600 16-bit on an Athlon 64 @ 2.4 GHz, the only relative standings that changed are for Max Payne and Homeworld, where in the former the G550's lead went from 20% to 0% and in the latter the G400's lead from 15% to 27%. Max Payne's FPS is so low though that it's hard to be confident, as these values are averaged by hand from three points in the intro video. A difference of 2 FPS would already be 15%.

So, raw memory performance doesn't look to explain much of the difference between the cards. Though it's interesting that in Homeworld where the G550 was already falling behind the difference grows with more pixel data.

Results using the 6.50 drivers for the G550 were within margin of error, 1 FPS one way or the other compared to 6.83.