3D acceleration

Trancept Systems TAAC-1 (1987)

  • by

TAAC-1 is an interesting and little-known piece of history. Its creators call it the first board-level GPGPU (a programmable graphics card). This thing was designed to accelerate scientific and medical visualization. It could render 30,000 3D Gouraud-shaded and Z-buffered polygons per second. In addition to that, it could also be programmed to accelerate volumetric rendering and ray tracing. The board could even be programmed in C and allowed to do more than just graphics.

The large double-plane VME board filled three slots and a half of it was covered with memory chips. There were 8MB of frame-buffer memory and the 200bit GPU logic ran at 8MHz, producing up to 1024×1024 pixels in true color. TAAC-1 was used with Sun 3 systems based on Motorola 68020 (16.67MHz).

Trancept Systems Inc. was founded in 1986 by three people. One of them was Tim Van Hook. The same person that later worked for SGI as a Principal Engineer (the architect of Nintendo 64) and started a company called ArtX (Nintendo GameCube graphics hardware), which was acquired by ATI in 2000.

Demo video: part1, part2
More info: virhistory.com, obsolyte.com

SGI Indy (1993)

  • by

This machine represented the SGI’s low-end workstation offering. It was targeted towards Mac users (DTP…) that needed more graphics and processing power than they could get from Macintosh Quadra systems. It’s a sleek pizza-box computer with just a single quiet fan inside (unlike other SGI systems). However, in comparison with non-SGI competitors, it was not slow. It had at least 100-MHz (64bit) MIPS processor, at least 16MB of RAM (reasonable configurations started with 32MB) and multiple graphics card options available. 10Mbit/s LAN, ISDN modem and video inputs (composite / S-Video / a digital port for the bundled webcam) were integrated on the logic board in all configurations as standard.

My Indy is from 1995 and has a more powerful 150MHz MIPS R5000 CPU. On the other side, it is equipped with the lowest possible graphics card (XL8/XGE8/Newport) that supports no more than 256 colors and was introduced with the early machines.

I always thought that Indy was the only SGI system without any 3D acceleration when sold with XL8 (2MB of 64bit video RAM) or XL24 (6MB of 192bit video RAM for true color modes) graphics cards. I expected just a crappy framebuffer (with BitBlt) and nothing more – like in Sun and HP machines. I was wrong. The REX3 chip inside the Newport graphics is pretty capable. Although all the 3D transformations and triangle setup are done in software, the chip can raster triangles with smooth (Gouraud) shading and per-vertex alpha-blending. Even Z-Buffering is partially accelerated using the chip (Z-Buffer is stored in system memory though).

In fact, this chip is not very far from early PC 3D accelerators (1996-1997) in terms of functions… except for the texturing support which was not available even with higher-end workstation-class 3D accelerators in 1993. This is for the first time I see 3D accelerated OpenGL (1.0) on such an old graphics card – and in 256 colors. To be correct, the scene with triangles has just 16 colors because any real-time graphics requires double-buffering. Each byte of the window in video memory contains one pixel from both buffers in the GBRG-GBRG arrangement of bits.

The graphics card is faster than I would expect. The pixel fill rate for smooth shaded triangles is ~50Mpix/s. If you add alpha-blending, you will get ~20Mpix/s. That’s 5-20 times as fast as the Windows NT 4.0 software renderer on a laptop with 133-MHz Pentium MMX and a 2D-only graphics chip. The speed in 3D is more comparable with 3Dlabs Permedia, S3 Virge DX and other consumer 3D accelerators from 1996.