VOGONS


The inverse Quake III benchmark

Topic actions

First post, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie

Hello everyone!

There are an infinite number of Quake III benchmarks trying to find the fastest graphics card for each generation.
But what about the other end of the scale?
What are the slowest 3D accelerators that can run render Quake III?
This is what this benchmark is about. 😉

I ran the frame grabber, so there's a video for each benchmark run.
I think there are also a few surprises in there for the inclined collectors.

Without further ado, here's the benchmark list of the worst repressed childhood traumas!

Graphics cards with 4+ MB RAM in 640x480 15/16Bit:

The attachment Vogons_4MB+_1_2.png is no longer available

Graphics cards with 2 MB RAM at their maximum resolution at 16 bit:

The attachment Vogons_2MB+_1_1.png is no longer available
Video links

3Dlabs GLint 300SX
Number Nine Imagine 128 II
Matrox Millennium MGA-2064W-R3
Intergraph RealiZm Z13
Matrox Prodictiva G100
S3 VIRGE
S3 VIRGE DX
Ati Rage II + DVD
Ati Rage II
Ati Rage II + DVD
Trident 3dImage 9750
Matrox Mystique
3Dlabs Permedia NT
SIS 6326 H0
PowerVR PCX1
3Dlabs GLint MX + GLint Delta
Cirrus Logic Laguna 3D CL-GD5464
PowerVR PCX2
Number Nine Revolution 3D
Trident Blade 3D
Matrox Prodictiva G100
Chromatic Mpact! 2
Number Nine Revolution IV
3dfx Voodoo 1
3Dlabs Permedia 2
Intel i740
Ati Rage Pro (Turbo)
Nvidia Riva 128
3Dlabs Permedia 3
Matrox Millennium G200
Nvidia Riva TNT
3dfx Voodoo Rush

Matrox Mystique 2MB
S3 VIRGE 2MB
Ati Rage II + DVD 2MB

Test system

- Intel Pentium III, S370, 1000 MHz, 256kB cache
- Asus CUBX REV 1.02, 440BX
- Creative Soundblaster 128 CT4810

Benchmark with Quake III Arena

Quake III is particularly suitable for this project, as it starts with almost every OpenGL implementation and runs faster than GLQuake at low details.
I used patch version 1.32. It contains the demo level "FOUR.DM_68".
https://www.moddb.com/games/quake-iii-arena/d … -release-132-pc

To bench Quake III, enter the following in the console:

/timedemo 1
/demo four

To use OpenGL MCD implementations, the config must contain the following:

seta r_allowSoftwareGL "1"

A Q3config.cfg, which I used as a basis in my later tests, can be found attached:

The attachment Q3config.cfg is no longer available
Techland OpenGL wrapper

This benchmark was only made possible by the Techland OpenGL wrappers, as many early 3D maps were only capable of proprietary APIs or Direct3D.
https://www.gog.com/en/game/crime_cities

The game Crime Cities by Techland (Quake 2 Engine) on GOG includes some OpenGL wrappers in the “Driver” folder.
The wrappers also work in Quake 3!

There are:
- TC3DFX - 3Dfx Glide to OpenGL
- TCD3D - DirectX to OpenGL
- TCPVR - PowerVR SGL to OpenGL (PCX1 and 2)
- TCMST - Matrox MSI95 to OpenGL (Matrox Mystique)
- TCS3D - S3 s3d to OpenGL (S3 Virge and Trio)

Simply copy the corresponding OpenGL32.dll into the desired game directory or "C:\Windows\System" and have fun 😉

The wrappers can also be found in the demo:
https://www.fileplanet.com/archive/p-38138/Cr … s-Demo/download

OpenGL ICD and MCD in WinNT4.0

Here a great explanation:
https://retro.swarm.cz/nt4-opengl-mini-client … ti-rage-ii-pro/

