summaryrefslogtreecommitdiff
path: root/20220516-which-gpu-for-a-1999-pc.md
blob: d963bb319548d339af869e9487ed37827660b899 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Which GPU for a 1999 PC?

May 16, 2022

The past few months, I've been having fun with an old PC from 1999. The machine is surprisingly capable as long as you cater to light programs and of course it won't browse the web. One of the things it's really good at though, is retro games from that era. One hardware component of particular interest in this regard is the GPU. The machine originally came with a Matrox G400 PCI graphics card. I quickly replaced it with a supposedly much more powerful GeForce2 MX that leverages the AGP port on the motherboard. After a while though, I began to wonder if this GPU is a good match for this machine. So I set out to run some benchmarks with a few GPUs I have on hand, to try to decide which one to use. This post will include 3DMark test results as well as discussions regarding 16bit vs 32bit color mode, driver overhead, and issues I encountered setting up the GPUs.

## Test platform

For reference, here are the specs of the test platform: 

* Intel Pentium III 550MHz (Katmai)
* 256Mb PC100 SDRAM
* Gigabyte GA-6VXE+ (VIA Apollo)

And the tested GPUs:

* S3 Savage4 Pro: 32Mb SDRAM, 125MHz core, 125MHz memory, driver version 4.12.01.8226
* Nvidia GeForce2 MX: 32Mb SDRAM, 175MHz core, 166MHz memory, driver version 28.32 and 43.51
* ATi Radeon 7000: 64Mb DDR, 166MHz core, 166MHz memory, driver version 4.13.01.7075
* Nvidia GeForce FX5200: 64Mb DDR, 250MHz core, 200MHz memory, driver version 43.51

The Savage4 Pro is the oldest of the bunch, having been released in 1999. Then the GeForce2 MX and Radeon 7000 came out in 2001. Finally, the GeForce FX 5200 came out quite a bit later in 2003. All the GPUs were using the AGP interface.

I should also mention that the Savage4 was finicky on this motherboard: I had to disable AGP 2X in the BIOS to prevent it from freezing the desktop on boot. Thus, it runs in AGP 1X mode in all of the benchmarks. 

## Software

I ran the following benchmarks on Windows 98 SE:

* 3DMark 99 Max
* 3DMark 2000
* 3DMark 2001 SE

I wish I had an actual game or two in this list, but did not include any due to time constraints. Gathering all the data points for this experiment took long enough already.

## Test results

The benchmarks were run with their default settings.

[![3DMark test results](/static/20220515-3dmark.png)](/static/20220515-3dmark.png)

First of all, the different GPUs show very similar performance levels, except for a few numbers that stand out. Maybe the GPU is not the main bottleneck here. Still, the Savage4 Pro is the best GPU on 3DMark 99 Max. This surprised me as this GPU has only one pixel pipeline, just like the Radeon 7000, while the GeForce GPUs have 2. Maybe the S3 drivers are heavily optimized for the benchmark. When switching to a more recent workload such as 3DMark 2000 though, it loses its advantage and all the GPUs are in the same ballpark here. With 3DMark 2001 SE, the Radeon 7000 and Savage4 Pro suffer much more than the GeForce GPUs. I suspect it may be because these GPUs were not really intended to run such workloads, and the switch to 32bpp most likely does not help either. To check this, we're going to isolate the impact of color depth next.

## Test results: 16bpp vs 32bpp

[![16bpp vs 32bpp](/static/20220515-16bpp-vs-32bpp.png)](/static/20220515-16bpp-vs-32bpp.png)

The Savage4 Pro suffers when rendering at 32bpp, and especially so at 1024x768: performance is basically halved compared to 16bpp. It was common for GPUs of that era to suffer in this mode. Maybe if it had a 128bit memory bus, it would do better. Surprisingly, under 3DMark 99, it manages the same score at 32bpp than the GeForce2 MX at 16bpp. Speaking of the GeForce2 MX, its performance is slightly reduced at 32bpp, but the other GPUs are not really affected.

## About drivers 

One thing I've heard about when you run a newer GPU than the rest of the system is driver overhead. Newer GPUs are usually intended to be run with newer CPUs, so the drivers for these GPUs might be more taxing on the CPU. If you are in a situation where the CPU is the limiting factor, having more driver overhead can lower performance. Another thing worth considering is that the performance of the same application on the same GPU can vary with driver version. With all this in mind, I decided to test 3 different drivers with the GeForce2 MX:

* 12.41, released in 2001, close to the release of the GPU
* 28.32, released in 2002, this one is more late GeForce3/early GeForce 4. By then you would typically pair your GPU with a CPU like a 2+GHz Pentium 4
* 43.51, released in 2003, this one is late GeForce4/early GeForce FX. CPUs at this point were around 3GHz Pentium 4

You won't see results for the 12.41 driver in the graph below, because this driver had some issues with 3DMark 99 and 3DMark 2001. It only managed to complete 3DMark 2000 with a score of 3350 points. It's more than double of what I got with driver 28.32, which seems odd. But if the score is real, it may be worth to try to find another driver from that time that is more stable with the GeForce2.

[![GeForce2 MX performance comparison between driver 28.32 and 43.51](/static/20220515-gf2-driver.png)](/static/20220515-gf2-driver.png)

As you can see, there is not much difference between the two drivers, except for 3DMark 2001 which regressed a lot. This might indicate that the driver got more optimized towards newer hardware than the GeForce2. As it only concerns 3DMark 2001, it's difficult to conclude whether the driver overhead increased or not.

## Conclusion

The GeForce2 MX is a bit disappointing. I know it wasn't a high end GPU when it released but still expected more out of it. Maybe it needs more CPU power to show its strength. The same can be said of the FX 5200. I know it's a low end part as well, but given that it's also much newer, I still expected it to perform better than the GeForce2. I feel like those GPUs require a beefier CPU, like something in the gigahertz range maybe. 

The Radeon 7000 is not too shabby but still performs a bit lower than the GeForce2 MX. I also saw some artifacts during 3DMark 2001 SE so I'm not sure about the driver I have used. I did not test any game with it so I can't say whether they would work fine or not. 

I was pleasantly surprised by the Savage4 Pro. Of course its performance is reduced at 32bit color depth, but that does not bother me because the games that this GPU can run well don't benefit much from it in my opinion. For now, it is the GPU I am using. It seems to be a good balance between performance and compatibility with the games I want to play, while also fitting well with the rest of the machine. For instance, I can run Wipeout XL just fine with this GPU while it would crash before I got to the menu with the GeForce2. The Savage4 also offers some features that I would like to try at some point, like the Metal API or S3TC texture compression. Maybe you'll hear more about this GPU when I get to do that.