
          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.







