- 23 August 2017
Imagination’s PowerVR architecture is 25 years old this summer and to celebrate we are publishing a series of posts of our memories of the history of this groundbreaking 3D technology.
Simon Fenney was one of the lead architects in what was known in 1992 as the ‘Trident Project’ and he remains at the company to this day. In this post, Simon takes us through his recollections of those heady days at the very start of PowerVR.
I joined VideoLogic on 27 July 1992, having done 3D and vector graphics development in my previous roles. As far as I recall, work was just starting on what was dubbed the “Trident Project”. Martin Ashton, who had worked on the VideoLogic Rapier 2D graphics card and previously at a flight simulator company, had done some early development work on creating a very efficient 3D rendering/hidden surface hardware architecture and this work had the backing of Tony McClaren, the Managing Director at the time. Combined with some of my experience in distributed rendering, this evolved into our Tile-Based Deferred Rendering (TBDR) approach.
While Martin worked on an ASIC board, I was developing “RGL” (Raycasting Graphics Library) API, some simple demos, a software sim of the hardware, and also the driver which resided on both the PC and the onboard DSP –Thankfully we were soon joined by two others, Paul Rowland and Paul Riley, and the first FPGA-based boards were produced. On this board, I think Martin managed a staggering 98% utilisation of the FPGA ‘gates’ which was truly remarkable!
As is expected with a prototype, these had a few “quirks” to iron out before being fully functional: The only SRAMs available at the time that were fast enough were engineering samples, but even then, overshooting bus signals from the DSP would cause them to write to random memory locations. To remedy the situation, tiny resistors had to be hand soldered by Jeff Helicar under the DSP’s address pins. Note that the red wires on the board weren’t for a bug but a modification to add real-time shadow volumes.
Later, Pete Leaback, Stel Michael who created ‘ant demo’ (a two-player networked flight/battle game), and Jim Page, joined the fledgeling group.
The Trident FPGA board – the first TDBR-based board
We soon demoed the Trident FPGA board across the globe and I remember a couple of trips to Japan with Hossein Yassaie, who was then head of hardware (he later became CEO), and to Anaheim for SIGGRAPH 1993 with Ray Livesley, who was head of software. The Trident board and host PC soon clocked up quite a large number of air-miles. Unfortunately, hardware (especially prototype hardware with fiddly modification wires), doesn’t really like being shaken about. On occasions it would take several attempts to get the FPGAs to load; the number of attempts seemingly in inverse proportion to the imminence of a demonstration.
Hossein discovered that jamming a piece of paper into the appropriate point in the computer mysteriously seemed to be enough to get the system working. The problem turned out to be that some of the multitude of Xilinx pins had come ‘unsoldered’ and were lifting off the board. The ‘jammed in’ paper was enough to ‘bend’ the board so that the pins made contact again.
Even when working, we had a hard time convincing some to whom we were demoing Trident that, “no, they really hadn’t seen these sort of shadows on consumer hardware”. Due to the limitations of FPGAs in the 90s, Trident didn’t have texturing i.e. there simply weren’t enough gates, but this was soon to be remedied.
We were also working on the two main ASICs by this stage: The ISP “Sabre” and TSP “Texas” (Texture and Shading). Having seen the monster arcade systems used by the likes of Sega and Namco, we knew we could do better and so our original target product was a board called “Midas Arcade”. However, developing for that beast was going to be difficult and so, in parallel, a more modest PC-plugin card, ‘Midas 1’ was also developed. (see below)
The Midas 1 PC plug-in board
It was a MIDAS 1 (or possibly Midas 2), that Namco used to do their Rave Racer port. This board worked a little like some other early PC systems in that the PC’s VGA was fed in and then the results were optionally overwritten by the 3D graphics under the control of the chroma-key facility of the board.
This brings back one particularly fond memory. Around January/February of 1996, we had the Midas 1 functioning for a while and were eagerly awaiting the first drop of the “Rave Racer” demo from Namco. I was working very late and waiting to be able to download it. Earlier that evening I’d been coding while playing a CD – somewhat loudly – through the PC’s external amplifier and speakers and now that it was around midnight, it was dead quiet in the office. (In those days I had the keys to the building and the codes for the alarms). An email finally arrived to say that the demo was available and a mere mid-90s dial-up internet download later, I fired up Rave Racer and got the shock of my life – the demo sourced its audio from the PC’s CD and the amp was still cranked up to 11! To this day OMD’s “Stay” will always be *the* soundtrack for car racing.
The development work on the Midas 1 and 2 led to the much smaller Midas 3, which ditched the VGA pass through and, instead, pushed the pixel output over the PCI bus and directly into the 2D card display (see photo).
At this stage, we signed a deal with Compaq to do add-in boards for its premium line of PCs. Although we really wanted them to take the upcoming PCX1-based boards (I think by this stage we’d realised that Arcades weren’t the best target), they were in a hurry, so a few hundred of these made it into the wild.
If I recall, Compaq only wanted to ship with 1 or 2MB of texture RAM (it was also texturing parameter RAM) but luckily we managed to convince them that 4MB was the way to go with PCX1.
The PowerVR PCX1 PC add-in board
This was soon followed by PCX2, which added bilinear filtering, simplified the work the driver had to do and was clocked at more than 66MHz.
However, while the PCX1 couldn’t be driven faster than 2x the PCI bus, the PXC2 would go AWOL if the clock speed was less than 2x. Still, as expected, there were a bunch of overclockers who were keen to push their PCX2 as high as they could. The NEC libraries were probably a bit conservative as I think some got their boards as high as 75MHz – big numbers in those days! If only we had added a couple more blend modes, instead of just the one… Still, it was awesome for such a tiny board!
A ‘mint condition’ boxed VideoLogic Apocalypse 3Dx accelerator
Another occasion, Mark Butler and I were in L.A. helping developers, “Lemmy” and “Flag” of Non-Linear Arts, port MechWarrior to PowerVR. Unfortunately for us, this visit straddled 4th July, so Mark and I ended up being the only ones in the large and rather empty Activision Office. No food shops were open anywhere nearby and so we had to survive on the dubious contents of the vending machine which, on a public holiday, only had some rather stale muffins. Still, it was worth it. Flag and Lemmy did an excellent job and the PowerVR MechWarrior was regarded by many as the best version.
MechWarrior running on PowerVR PCX2, circa 1997
Below is is RetroCompaqGuy’s video comparing the various MechWarrior2 ports to cards of the era: PowerVR /S3 Virge /ATI Rage/Matrox Mystique – and I think we came out rather well. Notice also the “damage display” on the PowerVR version is done with filled polygons rather than wireframe, which was the fastest option on PCX2 at the time
MechWarrior running on PowerVR PCX2, circa 1997
Tomb Raider was another PowerVR port, but this time done within Imagination. Shown below is a comparison video of Tomb Raider on 3dfx vs. PowerVR – check out 5m 05 to see Tomb Raider running at 1024×768 @ 20-30Hz – with the blue fog for the water effects. It’s probably best not to go into detail on the number of different variants of fog density and shade of blue that were tried!
Tomb Raider on 3dfx vs. PowerVR, circa 1997
Though the hours were long, those were really exciting times – although I could have done without the excitement of loose connections on the prototype boards! After 25 years, it’s really pleasing to know that the tech we developed way back is, albeit with a lot of evolutionary changes, still going strong!