source: x/installing/mesa.xml@ a85e5ce

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.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 a85e5ce was a85e5ce, checked in by Pierre Labastie <pieere@…>, 7 years ago

Add wayland as recommended for mesa in systemd book

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

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