Per The NVIDIA Way [1], the GeForce 256 was branded as "the first GPU" for marketing reasons alone; the actual first GPU was the subsequent GeForce 3 (which introduced programmable shaders):
[Sanford] Russell grabbed Michael Hara for a thirty-minute brainstorm session to figure out how to market the GeForce 256 more effectively, and both executives remember coming out of the room with the notion to call the new chip the first entry in an entirely new product category altogether: a graphics processing unit, or GPU, which would be to graphics rendering what the computer's main central processing unit (CPU) was for all other computational tasks.
Even so, the GPU moniker, when applied first to the GeForce 256, was controversial among Nvidia engineers, who pointed out that a chip could not truly be called a GPU unless it had several features that the GeForce 256 did not. The chip lacked a "state machine," a technical term meaning a dedicated processor that transitions from various states to execute and fetch instructions, in the same manner that a CPU does for programming commands. It was not programmable, meaning that graphics styles and features could not easily be customized by third-party developers. Instead, developers would have to rely on a fixed set of Nvidia-defined hardware functions. Moreover, the GeForce 256 did not have its own programming language.
But the marketing team argued that such features were already planned for the next generation of graphics chips. And even without them, the GeForce 256 delivered a step change in performance that would be obvious to every gamer and computer enthusiast in the world. While not literally a GPU, the GeForce 256 could still be a category-defining product. The chips that would follow-the "true" GPUs that would be fully programmable by outside developers-were coming soon enough.
So Nvidia's marketing team pushed forward with the GPU name over the dissent of Nvidia's engineers. "We don't need anyone's approval," Vivoli told them. He didn't think anyone outside of the industry would really care about the technical definition. Besides, "we knew the next one was going to be programmable. We decided to take a leap, make a stretch that this is a GPU."
In February 2001, Nvidia released the GeForce 3, whose programmable shader technology and support for third-party development of its core graphics functions made it the first true GPU.
[1] https://www.taekim.comAIRC the 256 was the first consumer card with hardware transform and lighting, so it's not wholly dishonest to refer to it as something more substantial than just a triangle rasterizer. Also DirectX didn't support shaders until a year or two later.
The ATI Radeon 7000 series, which came out a few months after the GeForce 256, did have programmable vertex processing, even if that feature was internal to the device driver and not exposed to the application. I know because I worked on that stuff a few years later when it trickled into smartphones.
I can't find confirmation that the GeForce 256's implementation of HW T&L also relied on microcode running in the vertex processor, but it sure sounds like the most obvious way to implement that feature.
Just because a feature isn't visible through the API that is exposed to the general public, it doesn't mean it doesn't exist internally. I know of multiple examples of this.
Edit: In the drivers I had access to for the Radeon 7000 series, which I presume were very close to the original desktop drivers, the HW T&L microcode was generated on the fly, directly in machine code. There was no compiler; just a few C macros to put a handful of instructions together. It was mainly vec4 dot products. I thankfully had little exposure to that Eldritch horror. I remember a very talented coworker from Bitboys, a Finnish startup acquired by ATI, explaining gleefully how he was optimizing the code generator to save an instruction here and there. Sheer insanity sprinkled with salmiakki, as far as I was concerned.
Yep, came here to say the same thing. I still remember Carmack presenting Doom3 with the GF3 at the Macworld Expo (Feb 2001) and recall him referring to it as the first true GPU.
Funny, though, that when Doom3 was actually released in 2004 a GF3 wouldn't come anywhere close to playing it at an acceptable framerate (a GeForce 6800 was what you wanted for it in those days).
Loooong before that in the German magazine Elektor (Elektuur in the netherlands) there was a series of articles describing a (2D) Graphics Display Processor aka a blitter.
https://www.elektormagazine.com/magazine/elektor-198510/4685...
I got the kit, built it and wrote a driver for my BBC micro for it and the speed was - for those days - phenomenal. The 6502 to do some matrix math and suddenly I had rotating cubes on a screen, it felt like heaven. Later I got into more fancy hardware and had SGI stuff to play with (far more powerful) but I did not take it with me to Canada.
And in the very early days of https://en.wikipedia.org/wiki/BrookGPU I used an NVIDIA card to help me work through a massive number of voxels to render the result of a mill bit running through a wood blank in real time. I loved that little card and I still have it somewhere. Without that little bit of code I would have wasted a lot more wood making my windmill.