And here is a quote from a readme of the WinNT4.0 Ati Rage II driver "nt404392":
"Q3. What is an OpenGL ICD (Installable Client Driver) and an OpenGL MCD
(Mini Client Driver)? Which one of these does ATI supply under
Windows NT?
A3. There are 3 components to an OpenGL driver: a lighting mode,
a transformation mode and a rasterization mode. In an ICD
implementation all 3 modes or components are done by the vendor
(i.e. ATI). In an MCD implementation the lighting and
transformation modes are done by Microsoft, leaving the vendor
to concentrate on the rasterization mode. For 3D RAGE PRO,
3D RAGE II+ and 3D RAGE II products, a OpenGL MCD is available
for Windows NT 4.0."

Failed tests

Matrox Impression Plus (1994)
This card is supposed to have very limited OpenGL support in WinNT3.51.
I have tried it, but get errors in every OpenGL demo I have found.
Also, Quake III unfortunately does not run in NT3.51:

The attachment 2025041310395904.png is no longer available
The attachment 2025041309435394.png is no longer available

Take part!
Give me your broken OpenGL implementations, your slowest 3D nightmeares! 😉
Grab the Q3config.cfg in the attachment, set the textures to minimal and the resolution to 640x480 and then go!
You don't have to make videos. I just wanted to share my personal suffering.

The following benchmarks would be particularly interesting:
- Trident 9850
- Matrox Mystique 220
- Ati Rage 3D
- Chromatic Mpact!
- Rendition Verite V1000
- Alliance AT3D (Dualplanar Rush without daughterboard)
- Artist Graphics 3GA
- Yamaha YGV611 or YGV612

You can also find this benchmark thread on the German forum VoodooAlert:
https://www.voodooalert.de/board/forum/index. … 8739#post518739
Attachment:

The attachment Q3config.cfg is no longer available
Last edited by RaVeNsClaw on 2025-04-16, 18:39. Edited 12 times in total.

Reply 1 of 63, by auron

User metadata
Rank Oldbie
Rank
Oldbie

it's interesting to see riva128 and rage pro beat voodoo1 by that much, but the rage can use AGP texturing and the PCI riva has something similar via driver. does reducing the RAM texture memory in the riva driver to 0 result in less FPS in quake 3?

riva128 is clocked twice as fast as voodoo1 of course, but results can still be much closer in older games. i think it shows that voodoo1 isn't that well suited to very fast machines like this even beyond the other issues it has, with the riva128 showing better scaling in newer titles.

Reply 2 of 63, by Putas

User metadata
Rank Oldbie
Rank
Oldbie

Amusing project.

I guess the Riva and Rage Pro gain more from reduced texture resolution than the Voodoo.

What is the MCD magic? How come the Millenium and Imagine II run the game with textures? And even with a filter that reminds me of G100?

Reply 3 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie
auron wrote on 2025-04-13, 18:25:

it's interesting to see riva128 and rage pro beat voodoo1 by that much, but the rage can use AGP texturing and the PCI riva has something similar via driver. does reducing the RAM texture memory in the riva driver to 0 result in less FPS in quake 3?

riva128 is clocked twice as fast as voodoo1 of course, but results can still be much closer in older games. i think it shows that voodoo1 isn't that well suited to very fast machines like this even beyond the other issues it has, with the riva128 showing better scaling in newer titles.

Well, it was different back then. 😉
It was normal that you'd just install whatever came on the CD the graphics card came with.

Here a qote of John Carmack in Feb 1998, about one year after release of the Rage Pro:

ATI rage pro
----
On paper, this chip looks like it should run almost decently - about the performance of a permedia II, but with per-pixel mip mapping and colored lighting. With the currently shipping MCD GL driver on NT, it just doesn't run well at all. The performance is well below acceptable, and there are some strange mip map selection errors. We have been hearing for quite some time that ATI is working on an OpenGL ICD for both '95 and NT, but we haven't seen it yet. The rage pro supposedly has multitexture capability, which would help out quite a bit if they implement the multitexture extension. If they do a very good driver, the rage pro may get up to the performance of the rendition cards. Supports up to 16MB, which would make it good for development work if the rest of it was up to par.

The thing is, Riva128 and Rage Pro got actual OpenGL ICD implementations quite a while after release. Famously Nividias were just better.
On Voodoo 1 youre stuck with a MiniGL wrapper that sits between your game and your GPU to this day.

