Old school 3D accelerators are so charming due to their simplicity. No multiple cores, no schedulers, no programable shaders, just a basic fixed length predictable geometry and texture pipeline made of of vector processors, that's it.
They were simple enough that the system integrators or board partners would actually be the ones writing the drivers for them as the company was just selling them the chips with the datasheets and manuals with instructions on how to interface with them via PCI and how to program them, that's it.
NVidia were famous for being the first to in-house the driver development themselves instead of their board partners which gave them the edge on driver quality and performance.
Yup, I remember the days when the board manufacturer and designer were separate entities. So if you were buying an Nvidia TNT2, there might be slight differences if you bought the version from Hercules or from Creative or ASUS.
Shortly after, Nvidia started producing the whole board and those value-added pure grahiccs companies like Herculues went out of business.
I find it interesting they had an explicit "flat trapezoid" primitive (slide 14). By flat, I mean it only supports trapezoids where the top and bottom edges are flat, aligned with the y grid.
I'm not aware of any GPU that explicitly supported such primitives, but you actually get these flat trapezoid for free with certain designs of a triangle rasteriser. A triangle is rasterised with 3 edge equations, and it's useful to explicitly define a start and finish y position. A flat trapezoid is just two edge equations with the same start and finish y positions (and I assume their line primitive is the same thing, a but with a single edge equation)
While I'm not aware of any GPU with explicit support for these flat trapezoids, the Nintendo 64's RDP takes edge equations directly (usually generated by the RSP microcode), and if you feed it malformed edge equations, it can render certain non-triangle polygons, though most of them aren't useful.
But one of the malformed polygons are the same flat trapezoid primitive. And while playing around and attempting to design a better RSP microcode, I discovered that these flat trapezoids appear to be useful for a fast polygon clipping algorithm. My goal was to replace the N64's slow depth buffering with portal-based clipping on the RSP, but there is no way to check if it's faster without an actual RSP implementation.
Flat triangles and trapezoids are sometimes used internally by these GPUs as a building block for other polygons, possibly since the logic to split up triangles and quads into flat trapezoids may have taken less die space than a rasterizer capable of handling three edge equations at a time rather than just two.
While exposing these lower level internal primitives typically did not make sense for general purpose graphics accelerators, some in-house embedded implementations did actually go further and only supported flat trapezoids, relying on the CPU to preprocess more complex shapes. For instance, the "SOLO" ASIC used in second-generation WebTV boxes took this approach [1] (among other interesting cost-cutting measures such as operating natively in YUV color space).
The core of my software rasterizer written for an Atari ST 3D game was trapezoids.* The polygons would be broken into trapezoids and then the fill was, what I thought at the time, fast dual DDA (for left and right edges) and then some fast memory fill for the parts that were word width between the two edges.
For your N64 experiment, you say there's no way to check if it's faster without an actual RSP implementation - was there something stopping you from doing so? I've seen other people write custom RSP code in present day.
I've only dabbled in 3D modelling but all the meshes I've een which looked "beatiful" mostly used quadrilaterals. From my own experience trying to model things I found that to be the case - when I had vertices that didn't have four segments emanting from them, my model started to look ugly. Of course when going from area of different detail level, this is unavoidable but shoud be minimized
There were many semi-affordable graphics cards in the late 1990s. At various times I had cards from Matrox, Dynamic Pictures, and a Fujitsu prototype. These were all "pro" cards, and those products were wiped out when gamer cards came along and made GPUs a mass market product. So was SGI, of course.
"The list price for the (Dynamic Pictures) Oxygen 102 was $1495 in 1996, later reduced to $399."
I still have my Oxygen 402 [1] that I learned 3d modeling on, you needed these pro cards to work in OpenGL apps like Softimage. It went for $5k in early 97 but by mid 98 it had fallen to ~$750 when I got mine. The 90s were wild for how fast hardware went obsolete.
At a time Bitboys (Oy) tech was this great vaporware that every once in a while came out with these amazing screenshots that blew out of the water everything we saw from 3d accelerators out there with a perpetual "soon"/"just you wait". I guess they never found the funds for it.. and googling I see Nokia bought into it which is straight to grave move even back then.
Bitboys was acquired for $44 million by ATI in 2006.
The tech was real, they just had bad luck with manufacturing partners. Eventually they pivoted to 2D graphics accelerators and that became the successful business. ATI later sold it to Qualcomm, I think, where it became part of their mobile graphics stack.
This sent me down a bit of a rabbit hole. I followed the PC demoscene casually from afar back in the early 90s. I remember rumblings about Future Crew being involved in some kind of hardware development. Apparently this processor is related.
I remember this chip - flaky drivers but the dev board we got did work. We ended up just using Voodoo something or other, and then the first GeForce boards came out a year or two later.
TFW I didn't pull the trigger on a Pyramid3D TR25202 listing on ebay several months ago. These cards are truly rare when you are collecting mid 90s to early 2000s graphic accelerators.
That was a LOT. I mean a real LOT. I think I was hitting 64K/tris/s in software on a 486DX266 at the time. (can't remember if that was just Gouraud shaded or with t-mapping)
They were simple enough that the system integrators or board partners would actually be the ones writing the drivers for them as the company was just selling them the chips with the datasheets and manuals with instructions on how to interface with them via PCI and how to program them, that's it.
NVidia were famous for being the first to in-house the driver development themselves instead of their board partners which gave them the edge on driver quality and performance.