source: x/installing/mesa.xml@ d6c6562

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 d6c6562 was d6c6562, checked in by Bruce Dubbs <bdubbs@…>, 7 years ago

Remove gcc7 entity

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