Shagittarius wrote on 2021-06-27, 21:37:
It seems heat related to me, giving the machine a rest brings it back to its full performance.
Voodoo5 has no temp sensor or ability to downclock in an attempt to throttle and protect the chips from overheating. Neither do the Athlons until perhaps Athlon 64(?). These concepts would largely emerge further down the line, usually first designed for laptops.
What you describe sounds very much like Double Buffered V-Sync. I'll largely simplify, but here's what's going on. Let's say you have a 60Hz display and you want your game to run at 60FPS, so as to hit the limits of what your monitor can display. Without V-Sync, the GPU works non-stop to produce as many frames per second as possible. This usually creates the effect of screen tearing, which if you've had the unfortunate opportunity of having someone showcase and pinpoint, is very very hard to ever look past. With V-Sync enabled, the system makes sure that the GPU never produces more frames than needed, this is done with the introduction of another buffer which is ready to be displayed every time the previous frame has been shown, thereby keeping things in sync. Unfortunately, due to the nature of the beast, what this practically means is that you have to be hitting 60+ fps constantly in order to maintain that framerate. If for some reason you hit 58 or 59FPS, your framerate will tank to 30, which is 60 / 2. If you can't hit 30, you'll be locking to 20 FPS, 60 / 3 etc. Again, this is a simplified and rough explanation.
This is unfortunate, especially because sometimes you might actually be more limited by your CPU than your GPU, for example moving from an indoor area to an outdoor area in a game and the CPU has to do a lot more work.
One solution is to enable Triple Buffering, which largely alleviates this phenomenon (it also helps with input lag! brainfart). This is fairly easy for OpenGL and GLide if I recall, 3Dfx Tools has an option for it. Unfortunately, for D3D, the answer is more complex. One solution is to disable V-Sync, obviously. If the driver does not allow this, perhaps an old version of PowerStrip will help. Another solution is to use something like D3D Override (included with the old RivaTuner) to enforce it, although I'm not 100% certain this will work with 3Dfx cards.