Linux/Mesa/GLINT


The History

Real-time, photorealistic graphics has been a subject of research interest at Clemson University for several years, and we have invested heavily in state-of-the-art platforms from Silicon Graphics, Inc. Recognizing that the cost of such platforms can be prohibitive for individual owners, Ken Adams, a graduate student at Clemson, undertook a study of the feasibility of obtaining real-time, high quality graphics from low-cost, pc-class hardware.

Ken's M.S. degree project was completed in the summer of 1996. We equipped a 100MHz Intel Pentium system with an Omnicomp 3Demon board that was configured around the 3DLabs 300sx chip. Ken implemented a driver to run under Linux 1.3, and hooked it to Brian Paul's Mesa 1.2.8 to provide an OpenGL-lookalike rendering system.

Although Ken's system did not provide the desired rendering performance, it did identify the hardware bottleneck preventing such performance, and it did offer the possibility of a near-term solution. The 300sx chip accepts only very low-level primitives; as a result, a massive rendering effort fell on the Pentium cpu. Even using dual dma buffers to download data, we found the Pentium utilization near 100% and the 300sx utilization near 0%.

In the meantime, 3DLabs built the 500TX and Delta chips, offering higher performance, and (most important) a higher level graphics primitive set. Intel's Pentium Pro became available in a 200MHz, multi-processor configuration. Thus, to achieve a given level of rendering, we saw the possibility of applying more than 4x the computational power to the task of generating a much smaller number of GLINT board instructions.

The Current Story

In early 1997, NASA Ames offered support for the design and implementation of a driver for a 500TX-Delta system running under Linux 2.0 SMP and interfacing with Mesa 2.4. We have designed this new driver with rendering performance as the primary objective. The driver is now operational on a Linux 2.0.34 SMP system equipped with two, 200MHz Pentium Pro processors, 128Mb memory, and an Omnicomp Pro88. The driver is entirely a dynamically loadable module, so no kernel modification is necessary, except to export additional symbols (do_open, pci_devices, get_unused_fd, and apic_reg).

The driver interface to Mesa 3.0 (beta 5) is complete, so standard OpenGL code using the aux/tk library runs as-is. Viewperf and other benchmark tests indicate that overall performance is slightly better than that of a high-end (r10000-based) O2.

An X11R6 server is also operational; it makes direct calls to the driver.

Contact Clemson for technical issues. The driver (on top of which Mesa and the Xserver are built) has been released to NASA Ames. Contact NASA for availability.

The entire contact list:

Robert Geist (Clemson Univ.) rmg@cs.clemson.edu

Mike Westall (Clemson Univ.) westall@cs.clemson.edu

Alex Cuenca (Univ. Rennes, visiting) cuenca@cs.clemson.edu

Lonhyn Jasinskyj (NASA Ames) lonhyn@nas.nasa.gov

Brian Paul (Avid Technology) brianp@elastic.avid.com (Get Mesa!)

James Carrington (3DLabs) james_carrington@3Dlabs.com

Rajiv Kapoor (Omnicomp) rkapoor@omnicomp.com

The trademark list:

Silicon Graphics and OpenGL are registered trademarks of Silicon Graphics, Inc. Intel, Pentium and Pentium Pro are registered trademarks of Intel, Inc. GLINT, GLINT 300SX and GLINT 500TX are registered trademarks of 3Dlabs which is in turn also a registered trademark of 3Dlabs, Inc. Ltd. Omnicomp and 3DEMON are trademarks of Omnicomp Graphics Corporation.



rmg@cs.clemson.edu