646d14d2d3
Corruption has again been reported on Intel hardware running Xorg with the modesetting driver (which uses OpenGL based acceleration instead of SNA acceleration the intel driver defaults to). Reported in various forms on Sandy Bridge (X220), Ivy Bridge (X230) and Haswell (X240). Confirmed to not occur with the intel driver but the xserver was changed to default to the modesetting driver on >= gen4 hardware (except Ironlake). One means of triggering this is to open a large pdf with xpdf on an idle machine and highlight a section of the document. There have been reports of gpu hangs on gen4 intel hardware (T500 with GM45, X61 with 965GM) when starting Xorg as well.
222 lines
5.9 KiB
HTML
222 lines
5.9 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html lang="en">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<title>Compiling and Installing</title>
|
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="header">
|
|
<h1>The Mesa 3D Graphics Library</h1>
|
|
</div>
|
|
|
|
<iframe src="contents.html"></iframe>
|
|
<div class="content">
|
|
|
|
<h1>Compiling and Installing</h1>
|
|
|
|
<ol>
|
|
<li><a href="#prereq-general">Prerequisites for building</a>
|
|
<ul>
|
|
<li><a href="#prereq-general">General prerequisites</a>
|
|
<li><a href="#prereq-dri">For DRI and hardware acceleration</a>
|
|
</ul>
|
|
<li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
|
|
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
|
|
<li><a href="#other">Building for other systems</a>
|
|
<li><a href="#libs">Library Information</a>
|
|
<li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
|
|
</ol>
|
|
|
|
|
|
<h1 id="prereq-general">1. Prerequisites for building</h1>
|
|
|
|
<h2>1.1 General</h2>
|
|
<ul>
|
|
<li><a href="http://www.python.org/">Python</a> - Python is required.
|
|
Version 2.6.4 or later should work.
|
|
</li>
|
|
<br>
|
|
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
|
|
Python Mako module is required. Version 0.3.4 or later should work.
|
|
</li>
|
|
</br>
|
|
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
|
Windows and optional for Linux (it's an alternative to autoconf/automake.)
|
|
</li>
|
|
<br>
|
|
<li>lex / yacc - for building the GLSL compiler.
|
|
<br>
|
|
<br>
|
|
On Linux systems, flex and bison are used.
|
|
Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
|
|
<br>
|
|
<br>
|
|
On Windows with MinGW, install flex and bison with:
|
|
<pre>mingw-get install msys-flex msys-bison</pre>
|
|
For MSVC on Windows, install
|
|
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
|
</li>
|
|
<br>
|
|
<li>For building on Windows, Microsoft Visual Studio 2013 or later is required.
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<h3 id="prereq-dri">1.2 For DRI and hardware acceleration</h3>
|
|
|
|
<p>
|
|
The following are required for DRI-based hardware acceleration with Mesa:
|
|
</p>
|
|
|
|
<ul>
|
|
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">
|
|
dri2proto</a> version 2.6 or later
|
|
<li><a href="http://dri.freedesktop.org/libdrm/">libDRM</a> latest version
|
|
<li>Xorg server version 1.5 or later
|
|
<li>Linux 2.6.28 or later
|
|
</ul>
|
|
<p>
|
|
If you're using a fedora distro the following command should install all
|
|
the needed dependencies:
|
|
</p>
|
|
<pre>
|
|
sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \
|
|
gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \
|
|
expat-devel llvm-devel python-mako
|
|
</pre>
|
|
|
|
|
|
|
|
<h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
|
|
|
|
<p>
|
|
The primary method to build Mesa on Unix systems is with autoconf.
|
|
</p>
|
|
|
|
<p>
|
|
The general approach is the standard:
|
|
</p>
|
|
<pre>
|
|
./configure
|
|
make
|
|
sudo make install
|
|
</pre>
|
|
<p>
|
|
But please read the <a href="autoconf.html">detailed autoconf instructions</a>
|
|
for more details.
|
|
</p>
|
|
|
|
|
|
|
|
<h1 id="scons">3. Building with SCons (Windows/Linux)</h1>
|
|
|
|
<p>
|
|
To build Mesa with SCons on Linux or Windows do
|
|
</p>
|
|
<pre>
|
|
scons
|
|
</pre>
|
|
<p>
|
|
The build output will be placed in
|
|
build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
|
|
example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
|
|
by -debug for debug builds.
|
|
</p>
|
|
|
|
<p>
|
|
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
|
|
</p>
|
|
<pre>
|
|
scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
|
|
</pre>
|
|
<p>
|
|
This will create:
|
|
</p>
|
|
<ul>
|
|
<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe (or llvmpipe), binary compatible with Windows's opengl32.dll
|
|
</ul>
|
|
<p>
|
|
Put them all in the same directory to test them.
|
|
</p>
|
|
|
|
|
|
|
|
<h1 id="other">4. Building for other systems</h1>
|
|
|
|
<p>
|
|
Documentation for other environments (some may be very out of date):
|
|
</p>
|
|
|
|
<ul>
|
|
<li><a href="README.VMS">README.VMS</a> - VMS
|
|
<li><a href="README.CYGWIN">README.CYGWIN</a> - Cygwin
|
|
<li><a href="README.WIN32">README.WIN32</a> - Win32
|
|
</ul>
|
|
|
|
|
|
|
|
<h1 id="libs">5. Library Information</h1>
|
|
|
|
<p>
|
|
When compilation has finished, look in the top-level <code>lib/</code>
|
|
(or <code>lib64/</code>) directory.
|
|
You'll see a set of library files similar to this:
|
|
</p>
|
|
<pre>
|
|
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
|
|
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
|
|
-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
|
|
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
|
|
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
|
|
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
|
|
</pre>
|
|
|
|
<p>
|
|
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
|
|
<br>
|
|
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
|
|
</p>
|
|
|
|
<p>
|
|
If you built the DRI hardware drivers, you'll also see the DRI drivers:
|
|
</p>
|
|
<pre>
|
|
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
|
|
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
|
|
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
|
|
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
|
|
</pre>
|
|
|
|
<p>
|
|
If you built with Gallium support, look in lib/gallium/ for Gallium-based
|
|
versions of libGL and device drivers.
|
|
</p>
|
|
|
|
|
|
<h1 id="pkg-config">6. Building OpenGL programs with pkg-config</h1>
|
|
|
|
<p>
|
|
Running <code>make install</code> will install package configuration files
|
|
for the pkg-config utility.
|
|
</p>
|
|
|
|
<p>
|
|
When compiling your OpenGL application you can use pkg-config to determine
|
|
the proper compiler and linker flags.
|
|
</p>
|
|
|
|
<p>
|
|
For example, compiling and linking a GLUT application can be done with:
|
|
</p>
|
|
<pre>
|
|
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
|
|
</pre>
|
|
|
|
<br>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|