source: x/installing/mesa.xml@ e4757087

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.0 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 nosym 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 e4757087 was e4757087, checked in by Bruce Dubbs <bdubbs@…>, 8 years ago

One more tweak for mesa

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@17819 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 " ">
8 <!ENTITY mesa-download-ftp "ftp://ftp.freedesktop.org/pub/mesa/&mesa-version;/mesa-&mesa-version;.tar.xz">
9 <!ENTITY mesa-md5sum "1113699c714042d8c4df4766be8c57d8">
10 <!ENTITY mesa-size "8.2 MB">
11 <!ENTITY mesa-buildsize "348 MB (with tests and docs)">
12 <!ENTITY mesa-time "3.7 SBU (with tests and docs - all with parallelism = 4),">
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 &lfs7a_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
109 <ulink url="http://www.mesa3d.org/systems.html"/> for more information.)
110 </para>
111
112 <bridgehead renderas="sect4">Optional</bridgehead>
113 <para role="optional">
114 <xref linkend="libgcrypt"/>,
115 <xref linkend="nettle"/>,
116 <xref linkend="wayland"/> (required for
117 <xref linkend='plasma5-build'/>
118 <phrase revision="systemd">,</phrase>
119 <phrase revision="sysv">and</phrase>
120 <xref linkend='lxqt'/>
121 <phrase revision="systemd">, and GNOME</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 <para>Now, select the drivers you wish to install. The available
159 drivers are i915, ilo, nouveau, r300, r600, radeonsi, freedreno, svga,
160 swrast, vc4, and virgl. The default is 'r300,r600,svga,swrast'. Modify
161 the command below for any desired drivers. The listed drivers below
162 will cover most modern video cards. For help in selecting
163 drivers see <ulink url='http://www.mesa3d.org/systems.html'/>.</para>
164
165<screen><userinput>GLL_DRV="i915,r600,nouveau,radeonsi,svga,swrast"</userinput></screen>
166
167 <para>
168 Install <application>Mesa</application> by running the following
169 commands:
170 </para>
171
172 <note>
173 <para>
174 Add wayland to the <parameter>--with-egl-platforms</parameter> switch
175 below if you plan on building
176 <xref linkend='plasma5-build'/><phrase revision="systemd">,</phrase>
177 <phrase revision="sysv">or</phrase>
178 <xref linkend='lxqt'/><phrase revision="systemd">, or GNOME</phrase>.
179 </para>
180 </note>
181
182<screen><userinput>sed -i "/pthread-stubs/d" configure.ac &amp;&amp;
183sed -i "/seems to be moved/s/^/: #/" bin/ltmain.sh &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-egl-platforms="drm,x11" \
193 --with-gallium-drivers=$GLL_DRV &amp;&amp;
194
195unset GLL_DRV &amp;&amp;
196
197make</userinput></screen>
198
199 <para>
200 If you have applied the xdemos patch, build the demo programs by
201 running the following command:
202 </para>
203
204<screen><userinput>make -C xdemos DEMOS_PREFIX=$XORG_PREFIX</userinput></screen>
205
206 <para>
207 To test the results, issue: <command>make check</command>.
208 </para>
209
210 <para>
211 Now, as the <systemitem class="username">root</systemitem> user:
212 </para>
213
214<screen role="root"><userinput>make install</userinput></screen>
215
216 <para>
217 If you have built the demo programs, install them by running the
218 following command as the
219 <systemitem class="username">root</systemitem> user:
220 </para>
221
222<screen role="root"><userinput>make -C xdemos DEMOS_PREFIX=$XORG_PREFIX install</userinput></screen>
223
224 <para>
225 If desired, install the optional documentation by running
226 the following commands as the
227 <systemitem class="username">root</systemitem> user:
228 </para>
229
230<screen role="root"><userinput>install -v -dm755 /usr/share/doc/mesa-&mesa-version; &amp;&amp;
231cp -rfv docs/* /usr/share/doc/mesa-&mesa-version;</userinput></screen>
232
233 </sect2>
234
235 <sect2 role="commands">
236 <title>Command Explanations</title>
237
238 <para>
239 <command>sed -i ... configure.ac</command>: This sed removes a dependency
240 on the <application>libpthread-stubs</application> package which is
241 useless on Linux.
242 </para>
243
244 <para>
245 <command>sed -i ... bin/ltmain.sh</command>: This sed silences several
246 useless and annoying warnings from libtool.
247 </para>
248
249 <para>
250 <parameter>CFLAGS="-O2" CXXFLAGS="-O2"</parameter>: By default,
251 <application>Autoconf</application> sets CFLAGS and CXXFLAGS to
252 "-g -O2". That results in binaries and libraries being built with
253 debugging symbols which make them bigger. Override the default
254 flags to omit the -g compiler flag so the final libraries are smaller.
255 </para>
256
257 <para>
258 <parameter>--enable-texture-float</parameter>: This switch enables
259 floating-point textures and render buffers. Please consult
260 <filename>docs/patents.txt</filename> to see if there are
261 any legal issues if you use this feature.
262 </para>
263
264 <para>
265 <parameter>--enable-osmesa</parameter>: This switch enables building
266 the <filename class="libraryfile">libOSMesa</filename> library.
267 </para>
268
269 <para>
270 <parameter>--enable-xa</parameter>: This switch enables building the
271 XA X Acceleration API (Required for VMware 3D Driver).
272 </para>
273
274 <para>
275 <parameter>--enable-gbm</parameter>: This switch enables building the
276 <application>Mesa</application> Graphics Buffer Manager library.
277 </para>
278
279 <para>
280 <parameter>--enable-glx-tls</parameter>: This switch enables TLS (Thread Local
281 Storage) support in GLX.
282 </para>
283
284 <para>
285 <parameter>--with-egl-platforms="..."</parameter>: This parameter
286 controls which platforms EGL will be built for. Available
287 platforms are drm, x11 and wayland.
288 </para>
289
290 <para>
291 <parameter>--with-gallium-drivers="..."</parameter>: This parameter
292 controls which Gallium3D drivers should be built.
293 </para>
294
295 <para revision="sysv">
296 <option>--enable-sysfs</option>: Use this switch to enable simple PCI
297 identification method, required for building DRI on systems without udev.
298 </para>
299
300 </sect2>
301
302 <sect2 role="content">
303 <title>Contents</title>
304
305 <segmentedlist>
306 <segtitle>Installed Programs</segtitle>
307 <segtitle>Installed Libraries</segtitle>
308 <segtitle>Installed Directories</segtitle>
309
310 <seglistitem>
311 <seg>
312 glxgears and glxinfo
313 </seg>
314 <seg>
315 libEGL.so,
316 libgbm.so,
317 libglapi.so,
318 libGLESv1_CM.so,
319 libGLESv2.so,
320 libGL.so,
321 libOSMesa.so,
322 libswrAVX.so,
323 libswrAVX2.so,
324 libwayland-egl.so (if built with <application>Wayland</application>)
325 libxatracker.so,
326 libXvMCnouveau.so,
327 and libXvMCr600.so
328 </seg>
329 <seg>
330 $XORG_PREFIX/{include/{EGL,GL,GLES,GLES2,GLES3,KHR},lib/{dri,vdpau}}
331 and
332 /usr/share/doc/mesa-&mesa-version; (optional)
333 </seg>
334 </seglistitem>
335 </segmentedlist>
336
337 <variablelist>
338 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
339 <?dbfo list-presentation="list"?>
340 <?dbhtml list-presentation="table"?>
341
342 <varlistentry id="glxgears">
343 <term><command>glxgears</command></term>
344 <listitem>
345 <para>
346 is a GL demo useful for troubleshooting graphics
347 problems.
348 </para>
349 <indexterm zone="mesa glxgears">
350 <primary sortas="b-glxgears">glxgears</primary>
351 </indexterm>
352 </listitem>
353 </varlistentry>
354
355 <varlistentry id="glxinfo">
356 <term><command>glxinfo</command></term>
357 <listitem>
358 <para>
359 is a diagnostic program that displays information about the
360 graphics hardware and installed GL libraries.
361 </para>
362 <indexterm zone="mesa glxinfo">
363 <primary sortas="b-glxinfo">glxinfo</primary>
364 </indexterm>
365 </listitem>
366 </varlistentry>
367
368 <varlistentry id="libEGL">
369 <term><filename class="libraryfile">libEGL.so</filename></term>
370 <listitem>
371 <para>
372 provides a native platform graphics interface as
373 defined by the EGL-1.4 specification.
374 </para>
375 <indexterm zone="mesa libEGL">
376 <primary sortas="c-libGL">libEGL.so</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 <varlistentry id="libgbm">
382 <term><filename class="libraryfile">libgbm.so</filename></term>
383 <listitem>
384 <para>
385 is the <application>Mesa</application> Graphics Buffer
386 Manager library.
387 </para>
388 <indexterm zone="mesa libgbm">
389 <primary sortas="c-libgbm">libgbm.so</primary>
390 </indexterm>
391 </listitem>
392 </varlistentry>
393
394 <varlistentry id="libGLESv1_CM">
395 <term><filename class="libraryfile">libGLESv1_CM.so</filename></term>
396 <listitem>
397 <para>
398 is the <application>Mesa</application> OpenGL ES 1.1 library.
399 </para>
400 <indexterm zone="mesa libGLESv1_CM">
401 <primary sortas="c-libGLESv1_CM">libGLESv1_CM.so</primary>
402 </indexterm>
403 </listitem>
404 </varlistentry>
405
406 <varlistentry id="libGLES2">
407 <term><filename class="libraryfile">libGLES2.so</filename></term>
408 <listitem>
409 <para>
410 is the <application>Mesa</application> OpenGL ES 2.0 library.
411 </para>
412 <indexterm zone="mesa libGLES2">
413 <primary sortas="c-libGLES2">libGLES2.so</primary>
414 </indexterm>
415 </listitem>
416 </varlistentry>
417
418 <varlistentry id="libGL">
419 <term><filename class="libraryfile">libGL.so</filename></term>
420 <listitem>
421 <para>
422 is the main <application>Mesa</application> OpenGL library.
423 </para>
424 <indexterm zone="mesa libGL">
425 <primary sortas="c-libGL">libGL.so</primary>
426 </indexterm>
427 </listitem>
428 </varlistentry>
429
430 <varlistentry id="libOSMesa">
431 <term><filename class="libraryfile">libOSMesa.so</filename></term>
432 <listitem>
433 <para>
434 is the <application>Mesa</application> Off-screen Rendering library.
435 </para>
436 <indexterm zone="mesa libOSMesa">
437 <primary sortas="c-libOSMesa">libOSMesa.so</primary>
438 </indexterm>
439 </listitem>
440 </varlistentry>
441
442 <varlistentry id="libxatracker">
443 <term><filename class="libraryfile">libxatracker.so</filename></term>
444 <listitem>
445 <para>
446 is the Xorg Gallium3D acceleration library.
447 </para>
448 <indexterm zone="mesa libxatracker">
449 <primary sortas="c-libxatracker">libxatracker.so</primary>
450 </indexterm>
451 </listitem>
452 </varlistentry>
453 </variablelist>
454
455 </sect2>
456
457</sect1>
Note: See TracBrowser for help on using the repository browser.