Mesa Frequently Asked Questions
-Last updated: 21 August 2006 +Last updated: 20 September 2012@@ -28,32 +35,35 @@ Last updated: 21 August 2006 - -
1. High-level Questions and Answers
+1. High-level Questions and Answers
-1.1 What is Mesa?
+1.1 What is Mesa?
-Mesa is an open-source implementation of the OpenGL specification. +Mesa is an open-source implementation of the OpenGL specification. OpenGL is a programming library for writing interactive 3D applications. -See the OpenGL website for more +See the OpenGL website for more information.
-Mesa 6.x supports the OpenGL 1.5 specification. +Mesa 9.x supports the OpenGL 3.1 specification.
1.2 Does Mesa support/use graphics hardware?
Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI -drivers for XFree86/X.org. See the DRI -website for more information. -
--There have been other hardware drivers for Mesa over the years (such as -the 3Dfx Glide/Voodoo driver, an old S3 driver, etc) but the DRI drivers -are the modern ones. +drivers for X.org.
+-
+
- See the DRI website + for more information. +
- See intellinuxgraphics.org + for more information about Intel drivers. +
- See nouveau.freedesktop.org + for more information about Nouveau drivers. +
- See www.x.org/wiki/RadeonFeature + for more information about Radeon drivers. +
1.3 What purpose does Mesa serve today?
@@ -62,7 +72,7 @@ operating systems today. Still, Mesa serves at least these purposes:
-
-
- Mesa is used as the core of the open-source XFree86/X.org DRI +
- Mesa is used as the core of the open-source X.org DRI hardware drivers.
- Mesa is quite portable and allows OpenGL to be used on systems @@ -84,11 +94,12 @@ Still, Mesa serves at least these purposes:
1.4 What's the difference between"Stand-Alone" Mesa and the DRI drivers?
+1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?
Stand-alone Mesa is the original incarnation of Mesa. On systems running the X Window System it does all its rendering through the Xlib API: +
- The GLX API is supported, but it's really just an emulation of the real thing. @@ -98,7 +109,6 @@ the Xlib API:
- The OpenGL library, libGL.so, contains everything (the programming API, the GLX functions and all the rendering code).
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers within the DRI (Direct Rendering Infrastructure): @@ -126,8 +136,7 @@ Just follow the Mesa compilation instructions.
1.6 Are there other open-source implementations of OpenGL?
-Yes, SGI's +Yes, SGI's OpenGL Sample Implemenation (SI) is available. The SI was written during the time that OpenGL was originally designed. Unfortunately, development of the SI has stagnated. @@ -135,34 +144,33 @@ Mesa is much more up to date with modern features and extensions.
-Vincent is +Vincent is an open-source implementation of OpenGL ES for mobile devices.
-miniGL +miniGL is a subset of OpenGL for PalmOS devices.
-TinyGL is a subset of OpenGL. +TinyGL +is a subset of OpenGL.
-SoftGL +SoftGL is an OpenGL subset for mobile devices.
-Chromium +Chromium isn't a conventional OpenGL implementation (it's layered upon OpenGL), but it does export the OpenGL API. It allows tiled rendering, sort-last rendering, etc.
-ClosedGL is an OpenGL subset library for TI -graphing calculators. +ClosedGL +is an OpenGL subset library for TI graphing calculators.
@@ -176,40 +184,43 @@ popular and feature-complete.
-
-
2. Compilation and Installation Problems
+2. Compilation and Installation Problems
-2.1 What's the easiest way to install Mesa?
+2.1 What's the easiest way to install Mesa?
+ -2.2 I get undefined symbols such as bgnpolygon, v3f, etc...
+2.2 I get undefined symbols such as bgnpolygon, v3f, etc...
+ -2.3 Where is the GLUT library?
+2.3 Where is the GLUT library?
+GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file. +If you don't already have GLUT installed, you should grab +freeglut. + + +2.4 Where is the GLw library?
++GLw (OpenGL widget library) is now available from a separate git repository. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it. +
-2.4 What's the proper place for the libraries and headers?
+2.5 What's the proper place for the libraries and headers?
-On Linux-based systems you'll want to follow the -Linux ABI standard. +On Linux-based systems you'll want to follow the +Linux ABI standard. Basically you'll want the following:
-
@@ -223,13 +234,9 @@ Basically you'll want the following:
- /usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz
- /usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library. xyz denotes the Mesa version number. -
- /usr/lib/libGLU.so - a symlink to libGLU.so.1 -
- /usr/lib/libGLU.so.1 - a symlink to libGLU.so.1.3.xyz -
- /usr/lib/libGLU.so.xyz - the OpenGL Utility library. xyz denotes the Mesa -version number.
-After installing XFree86/X.org and the DRI drivers, some of these files +After installing X.org and the DRI drivers, some of these files may be symlinks into the /usr/X11R6/ tree.
@@ -243,29 +250,28 @@ The GLUT header and library should go in the same directories.
-
-
3. Runtime / Rendering Problems
+3. Runtime / Rendering Problems
-3.1 Rendering is slow / why isn't my graphics hardware being used?
+3.1 Rendering is slow / why isn't my graphics hardware being used?
+ + +-If your DRI-based driver isn't working, go to the -DRI website for trouble-shooting information. +If your DRI-based driver isn't working, go to the +DRI website for trouble-shooting information.
@@ -273,8 +279,8 @@ hardware it has detected.Make sure the ratio of the far to near clipping planes isn't too great. Look - here for details. +here +for details.
Mesa uses a 16-bit depth buffer by default which is smaller and faster @@ -316,21 +322,32 @@ Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates will fix the problem.
+3.6 How can I change the maximum framebuffer size in Mesa's +swrast backend?
++These can be overridden by using the --with-max-width and +--with-max-height options. The two need not be equal. +
+Do note that Mesa uses these values to size some internal buffers, +so increasing these sizes will cause Mesa to require additional +memory. Furthermore, increasing these limits beyond 4096 +may introduce rasterization artifacts; see the leading comments in +src/mesa/swrast/s_tritemp.h. +
+- -
4. Developer Questions
+4. Developer Questions
-4.1 How can I contribute?
+4.1 How can I contribute?
-First, join the Mesa3d-dev -mailing list. +First, join the mesa-dev mailing list. That's where Mesa development is discussed.
-The +The OpenGL Specification is the bible for OpenGL implemention work. You should read it.
@@ -364,7 +381,7 @@ the archives) is a good way to get information.4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa?
-The specification for the extension +The specification for the extension indicates that there are intellectual property (IP) and/or patent issues to be dealt with.
@@ -374,11 +391,10 @@ implement the extension (specifically the compression/decompression algorithms).-In the mean time, a 3rd party plug-in library is available. +In the mean time, a 3rd party +plug-in library is available.
- +