Graduate Student Research Opportunities High Performance Graphics Device Drivers for Linux The Permedia/2 is an entry level, 3-D capable graphics adapter that is produced by 3DLabs. NASA has sponsored an investigation into the use of both the Permedia/2 and the Glint TX-500 in a Linux / X-Windows environment. An overview of this project may be found here. A paper on this work, presented at this year's Linux Expo is available in both .ps and .pdf formats and describes the project in more detail. Although the project has the word graphics in its name, the thrust of the work is primarily in operating systems. Key elements include mutual exclusion, context management, and scheduling issues. A reasonably functional Permedia/2 device driver and Mesa back-end accelerator now exist, but I can identify three remaining opportunities: Implement 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.