source: x/installing/mesa.xml@ 054e926

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 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 054e926 was 054e926, checked in by Douglas R. Reno <renodr@…>, 7 years ago

Added a comment to the book about requiring special support for freedreno, vc4, and virgl in libdrm if you want to use those drivers on Mesa. Might need to be addressed further.

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

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