Recently, I was able to realize one of my freams and acquire a Geforce 256 for cheap. Amzing, I know (remember to always check auctions for unmarked job lots!). And of course I went to test it right away. Surely nobody expected otherwise of me. Anyway, it has been interesting. At the very least, it made me question some things about 3DMark 99 and its fillrate test. With a few more cards under my belt, I can finally pose the most important question: “what’s up with that?”.
One word to begin: fill rate, in ye olde days, was a fairly decent indicator of a graphics card’s performance level. It got outdated as soon as shaders came out, but for anything before 2001, you’d generally get a good idea of whether a card sucked or not, by looking at its fillrate. And the maximum theoretical fillrate is equal to ROPs x core clock. For example, a card with 2 pipelines and core clocked at 90mhz, will give out a maximum fillrate of 180 MT/s. If each pipeline has more than one texture unit, you can further multiply the results for an even higher maximum fillrate, assuming the game can make good use of multitexturing. If, on the other hand, a game can only use single texturing, then having multiple TMUs doesn’t matter and you are limited to the number of pipelines. Easy (right?).
So the cards are:
And these are the results:
There are some expected results, but also some strange things in here. While I’m sure some low numbers can be explained by the antiquacy of the test (3DMark 99 came out before any Geforce!), some other numbers are not so easy to explain.
The Voodoo 3 and TNT2 were the most predictable ones. The 3dfx card only has one pipeline, but two TMUs. So the multitexturing score is almost double that of single texturing, since the card is only able to use both TMUs at the same time when MT is enabled. On the opposite side, the TNT2 can use both pipelines at the same time regardless of fillrate mode, meaning the fillrate is (nearly) maxed in single texturing already, and multitexturing brings no advantage.
The almighty Geforce 2 follows a similar pattern to the Voodoo 3: since each of its 4 pipelines has 2 texture units at its disposal, multitexturing is again almost doubled. The numbers, on the other hand, are far lower than you’d expect with this architecture and its core clock. It should be able to reach 1600MT/s, but only gets to about half that much. We’ll get back to this later.
The Geforce 256 has a much more lopsided architecture, with a whole 4 pixel pipelines but no more than one TMU for each. So the numbers here are weird. The card should not really show any difference between ST and MT, but it does. And quite a bit, in fact.
My first assumption was that, perhaps, 3DMark 99 was not made to use more than 2 render units. That would explain the low Geforce 2 numbers. But if that were so, the MT score for the 256 shouldn’t be so high, since it would only be able to use two of its TMUs Another possibility is that the software simply doesn’t use more than 4 TMUs at once. But again, in that case, the ST score for the 256 shouldn’t be so low.
I should mention another couple things: first, I remember an old test where the Radeon VE, with its fairly unique architecture (1 pipeline and 3 TMUs) was able to reach an almost triple score in multitexturing. So the program definitely can use more than two TMUs for the test. Also, I remember the Radeon 9100 reaching around 800MT/s in single texturing, which is close to the limits of its 250mhz x 4 pipelines . So I can also say the software is not limited to a certain maximum fillrate.
In light of these results, I don’t really know what to say. Maybe a few more tests, perhaps with slightly newer cards, are in order.
Edit: I tested both the Radeon VE again, and the Radeon 7500 which is fairly similar (2×6), and I was wrong – the two cards only get roughly double results in multitexturing. So it would appear that the multitexturing test in 3DMark 99 can only apply two textures at the same time. To be honest, the 3 TMUs architecture of the R100 series was quite unique, and every other AGP card since has had 2 texture units per render unit at most. So there wouldn’t be much point in supporting all three (I wonder if the Radeon 7500 would have had the same framerates with 4 TMUs instead of 6).