The Free OpenGL work-alike library



Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL.* To the extent that Mesa utilizes the OpenGL command syntax or state machine, it is being used with authorization from Silicon Graphics, Inc. However, the author makes no claim that Mesa is in any way a compatible replacement for OpenGL or associated with Silicon Graphics, Inc. Those who want a licensed implementaion of OpenGL should contact a licensed vendor. This software is distributed under the terms of the GNU Library General Public License, see the LICENSE file for details.

While Mesa is not a licensed OpenGL implementation, it is currently being tested with the OpenGL conformance tests. For the current conformance status see the CONFORM file included in the Mesa distribution.

* OpenGL(R) is a registered trademark of Silicon Graphics, Inc.


Brian Paul
Avid Technology, Inc.
1925 Andover St.
Tewksbury, MA 01876

My work on Mesa is in no way associated with my work at Avid Technology.


Mesa is a 3-D graphics library which uses the OpenGL API (Application Programming Interface). Mesa cannot be called an implementation of OpenGL since I did not obtain an OpenGL license from SGI. Furthermore, Mesa cannot claim OpenGL conformance since the conformance tests are only available to OpenGL licensees. Despite these technical/legal terms, you may find Mesa to be a valid alternative to OpenGL.

Most applications written for OpenGL can use Mesa instead without changing the source code.

I started writing Mesa in my spare time in August of 1993. I wrote the library because I thought it would be fun to do and expected other people could make use of it. Also, the library implements many basic 3-D computer graphics algorithms- beginners may find it instructional. I continue to work on Mesa because I enjoy it.

Mesa's performance is most directly related to CPU performance. Recent releases of Mesa have featured speed optimizations and support for consumer 3-D graphics cards. Mesa's getting faster all the time!

Finally, the name is Mesa or the Mesa 3-D graphics library, NOT MesaGL, NOT Mesa 3-D.

Systems Supported

Mesa was originally designed for Unix/X11 systems and is still best supported on those systems. All you need is an ANSI C compiler and the X development environment to use Mesa.

Others have contributed drivers for the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, and Windows 95/NT. See the README file included with the Mesa distribution for more details.

How to get Mesa

The current release of Mesa is version 3.0, released on September 17, 1998. Previous versions are still available at the ftp site given below.

The primary Mesa download site is

Mesa is distributed in two pieces: the main libraries and demos. Download by shift-clicking on the following:

Look below for pointers to Mesa for the Mac, Amiga, Acorn RISC OS, etc.


Pre-compiled Libraries

Please don't ask me (Brian) for precompiled libraries.


Patches to Mesa 3.0 (if any) can be found here.

Beta Releases

Beta releases of upcoming Mesa releases (if any) can be found here.

If you try a beta release be sure to report any bugs or problems that you encounter.

Contributed Files

An assortment of utilities, programs and libraries contributed by Mesa users can be found in the Mesa contrib directory. See the contrib/README file.

Building Mesa

The README file has detailed instructions on compiling and installing Mesa but basically you type make followed by a system configuration. You can view a list of supported system configurations by typing make alone. It's easy to add new configurations if your system isn't currently supported. However, 40 different Unix configurations are already supported.

Since people sometimes ask, I don't use Imakefiles or GNU Config for a number of reasons:

  1. I have no experience with setting them up.
  2. I haven't seen good, clear documentation of either.
  3. Imake isn't available on all systems.
  4. Neither seems to have a good way to deal with making .a and shared library specifics.
  5. Makefiles have worked fine so far.
I'm not against Imake or GNU Config, they'd probably work OK for Mesa if I had the time and energy to figure them out.

Documentation and Hyperlinks

Since the OpenGL API is used, OpenGL documentation can serve as the documentation for Mesa's core functions.

OpenGL resources:
Specifically for Mesa are: Other useful links:

Mailing lists

There are two Mesa-related mailing lists. One is for general discussion and the other is just for announcements.

