source: x/installing/mesa.xml@ efcdd60

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since efcdd60 was efcdd60, checked in by Bruce Dubbs <bdubbs@…>, 6 years ago

Update to gtk+2 2.24.32.
Update to mesa-17.3.2.
Update to freetype-2.9.
Update to glib 2.54.3.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@19669 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 14.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY mesa-download-http "https://mesa.freedesktop.org/archive/mesa-&mesa-version;.tar.xz">
8 <!ENTITY mesa-download-ftp "ftp://ftp.freedesktop.org/pub/mesa/mesa-&mesa-version;.tar.xz">
9 <!ENTITY mesa-md5sum "5c59b779925f504ffd0f13c7dcd29ac6">
10 <!ENTITY mesa-size "10.2 MB">
11 <!ENTITY mesa-buildsize "368 MB (with demos and docs, add 58 MB for tests)">
12 <!ENTITY mesa-time "4.0 SBU (with parallelism=4, demos, and docs; add 0.9 SBU for tests)">
13]>
14
15<sect1 id="mesa" xreflabel="Mesa-&mesa-version;">
16 <?dbhtml filename="mesa.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>Mesa-&mesa-version;</title>
24
25 <indexterm zone="mesa">
26 <primary sortas="a-Mesa">Mesa</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Mesa</title>
31
32 <para>
33 <application>Mesa</application> is an OpenGL compatible 3D graphics
34 library.
35 </para>
36
37 <note>
38 <para>
39 <application>Mesa</application> is updated relatively often. You may
40 want to use the latest available &mesa-major-minor;.x mesa version.
41 </para>
42 </note>
43
44
45 &lfs81_checked;
46
47 <bridgehead renderas="sect3">Package Information</bridgehead>
48 <itemizedlist spacing="compact">
49 <listitem>
50 <para>
51 Download (HTTP): <ulink url="&mesa-download-http;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download (FTP): <ulink url="&mesa-download-ftp;"/>
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download MD5 sum: &mesa-md5sum;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Download size: &mesa-size;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated disk space required: &mesa-buildsize;
72 </para>
73 </listitem>
74 <listitem>
75 <para>
76 Estimated build time: &mesa-time;
77 </para>
78 </listitem>
79 </itemizedlist>
80
81 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
82 <itemizedlist spacing="compact">
83 <listitem>
84 <para>
85 Recommended patch:
86 <ulink
87 url="&patch-root;/mesa-&mesa-version;-add_xdemos-1.patch"/>
88 (installs 2 demo programs for testing Mesa - not needed if you
89 install the <ulink url="ftp://ftp.freedesktop.org/pub/mesa/demos/">
90 mesa-demos</ulink> package)
91 </para>
92 </listitem>
93 </itemizedlist>
94
95 <bridgehead renderas="sect3">Mesa Dependencies</bridgehead>
96
97 <bridgehead renderas="sect4">Required</bridgehead>
98 <para role="required">
99 <xref linkend="xorg7-lib"/>,
100 <xref linkend="libdrm"/>,
101 <xref linkend="Mako"/>, and
102 <xref linkend="python2"/>
103 </para>
104
105 <bridgehead renderas="sect4">Recommended</bridgehead>
106 <para role="recommended">
107 <xref linkend="elfutils"/> (required for the radeonsi driver),
108
109 <phrase revision="systemd"><xref linkend="libva"/> (to build drivers for
110 supported hardware, note that there is a circular dependency. You must
111 build <application>libva</application> first without EGL and GLX support,
112 install this package, and rebuild <application>libva</application>.),</phrase>
113
114 <xref linkend="libvdpau"/> (to build VDPAU drivers),
115
116 <xref linkend="llvm"/> (required for Gallium3D, r300, and radeonsi
117 drivers and for the llvmpipe software rasterizer. See <ulink role="nodep"
118 url="http://www.mesa3d.org/systems.html"/> for more information), and
119 <xref linkend="wayland-protocols"/> (required for <xref role="nodep"
120 linkend='plasma5-build'/>,
121 <xref role="nodep" linkend='lxqt'/>, GNOME, and recommended for
122 <xref role="nodep" linkend='gtk3'/>)
123 </para>
124
125 <bridgehead renderas="sect4">Optional</bridgehead>
126 <para role="optional">
127 <xref linkend="libgcrypt"/>,
128 <xref linkend="nettle"/>,
129 <ulink url="ftp://ftp.freedesktop.org/pub/mesa/demos/">mesa-demos</ulink>
130 (provides more than 300 extra demos to test
131 <application>Mesa</application>; this includes the same programs added by
132 the patch above), and
133 <ulink url="http://omxil.sourceforge.net/">Bellagio OpenMAX Integration
134 Layer</ulink> (for mobile platforms)
135 </para>
136
137 <note>
138 <para>
139 The instructions below assume that <application>elfutils</application>
140 and <application>LLVM</application> with the r600/amdgpu and host
141 backends are installed. You will need to modify the instructions if you
142 choose not to install them. For an explanation of Gallium3D see
143 <ulink url="https://en.wikipedia.org/wiki/Gallium3D"/>.
144 </para>
145 </note>
146
147 <para condition="html" role="usernotes">User Notes:
148 <ulink url="&blfs-wiki;/mesa"/>
149 </para>
150 </sect2>
151
152 <sect2 role="installation">
153 <title>Installation of Mesa</title>
154
155 <para>
156 If you have downloaded the xdemos patch (needed if testing the Xorg
157 installation per BLFS instructions), apply it by running the following
158 command:
159 </para>
160
161<screen><userinput>patch -Np1 -i ../mesa-&mesa-version;-add_xdemos-1.patch</userinput></screen>
162
163 <!-- Note that freedreno, vc4, and virgl all need special support from
164 libdrm - renodr -->
165 <para>Now, select the drivers you wish to install. The available drivers
166 are i915, nouveau, r300, r600, radeonsi, freedreno, svga, swrast, vc4,
167 and virgl. If the Gallium drivers are not specified, the default is
168 'r300,r600,svga,swrast'. Modify the command below for any desired drivers.
169 The listed drivers below will cover most modern video cards. For help in
170 selecting drivers see
171 <ulink url='http://www.mesa3d.org/systems.html'/>.</para>
172
173<screen><userinput>GLL_DRV="i915,r600,nouveau,radeonsi,svga,swrast"</userinput></screen>
174
175 <para>
176 Install <application>Mesa</application> by running the following
177 commands:
178 </para>
179
180<screen><userinput>./configure CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS=-lLLVM \
181 --prefix=$XORG_PREFIX \
182 --sysconfdir=/etc \
183 --enable-texture-float \
184 --enable-osmesa \
185 --enable-xa \
186 --enable-glx-tls \
187 --with-platforms="drm,x11,wayland" \
188 --with-gallium-drivers=$GLL_DRV &amp;&amp;
189
190unset GLL_DRV &amp;&amp;
191
192make</userinput></screen>
193
194 <para>
195 If you have applied the xdemos patch, build the demo programs by
196 running the following command:
197 </para>
198
199<screen><userinput>make -C xdemos DEMOS_PREFIX=$XORG_PREFIX</userinput></screen>
200
201 <para>
202 To test the results, issue: <command>make check</command>.
203 </para>
204
205 <para>
206 Now, as the <systemitem class="username">root</systemitem> user:
207 </para>
208
209<screen role="root"><userinput>make install</userinput></screen>
210
211 <para>
212 If you have built the demo programs, install them by running the
213 following command as the
214 <systemitem class="username">root</systemitem> user:
215 </para>
216
217<screen role="root"><userinput>make -C xdemos DEMOS_PREFIX=$XORG_PREFIX install</userinput></screen>
218
219 <para>
220 If desired, install the optional documentation by running
221 the following commands as the
222 <systemitem class="username">root</systemitem> user:
223 </para>
224
225<screen role="root"><userinput>install -v -dm755 /usr/share/doc/mesa-&mesa-version; &amp;&amp;
226cp -rfv docs/* /usr/share/doc/mesa-&mesa-version;</userinput></screen>
227
228 </sect2>
229
230 <sect2 role="commands">
231 <title>Command Explanations</title>
232
233 <para>
234 <parameter>CFLAGS="-O2" CXXFLAGS="-O2"</parameter>: By default,
235 <application>Autoconf</application> sets CFLAGS and CXXFLAGS to
236 "-g -O2". That results in binaries and libraries being built with
237 debugging symbols which make them bigger. Override the default
238 flags to omit the -g compiler flag so the final libraries are smaller.
239 </para>
240
241 <para>
242 <parameter>LDFLAGS=-lLLVM</parameter>: This environment variable
243 specifies the LLVM libraries that are not automatically included
244 for some of the package components.
245 </para>
246
247 <para>
248 <parameter>--enable-texture-float</parameter>: This switch enables
249 floating-point textures and render buffers. Please consult
250 <filename>docs/patents.txt</filename> to see if there are
251 any legal issues if you use this feature.
252 </para>
253
254 <para>
255 <parameter>--enable-osmesa</parameter>: This switch enables building
256 the <filename class="libraryfile">libOSMesa</filename> library.
257 </para>
258
259 <para>
260 <parameter>--enable-xa</parameter>: This switch enables building the
261 XA X Acceleration API (Required for VMware 3D Driver).
262 </para>
263
264 <para>
265 <parameter>--enable-gbm</parameter>: This switch enables building the
266 <application>Mesa</application> Graphics Buffer Manager library.
267 </para>
268
269 <para>
270 <parameter>--enable-glx-tls</parameter>: This switch enables TLS (Thread Local
271 Storage) support in GLX.
272 </para>
273
274 <para>
275 <parameter>--with-platforms="..."</parameter>: This parameter
276 controls which platforms EGL will be built for. Available
277 platforms are drm, x11 and wayland.
278 </para>
279
280 <para>
281 <parameter>--with-gallium-drivers="..."</parameter>: This parameter
282 controls which Gallium3D drivers should be built.
283 </para>
284
285 <para revision="sysv">
286 <option>--enable-sysfs</option>: Use this switch to enable simple PCI
287 identification method, required for building DRI on systems without udev.
288 </para>
289
290 </sect2>
291
292 <sect2 role="content">
293 <title>Contents</title>
294
295 <segmentedlist>
296 <segtitle>Installed Programs</segtitle>
297 <segtitle>Installed Libraries</segtitle>
298 <segtitle>Installed Directories</segtitle>
299
300 <seglistitem>
301 <seg>
302 glxgears and glxinfo
303 </seg>
304 <seg>
305 libEGL.so,
306 libgbm.so,
307 libglapi.so,
308 libGLESv1_CM.so,
309 libGLESv2.so,
310 libGL.so,
311 libOSMesa.so,
312<!-- Those libraries are associated with the "swr" gallium driver,
313 which has been removed at r17757. Keeping as a comment in case we
314 reintroduce that driver.
315 libswrAVX.so,
316 libswrAVX2.so,-->
317 libwayland-egl.so (if built with <application>Wayland</application>)
318 libxatracker.so,
319 libXvMCnouveau.so,
320 and libXvMCr600.so
321 </seg>
322 <seg>
323 $XORG_PREFIX/{include/{EGL,GL,GLES,GLES2,GLES3,KHR},lib/{dri,vdpau}}
324 and
325 /usr/share/doc/mesa-&mesa-version; (optional)
326 </seg>
327 </seglistitem>
328 </segmentedlist>
329
330 <variablelist>
331 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
332 <?dbfo list-presentation="list"?>
333 <?dbhtml list-presentation="table"?>
334
335 <varlistentry id="glxgears">
336 <term><command>glxgears</command></term>
337 <listitem>
338 <para>
339 is a GL demo useful for troubleshooting graphics
340 problems.
341 </para>
342 <indexterm zone="mesa glxgears">
343 <primary sortas="b-glxgears">glxgears</primary>
344 </indexterm>
345 </listitem>
346 </varlistentry>
347
348 <varlistentry id="glxinfo">
349 <term><command>glxinfo</command></term>
350 <listitem>
351 <para>
352 is a diagnostic program that displays information about the
353 graphics hardware and installed GL libraries.
354 </para>
355 <indexterm zone="mesa glxinfo">
356 <primary sortas="b-glxinfo">glxinfo</primary>
357 </indexterm>
358 </listitem>
359 </varlistentry>
360
361 <varlistentry id="libEGL">
362 <term><filename class="libraryfile">libEGL.so</filename></term>
363 <listitem>
364 <para>
365 provides a native platform graphics interface as
366 defined by the EGL-1.4 specification.
367 </para>
368 <indexterm zone="mesa libEGL">
369 <primary sortas="c-libGL">libEGL.so</primary>
370 </indexterm>
371 </listitem>
372 </varlistentry>
373
374 <varlistentry id="libgbm">
375 <term><filename class="libraryfile">libgbm.so</filename></term>
376 <listitem>
377 <para>
378 is the <application>Mesa</application> Graphics Buffer
379 Manager library.
380 </para>
381 <indexterm zone="mesa libgbm">
382 <primary sortas="c-libgbm">libgbm.so</primary>
383 </indexterm>
384 </listitem>
385 </varlistentry>
386
387 <varlistentry id="libGLESv1_CM">
388 <term><filename class="libraryfile">libGLESv1_CM.so</filename></term>
389 <listitem>
390 <para>
391 is the <application>Mesa</application> OpenGL ES 1.1 library.
392 </para>
393 <indexterm zone="mesa libGLESv1_CM">
394 <primary sortas="c-libGLESv1_CM">libGLESv1_CM.so</primary>
395 </indexterm>
396 </listitem>
397 </varlistentry>
398
399 <varlistentry id="libGLES2">
400 <term><filename class="libraryfile">libGLES2.so</filename></term>
401 <listitem>
402 <para>
403 is the <application>Mesa</application> OpenGL ES 2.0 library.
404 </para>
405 <indexterm zone="mesa libGLES2">
406 <primary sortas="c-libGLES2">libGLES2.so</primary>
407 </indexterm>
408 </listitem>
409 </varlistentry>
410
411 <varlistentry id="libGL">
412 <term><filename class="libraryfile">libGL.so</filename></term>
413 <listitem>
414 <para>
415 is the main <application>Mesa</application> OpenGL library.
416 </para>
417 <indexterm zone="mesa libGL">
418 <primary sortas="c-libGL">libGL.so</primary>
419 </indexterm>
420 </listitem>
421 </varlistentry>
422
423 <varlistentry id="libOSMesa">
424 <term><filename class="libraryfile">libOSMesa.so</filename></term>
425 <listitem>
426 <para>
427 is the <application>Mesa</application> Off-screen Rendering library.
428 </para>
429 <indexterm zone="mesa libOSMesa">
430 <primary sortas="c-libOSMesa">libOSMesa.so</primary>
431 </indexterm>
432 </listitem>
433 </varlistentry>
434
435 <varlistentry id="libxatracker">
436 <term><filename class="libraryfile">libxatracker.so</filename></term>
437 <listitem>
438 <para>
439 is the Xorg Gallium3D acceleration library.
440 </para>
441 <indexterm zone="mesa libxatracker">
442 <primary sortas="c-libxatracker">libxatracker.so</primary>
443 </indexterm>
444 </listitem>
445 </varlistentry>
446 </variablelist>
447
448 </sect2>
449
450</sect1>
Note: See TracBrowser for help on using the repository browser.