Open Source
OpenGL® Sample Implementation
Mailing List
How To Contribute
Source Tree
  View all
OpenGL Resources
Extension Registry
Linux ABI
SGI Open Source
Project List
Contributing to the OpenGL® Sample Implementation

We welcome external involvement. SGI has created, maintained and extended the Sample Implementation for many years - but we think that we can do even better by working together with open source developers.

If you're interested in getting involved in this project we recommend joining the mailing list, looking at the source code, and discussing your interests with other developers on the mailing list.

There are several ways to access the source:

  • Download a tarball containing the checked-out CVS repository.
  • Browse the source tree.
  • Via CVS. First, set CVSROOT to

    Next, cvs login to the CVS server. The password is cvs.

    Finally, checkout the project via
        cvs checkout projects/ogl-sample/main

Note that all of these methods only give read access to the repository. Please email patches to the mailing list for now; as significant contributors come to need direct write access to the repository, we'll set that up on a case-by-case basis.

Because the Sample Implementation is a large and complicated piece of code, we expect it may take some time for people to get up to speed. We also have suggestions for some smaller projects that don't require deep knowledge of writing hardware drivers, but will be very useful. For example,

  • Port the SI to non-X and/or non-Linux/Unix environments. The build environment is structured around GNU Make, Perl, and other standard tools, so it should be straightforward to move the basic build process to new environments. Actually making the SI work with window systems other than X will probably require implementing a "glue" API similar to GLX, or at least doing extensive modification of the GLX source code.
  • Move the man pages to a more modern format (e.g. SGML, XML, etc.) and use standard tools for converting this format to HTML and Unix man pages, instead of the archaic custom format and toolchain we use now. The XFree86 toolchain would probably be best for this purpose.
  • The .spec files provide a very detailed machine-readable description of the functions and enumerants defined by the OpenGL API and its numerous extensions. These files are already used in many ways, such as header file generation, libGL dispatch table generation, and GLX protocol encoding/decoding and dispatch within the X server. There are probably a number of other interesting uses for this information, and we encourage people to experiment with the generator scripts and surprise us with something cool, such as...
  • One possible use of the spec files would be as part of a project to extend xmon (the X protocol stream monitor) to understand GLX protocol. xmon is not part of the SI - it's a standard X11 utility. However, the availability of the spec files and the GLX encoder/decoder source (much of which is also automatically generated from the spec files) make this project feasible, and it would be very useful for debugging indirect rendering.