Thanks to Pedro Vazquez for setting up the lists!

General Mesa List

To subscribe, send the following message body to
subscribe mesa your-email-address
For example:
subscribe mesa
You will receive a welcome message from the list server when you have been added to the list. To post to the list send your message to

To unsubscribe from the list send the following message to

unsubscribe mesa your-email-address

Announcements list

If you're only interested in getting messages regarding Mesa announcements such as new versions and patches you should just subscribe to the mesa-announce list.

To subscribe, send the following message body to
subscribe mesa-announce your-email-address
To unsubscribe from the list send the following message to
unsubscribe mesa-announce your-email-address


There are two archives of the list:


If you have trouble using the mailing list send your question to

Help / Bug Reporting

If you're having installation or runtime problems with Mesa then read the documentation first! This includes the various README files included with Mesa and the Mesa FAQ. If you're still stuck ask on the Mesa mailing list. 3Dfx/Linux-related problems can be posted to the 3Dfx Linux Glide newsgroup.

As a last resort you can ask me (Brian) for help. I'll help if I have the time.

If you find a bug in Mesa you should first check if there's a more recent version of Mesa or a patch on the ftp site. If you think you've found a new bug in Mesa I'd certainly like to hear about it.

Please send me a detailed description of the problem and if possible, a test program which demonstrates the problem. The test program should be easy to compile and use. A GLUT-based program is ideal.

Also, tell me which version of Mesa you're using and what kind of computer and operating system you're using. If you're using X and seeing rendering problems also mention the class/depth of X visual you're using.

I primarily develop and test Mesa on Linux and IRIX. If you're having problems on Windows 95/98/NT your best source for help is the Mesa mailing list.

Applications which use Mesa

Here's how application writers have been putting Mesa to use. Send me a URL if you have an application to add to the list.

3-D hardware support

The following 3-D graphics hardware is supported by Mesa:

3Dfx Voodoo1, Voodoo2 and Voodoo Rush
All cards based on these chipsets should work with Linux and Windows 95.

David Bucciarelli wrote and maintains the 3Dfx driver for Mesa. Look here for the latest info.

Daryll Strauss wrote and maintains the Linux version of Glide. Look here for the latest info.

GLINT-based boards
Look here for the latest info.
S3 Virge
Supported under Windows 95 in Mesa version 2.5.
Cirrus Mondello
No longer supported- download Mesa 1.2.8 if you're interested in this driver.
nVidia Riva128
Not supported at this time. Rumor has it that non-Windows support for nVidia chips is underway.

New projects

S.u.S.E. is working with the XFree86 group to integrate 3-D hardware support into the XFree86 X server for Linux. Currently, a variety of 3Dlabs chipsets are being targeted. There is no targeted release date at this time. Also see the XFree86 3D Status Report for information.

Why isn't there hardware support for my graphics card?

Supporting the 3Dfx hardware was relatively simple because of the 3Dfx Glide library. In order to support other 3D hardware we need:

If you would like to work on a hardware project you should post to the Mesa mailing list to organize a development team. It will probably be easier to get hardware vendor cooperation if there is an organized group of developers rather than just one person.


I don't expect any monetary contributions from Mesa users. I continue to work on it because it's fun. However, I have accepted two forms of contributions so far and will accept more: software and beer.

If your commercial (or free) software uses Mesa I'd be happy to get a copy of it. I might be able to test your software with new versions of Mesa before release.

I like beer. Among my favorites are ales and stouts. So if there's a local brewery in your area I'd be happy to get a sample.


June 21, 1998 - updated documentation and links section

June 20, 1998 - Conix announces beta test program for OpenGL on Linux in comp.os.linux.announce

June 15, 1998 - I've signed the NDA contract to test Mesa with the OpenGL conformance tests

September 14, 1998 - Updated Mesa applications and hardware support sections.

September 17, 1998 - Mesa 3.0 released

Last updated September 17, 1998 by Brian Paul.