Just for comparison:
Even on a Rage 128 Pro I only loose about 25% performance when using the Techland Direct3D to OpenGL wrapper.
On a TNT I loose about 50%. It's just more efficient.

Reply 4 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie
Putas wrote on 2025-04-13, 18:40:

Amusing project.

I guess the Riva and Rage Pro gain more from reduced texture resolution than the Voodoo.

What is the MCD magic? How come the Millenium and Imagine II run the game with textures? And even with a filter that reminds me of G100?

You can find the answer under the spoiler "OpenGL ICD and MCD in WinNT4.0" in the first post. 😉
I'm the same. I was playing around with old GPUs for 20 years and I also just learned about it by reading John Carmacks .plan Archive.
That is also why I put that text on the beginning of those videos with MCD drivers.

Basically in an OpenGL MCD implementation the GPU only does just what it can and the rest is done by the CPU.
The GPU driver interfaces to the OpenGL software renderer that came with WinNT4.0.
That software renderer is the reason that someone ran Quake III on an 386 a while back.

Drivers with MCD were just much faster and cheaper to make than an ICD. So often you had MCD support in the beginning and a full ICD after a year or two.
I'm not shure where the actual line of MCD implementations was. The i740 result suggests, that by 1998 the GPU could do a lot more than rasterization with MCD.

Usually Quake III refuses to start with software OpenGL, with or without MCD. You have to add the following line to Q3config.cfg:

seta r_allowSoftwareGL "1"

Btw.
OpenGL MCD implementations were not only developed on the Matrox Millenium first.
The Millenium was even the only card with OpenGL drivers included with NT4.0. 😉

Last edited by RaVeNsClaw on 2025-04-13, 19:14. Edited 1 time in total.

Reply 5 of 63, by auron

User metadata
Rank Oldbie
Rank
Oldbie

those cards with unified memory can also use it more efficiently, compared to v1 that has allocated 2mb only to the framebuffer, which is probably another factor in later titles. riva128 also has some driver setting related to square/non-square textures that is said to make it use its memory more efficiently as well, though i don't know if this is relevant to q3.

RaVeNsClaw wrote on 2025-04-13, 18:50:

On Voodoo 1 youre stuck with a MiniGL wrapper that sits between your game and your GPU to this day.

that voodoo1 q3 driver is not a minigl though, those were never officially supported in q3. i think brian hook wrote about that in one of those old .plan files.

those 3dfx minigls for use in quake, half-life and such actually run faster in CPU limit compared to the ICD. also the 3dfx ICD is rumored to be a glide3 wrapper due to a glide3 dependency anyway.

Reply 6 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie

What I find most remarkable is the GLint 300SX.
It uses the system memory for textures and is just a tad slower than the Intergraph RealiZm Z13, also without texture memory.
But we know,that the RealiZm can be as fast as a Voodoo 1 when a texture module is present...

Also if we compare the glitches of the 300SX and the Permedia, they are practically identical.
It could be a driver thing, but it looks like the first Permedia uses quite a similar 3D core to the 300SX, just with texture memory and probably higher clock. Well, that makes a lot of sense I guess?
Higher texture resolutions also lead to less glitches with texturing. Maybe a rounding error?

The 300SX can render Quake III with high detail in high resolutions with few glitches, but well, very slowly.
But that chip has just 1 million transistors! That is 1/5 of an Rage II!
Shure, it does not do 2D, or MPEG decoding. But that is quite lean.

It really seems like the 300SX set the OpenGL standard on x86.

Last edited by RaVeNsClaw on 2025-04-13, 20:41. Edited 2 times in total.

Reply 7 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie
auron wrote on 2025-04-13, 19:12:

those cards with unified memory can also use it more efficiently, compared to v1 that has allocated 2mb only to the framebuffer, which is probably another factor in later titles. riva128 also has some driver setting related to square/non-square textures that is said to make it use its memory more efficiently as well, though i don't know if this is relevant to q3.
[...]

