This website is preserved for historical and scholarly reference and is no longer actively maintained.
 

High Performance Graphics Device Support for Linux

Since early 1997 NASA Ames has sponsored an investigation into the feasibility of supporting real-time 3-D graphics in a Linux / X-Windows environment.  An overview of the history of this project may be found here.
 

Present development efforts involve 3DLabs products: the mid-range Glint 500-TX and the entry-level Permedia 2.    A paper on this work,  presented  at this year's Linux Expo is available in both .ps and .pdf formats and describes the state of the project as of January 1999.

A reasonably functional Permedia/2 device driver and Mesa back-end accelerator now exist, but I can identify three remaining opportunities:

Complete some elements of missing functionality,  assemble a comprehensive test suite designed to evaluate functionality and reliability,  find and fix what is broken,  assemble another test suite designed to evaluate performance and conduct a thorough performance analysis on multiple platforms.

The driver presently supports double buffering using a method known as video page flipping.  This method is thought to provide the highest performance but introduces some complications when interoperating with software such as XFree86 which presently uses only a single buffer.   An alternative approach to double buffering (which is used by Precision Insight) is to employ BLTs to copy from the rendering buffer to the visible buffer on a buffer swap.   This project requires implementation and performance testing of BLT based double buffering.

The AGP extensions to the PCI bus architecture claim to provide excellent support for rendering texture maps with the texture being resident in main memory (as opposed to being downloaded to local memory on the Graphics Adapter.   The Permedia/2 supports this mode of operation but the device driver presently does not.   Thus the objective of this project is to add support for Main Memory textures and compare the rendering performance to that achieved with local memory textures.