source: x/installing/mesa.xml@ b4d0b5a

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.0 9.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt 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 b4d0b5a was b4d0b5a, checked in by Douglas R. Reno <renodr@…>, 5 years ago

Fix my validation error - mistakes happen
Add remaining dependencies found while I was scouring my log
Add an explanation for disabling Valgrind

  • All of the above for Mesa

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