I think it's the other way around.
The Voodoo 1 was so very fast at 50 MHz for its time because it had two memory channels for the frame buffer and four memory channels for texturing to do bilinear filtering without performance loss. I had an Voodoo 1 with 8 MB once. It wasn't much faster.

Also Riva128 was Nvidias second generation 3D chip and a year later. Voodoo 1 was the first chip of 3dfx.
You'd have to compare the Riva128 against the Voodoo 2. 😉

Reply 8 of 63, by auron

User metadata
Rank Oldbie
Rank
Oldbie

the 4-way interleave that tarolli mentions shortly after is more realistic than 4 memory channels on the TMU, because that kind of granularity came years later with geforce3. voodoo1 has a 64-bit bus to EDO from each of the chips while riva128 has a 128-bit bus to its (faster) SGRAM, so i don't think riva is much behind there. it's also supposed to do free bilinear filtering as well.

from carmack's .plan file about the riva 128:

NVidia Riva 128 ----- Very good throughput, very good fillrate, fair quality, fair features. […]
Show full quote

NVidia Riva 128
-----
Very good throughput, very good fillrate, fair quality, fair features.

The fastest fill rate currently shipping, but it varies quite a bit based on texture size. On large textures it is slightly slower than voodoo, but on smaller textures it is over twice as fast.

On paper, their triangle throughput rate should be three times what voodoo gives, but in practice we are only seeing a slight advantage on very fast machines, and worse performance on pentium class machines. They probably have a lot of room to improve that in their drivers.

In general, it is fair to say that riva is somewhat faster than voodoo 1, but it has a few strikes against it.

The feature implementation is not complete. They have the blend mode for colored lighting, but they still don't have them all. That may hurt them in future games. Textures can only be 1 to 1 aspect ratio. In practice, that just means that non-square textures waste memory.

The rendering quality isn't quite as high as voodoo or rendition. It looks like some of their iterators don't have enough precision.

Nvidia is serious and committed to OpenGL. I am confident that their driver will continue to improve in both performance and robustness.

While they can do good 3D in a window, they are limited to a max of 4MB of framebuffer, which means that they can't run at a high enough resolution to do serious work.

this is from 1998 though and i've noticed with the 3.37 drivers from 1999 there can be a 50% boost in FPS results over earlier drivers (inaccurate due to double-buffered vsync, but anyway). the shortcomings are some texture shimmering and blending issues, which according to my testing seem to be related to 5-6-5 texture support in the driver.

anyway, if the 8mb voodoo performed the same low quality texture q3 isn't as demanding as i estimated. carmack does say it performs twice as fast on small textures than v1, so that does seem like the most likely explanation for this performance.

Reply 9 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie

Well, you got me there! 😀
It's nice to see that I've came to the right place with my endeavor! 😁

If Riva128 also clocks twice as fast and can do bilinear in the same number of clocks as the voodoo, then twice the performance makes absolute sense. 😉

Well, normally I would add a lot of newer cards into the mix, but then it would devolve into a usual benchmark thread.
So I added the TNT more as a reference point.

Right now I'm way more interested, if there are any other supposed 2D cards that have partial 3D implementations with an MCD driver under NT?

Reply 10 of 63, by BinaryDemon

User metadata
Rank Oldbie
Rank
Oldbie

I get that it’s for 3d accelerators but I’m curious what the wrapper actually requires. Like no chance of a 2mb or 4mb ISA card running it?

Reply 11 of 63, by Putas

User metadata
Rank Oldbie
Rank
Oldbie
RaVeNsClaw wrote on 2025-04-13, 19:52:

The 300SX can render Quake III with high detail in high resolutions with few glitches, but well, very slowly.
But that chip has just 1 million transistors! That is 1/5 of an Rage II!
Shure, it does not do 2D, or MPEG decoding. But that is quite lean.

Because the driver is doing so much for the 300SX in software.
What makes you think Rage II had 5 million transistors?

Reply 12 of 63, by darry

User metadata
Rank l33t++
Rank
l33t++
Putas wrote on 2025-04-14, 04:42:
RaVeNsClaw wrote on 2025-04-13, 19:52:

