This page is no longer being updated. Go to my current site.

Requirements | Downloading | Pictures | Problems | Feedback | Other issues | Related links | Contact address

Mesa for RISC OS

This page is intended to be the main source of information about the Mesa graphics library under RISC OS.

The RISC OS sources are for drivers which are specific to the RISC OS platform and are separate from the main Mesa sources.

Mesa was originally distributed under the GNU Library General Public License. However, this was later changed to the license used by The XFree Project and the COPYING file is now distributed instead.

The current driver is written to work with version 3.4.2 of the Mesa library. I am no longer maintaining this driver.

Latest changes*

24/07/2005: Edited parts of this page to make it clear that I am no longer working on the driver.

04/06/2001: Rewrote some of the 16 bpp rendering functions in assembler, releasing a new version of the driver as a result (0.37a1). The new functions have only been minimally tested.

29/05/2001: Updated the precompiled libraries in line with the current release of Mesa (3.4.2).

26/05/2001: Updated the driver to build with the current release of Mesa (3.4.2).

05/05/2001: Updated the driver to build with the current release of Mesa (3.4.1). Tested it against the demos archive and some other programs of my own. Note that dithering in 16 bpp modes is much slower than before. This needs investigation, so in the meantime turn dithering off in these modes.

16/04/2001: Modified the link to the correct distribution to use (3.2.1). The driver is unlikely to change in the near future.

26/08/2000: Minor changes to the distribution so that Mesa 3.2.1 builds - the Makefile for the GLU library needed changing.

21/07/2000: Added a StrongHelp manual to document the RISC OS specific functions.

20/07/2000: Changed the driver slightly to hopefully improve the situation with colour rendering mentioned in the previous update. The README/RISCOS, and files have been updated.

03/05/2000: Mesa 3.2 has been released so I have updated the README.RISCOS file in the driver distribution to reflect this release, and tidied up various parts of the document. I'm not sure that the driver renders colours properly in certain cases so feedback on the behaviour of the driver is welcome.

11/01/2000: Changed the driver distribution slightly so that the final release of version 3.1 will install and build. I'm not currently sure that it behaves properly. Feedback on the behaviour of the driver is welcome.

26/09/1999: Changed the driver distribution slightly so that the third beta of version 3.1 will install and build correctly.

08/06/1999: The driver has been changed to work with version 3.1 beta 2 of Mesa. This is slightly different internally to the previous beta version so do not simply attempt to overwrite a previous distribution with this one.

07/05/1999: Changed the way a rendering context is created. The demonstrations haven't yet been changed to reflect this. Also fixed some bugs in the 8 bpp rendering mode.

13/02/1999: Included sources to do some transformations in assembler for machines equipped with a floating point coprocessor.

29/01/1999: The driver corresponding to the latest beta version of Mesa (3.1 beta 1) is now available. In addition, precompiled versions of this library are also available for download.

11/12/1998: Mesa 3.1 beta 1 is available, but changes need to be made to the RISC OS driver to enable it to compile. I may put a modified version of the driver on this page for anyone who wants to try it.

11/11/1998: Certain rendering functions for 16 million colour modes. This appears to speed up some demonstrations by about a factor of two.

* The dates used here are of the form, day/month/year.


To build the libraries from source, you will need:


(All of the following are available from the software page.)


Documentation is available for the RISC OS specific functions in StrongHelp format.

The sources

You will need one of the latest versions of the Mesa distribution, which is currently to be found in the beta release section of the Mesa archive. The RISC OS driver source and precompiled libraries should be used with the latest beta.

The library

For the actual library, you will need

To save you time, I have precompiled the GL, GLU, and aux libraries using gcc and UnixLib. They are available in the standard library format. You should still download the sources, if only to obtain the header files required to do anything with the libraries.

The aux library

You will need the aux toolkit to build any of the demos mentioned here. This is to be found in the archive mentioned in the next section.

The demos

For the demos, you may wish to look at older version of the MesaDemos archive.

For RISC OS-specific demos, you may find these demonstrations useful.

Pre-compiled demos

For your entertainment, I have included a pre-compiled morphing demo which is included in source form in the official distribution, and has been modified to work under RISC OS. This version is slightly different to that which is available in the RISC OS demos archive, above. It is about 900kB in size and will be over 3.5MB when uncompressed.

Alternatively, for those with more modern machines, there are:
A version of the morphing demo which runs in a window. This requires RISC OS 3.5 or higher and more than 4MB of memory free. It is shown on the pictures page.
A demonstration of rotating gear wheels which runs in a window. This runs in a 256 colour mode, but may require RISC OS 3.5 or higher anyway. It is shown on the pictures page.
An interaction demonstration of lighting in a scene. This is from the archive from Silicon Graphics Inc.
A desktop sliding block puzzle.

All of these demos require a fast machine, probably with floating point hardware. Don't be disappointed if they run very slowly. Instead, you should consider contributing some code to make Mesa run faster on your machine.

Pictures of the library in action

You can view a selection of pictures produced by the Mesa library running under RISC OS on this page.


If you have any problems with the output from this driver, then you should probably try and compile the same program using another driver, and compare the results. Under RISC OS, an alternative driver to use is the OSMesa driver, but this may only be useful for non-interactive demonstrations.

If the results you obtain using another driver are different to those you obtain using this one, then it is likely that there is a problem with this driver. Report these problems using the address at the bottom of this page.

Feedback and your contribution

Feedback on the RISC OS driver, and its installation, is most welcome. I'm also interested in getting other people involved in developing it, as I don't have the facilities to make sure that it will run acceptably on all machines. The contact address is at the bottom of this page.

Mesa on RISC OS needs optimisation. In particular, the driver rendering functions need rewriting in assembler. This is where you come in. Your improvements will be appreciated.

It would also be interesting to see people getting involved in writing drivers for 3D graphics hardware on the Acorn platform if/when/before such hardware appears. Take a look at the list of supported hardware on the Mesa home page for an idea of what is already supported on other platforms. It may even be possible to modify currently existing drivers for XFree86 so that they work with AGP graphics cards supported by Viewfinder.

Other issues

I would like people to test the driver under a variety of configurations. Since there is an 8 bits per pixel mode then it should work with pre-RISC OS 3.5 machines as long as they have enough memory to compile, or Virtual. A fair amount of memory is required anyway.

I'm interested in the performance of Mesa on new machines as they appear. To get some idea of performance, compile using the -DPROFILE switch with whatever C compiler you use. When executing programs, setting the MESA_PROFILE environment variable (using something like set MESA_PROFILE 1) will tell Mesa to print a report on standard output (usually the screen) on exit.

I'm going to have to provide better compilation support, which will invariably require a good Makefile. I'll attempt to improve things over time. The intent is to support a variety of configurations of compiler, linker, and libraries. If you manage to compile using a compiler other than gcc then please let me know.

The aux toolkit, which is partially used by the demos I have adapted, has been replaced by the GLUT toolkit. This has yet to be ported, although people have shown interest in doing so.

Mesa/OpenGL related links


Related projects


Last update and contact address

This page was updated on 24th July 2005 by:

David Boddie

Requirements | Downloading | Pictures | Problems | Feedback | Other issues | Related links | Contact address