The result: Nvidia organized around delivering something new every six months. This meant a new architecture followed by two improved derivatives over an approx 18 month period. That turned 3dfx’s development schedule into a trap.
Conclusion: disciplined execution above all else.
Its interesting how even I didn't realize how competitive he was...until after the market realized recently. Wish these books would come out a year earlier than they did. :/
I guess i'm not cut out for stock trading. I'm always arriving as the train is departing both in real life and on the market.
That explains the SUPERs that were released seemingly very quickly after the original models. Looks like the 5 series will miss out on that due to the ram shortages and prioritising their HBM server models.
As it turns out, neither is anyone else, even people who do it for a living. (If we constrain the definition of "stock trading" to mean researching and picking individual stocks.)
https://en.wikipedia.org/wiki/A_Random_Walk_Down_Wall_Street
Great times, the 3dfx name will always raise a smile for me.
It's wild how hazy those memories are becoming. Getting old is weird.
That brings back some memories.
And then I wanted a GeForce so bad. But I only got £10 a week from my paper round.
If I’d invested just one week of my paper round in Nvidia shares though, it would be worth over £10 million today.
At the time stock trades were still expensive. I remember one of the obstacles was thinking that of the small amount of birthday money I had saved up, $20 was going to go into the purchase and another $20 would have to come out of the sale. Then they explained taxes to me.
None of it would have mattered if I had been able to buy and hold, but at the time I remember being sad that even doubling my money would result in $40 of fees plus taxes, eating most of the gains.
...they would still have fumbled it.
3dfx failed for a single reason: Failure to design for the future.
They had a hyperfocus on brute force rasterization and fill rate that became detrimental. They dropped the ball on 32-bit rendering because they thought having a higher fill rate was more important. They dropped the ball on implementing hardware transform because they considered that the CPU's job.
And then they blew up their own business model buying STB Systems and manufacture cards themselves, rather than selling chips to other manufacturers. That ended up being a gift to NVIDIA who adopted the opposite strategy of providing chips, reference designs, drivers, etc. and let a large number of board manufacturers compete to sell them.
And then there's the fact that NVIDIA was allowing themselves to create new architectures, while 3dfx was basically just saying "Let's make the same GPU, but with more texture units". By the time the Voodoo5 came out, NVIDIA was already on the GeForce 2.
3dfx lost because it kept optimizing for yesterday. NVIDIA understood where the industry was going and 3dfx didn't, and there's little reason to think AI would have gone any differently. If 3dfx had somehow survived another 20 years, I'd expect them to arrive at the AI boom with the world's fastest rasterizer.
https://arstechnica.com/gaming/2011/08/accuracy-takes-power-...
Had also been thinking about asking Codex to boil the oceans in an attempt to fully decompile or reverse engineer that OG of 1990s 4X games, 'Stars!'*, which I have a copy of, so I could have something modern and native for MacOS that kept all the mechanics. Maybe I should just do this instead, will have to investigate.
Alternatively: eBay. Encarta 96 CD-ROMs are available for about $20 in the US, delivered.
EDIT: Here's the other Stars! thread. https://news.ycombinator.com/item?id=49755378
Even the prior two games had an extremely tasteful use of textures and geometry that just felt right and realistic enough to not break immersion despite the hardware limitations. This era of gaming rightfully and correctly recognized that any form of "realism" is ultimately an impression rather than an objective truth.
I remember going to an electronics store with my friend. I couldn't figure out why they had a broadcast football game playing on a 15 inch LCD display up front. I assumed it was a game but then watched it for a few cuts and was so certain it was live footage...
It was a madden game on PS2 in demo mode.
Quake II & IIIa
Tribes & Tribes II
Half-Life, TFC, Counter-Strike
Morrowind
Unreal
Those moments will never return...
There’s a direct historical line from Voodoo2 SLI to today’s Infiniband GPU links and making AI possible.
And has since killed it for desktop gaming CPUs.
Which makes some sense, I suppose. It was pretty expensive to use, which made it uncommon. These days, GPUs are so power hungry that'd you need a MASSIVE power supply to do it, unless you're SLI'ing low-end GPUs, which is kind of a waste. You're better off with a mid-grade GPU.
3dfx did it spatially - each card rendered half the scanlines and then interleaved them - hence Scan Line Interleave (SLI). The problem is that this assumes all the work is going into pushing polygons onto the framebuffer. This assumption broke fairly shortly after 3dfx started doing this and it's an assumption that only makes sense for 3dfx's obsession with fill rate.
Nvidia wound up doing basically everything temporally: one GPU renders one frame, the next GPU renders the next. The reason for this is that "modern" (as in, 2004-era, so OpenGL 2.x / DX9) games do a lot of intermediate work that has to be available during final raster on both cards. They might render a bunch of depth buffers from various light positions to construct shadow maps. Or they might accumulate all raster operations into a bunch of color framebuffers and then compute lighting with the information in those buffers. Or you might just have a post-process gaussian blur that requires mixing pixels from across both GPUs.
Theoretically, none of this is a problem - you just send the pixels the other GPU needs. In practice even the fastest Nvidia SLI bridge only ran at something like 3.25GB/s and that's not even enough bandwidth to deliver a final 4K 120FPS image, much less transfer every intermediate result from every rendering step to both GPUs. The math gets worse when you start adding more GPUs. It's far easier to send a whole frame to each card, but this adds latency and stuttering[0] because you have to run the game two, three, or even FOUR frames ahead instead of just one.
That being said, there was a way to deliver multi-card rendering on Nvidia hardware, it's just that Nvidia had no interest in shipping Nvlink support in a consumer card because they wanted AI customers to pay more for it. So instead they washed their hands of it and made multi-card rendering an explicit API thing that nobody implements because <1% of people are going to spend $10k on a rig for slightly better framerates. AFAIK if you DO use multi-card rendering this way, you're doing all the synchronization across the main PCIe bus (which is actually more bandwidth than SLI ever had).
[0] Which, funnily enough, is the same problem with DLSS Framegen. Nvidia really, really likes building things that make the FPS number go up without actually delivering a better experience.
I'd dispute that last part. At the very least, it depends on the game.
Cyberpunk 2077 with 4x frame gen is wonderful. With all the detail settings cranked to the max, it's a gorgeous game, but at that level, it even brings a 5090 to its knees. In 4K, without MFG, I often only get ~40 fps. With 4x frame gen, I get around 140 fps which is a significant improvement to the experience, and I don't even notice the artifacts unless I'm looking REALLY hard for them.
On the other hand, MS Flight Sim 2024 with 4x frame gen looks great unless I enable labels on landmarks and other aircraft. During camera angle changes, they get very noticeably distorted. The cockpit looks fine, though.
Once the Mac mini M8 is released, will we be able to emulate a Pentium III which runs PlayStation emulation?
Surely a modern hypervisor should be able to emulate a retro Voodoo 3D card.
Using an accurate emulation of such a device means you can use the drivers that existed back then that games back then were QA'd on.
Most modern hypervisors aren't built with Windows 98 in mind, either - it's not really what they're for, and a modern Mac can't run an x86 hypervisor anyway.
While they claim "accuracy" as one of the goals for 86Box, I believe accuracy is overrated in PC emus (you don't really need that much accuracy due to the variety of PC clones, and emus are not that accurate anyway). For me the biggest point for using 86Box over other PC emulators/virtualizers is the large selection of virtual hardware available to emulate, not performance.
If you don't care and just want to go faster on a modern x86 CPU, you can replace the CPU emulation part of 86Box with a hypervisor. I tried running a Socket 7 motherboard firmware on Linux's KVM - given the chipset emulation is correct, it works: it amusingly identifies an AMD Zen5 running at 3GHz as "Unknown-S CPU at M60MHz" and boots to a DOS prompt.
But those were much cooler than the ones today
Also, sounds like I should work on upstreaming my Rage Fury 128 emulation...and the EPoX SMP emulation...(the perils of too much ADHD and too few tokens)
Amazing times. I actually upgraded to that from a Compaq Professional Workstation 5000 which had dual Pentium Pro 180s in it. Ran NT and occasionally FreeBSD. Cost me a small fortune at the time. Backups here were to a SCSI DLT (can't remember capacity) that was chucked in the trash at work. All it needed was a minor repair.
I also enjoyed introducing people to it, and watching them look at it the first time. You could tell who would get hooked. Some people would play the game a minute or two and be like wow yeah this is pretty neat, and then go about their life. Others would kind of just stop and almost watch themselves, and almost invariably just start laughing. It was so pleasing to watch it melt people's minds the way it had mine.
Anyways, a special time. Really fun seeing these projects.
3dfx did design some tricks into the video pipeline on Voodoo 2 and 3 cards that allowed for what they called 22-but color, and it definitely looked better than other 3D accelerator cards’ 16-bit modes - but it was still not as clean looking as true 32-bit color. (Interestingly, the filtering they did was applied after the framebuffer, so screen captures would only ever show the lower quality original.)
It was Comanche on my Dad's shitty office pc that allowed me to appreciate big pixel 'shit' graphics.
Duke3D -> Quake (software rendered of course) definitely fit that description
https://en.wikipedia.org/wiki/Team_Fortress_Classic