The 300SX can render Quake III with high detail in high resolutions with few glitches, but well, very slowly.
But that chip has just 1 million transistors! That is 1/5 of an Rage II!
Shure, it does not do 2D, or MPEG decoding. But that is quite lean.

(...)
What makes you think Rage II had 5 million transistors?

This one source, that could be wrong, of course.
https://www.techpowerup.com/gpu-specs/ati-3d-rage-ii.b2297

Reply 13 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie
Putas wrote on 2025-04-14, 04:42:

What makes you think Rage II had 5 million transistors?

That was a number I remembered reading here in an atricle by Dr. Jon Peddie:
https://www.computer.org/publications/tech-ne … els/ati-3d-rage

But I'm not shure which revision of Mach64GT that number actually applies to.

And before anyone misinterprets the table in the article:
Mach64 2D chips up to revision Mach64CX supported ISA and VLB.
Mach64GT (Rage I, II) requires PCI, even if it should be pin-compatible. 😉

EDIT: That article also states that the 3D portion of Rage 3D was developed with a team of Kubota graphics that Ati aquired.

Last edited by RaVeNsClaw on 2025-04-14, 06:48. Edited 1 time in total.

Reply 14 of 63, by myne

User metadata
Rank Oldbie
Rank
Oldbie

Curious how some of those would go with my q3a config for a special beast

Re: AMD K6 Quake2 and Quake 3, aiming for stars.

Bored enough to try a couple of the more common ones?

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 15 of 63, by Putas

User metadata
Rank Oldbie
Rank
Oldbie
RaVeNsClaw wrote on 2025-04-14, 06:30:
That was a number I remembered reading here in an atricle by Dr. Jon Peddie: https://www.computer.org/publications/tech-ne … els […]
Show full quote
Putas wrote on 2025-04-14, 04:42:

What makes you think Rage II had 5 million transistors?

That was a number I remembered reading here in an atricle by Dr. Jon Peddie:
https://www.computer.org/publications/tech-ne … els/ati-3d-rage

But I'm not shure which revision of Mach64GT that number actually applies to.

And before anyone misinterprets the table in the article:
Mach64 2D chips up to revision Mach64CX supported ISA and VLB.
Mach64GT (Rage I, II) requires PCI, even if it should be pin-compatible. 😉

EDIT: That article also states that the 3D portion of Rage 3D was developed with a team of Kubota graphics that Ati aquired.

I am not happy with Jon Peddie. He uses the incredible transistor number even for the first 3D Rage.
And he promised me attribution, but I do not see any, despite sentences of the article were obviously taken from my article.

Reply 16 of 63, by DEAT

User metadata
Rank Member
Rank
Member

I'd recommend retesting the SiS 6326 with the Aopen drivers available on Putas' website as you'll get much worse results than the Techland wrapper - even better, do it with a SiS 6326 that has a 32-bit memory bus.

Reply 17 of 63, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Wonder if 32-bit color can inch a little more FPS out of those PowerVRs as they can be limited by PCI throughput...

Ironically Quake3 *could've* had some extra TLC to the 1st gen 3d cards as they've already got vertex lighting in along with a GL1.1 baseline. Premultiplied alpha blend conversions of blended shaders and demoting alpha channels on non-transparent shaders would've helped PowerVR immensely, as well as not relying on depthrange and just forcing the sky polys to go really far. But,

Brian Hook, GDC, March 1999 wrote:

PowerVR? ..... too bad

apsosig.png
long live PCem

Reply 18 of 63, by RaVeNsClaw

User metadata
Rank Newbie
Rank
Newbie

Well, you're not wrong about that.
On the other hand, Quake III runs perfect if you support the OpenGL standard.

What I find weird are the Techland wrappers.
I mean, there where OpenGL wrappers around that were sold, like WickedGL to 3dfx users.
But somebody at Techland just wrote them and packed them into their game, and nobody noticed?

While at the same time so many chip makers were unable to write wrappers with similar performance?
I mean the Number Nine Revolution IV runs 325% faster with the Techland TCD3D wrapper than with their own...

Techland could have partnered with many chipmakers...