source: x/installing/mesa.xml@ e4fbb24

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 12.2 9.0 9.1 gimp3 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/for-12.3 xry111/intltool xry111/llvm18 xry111/soup3 xry111/spidermonkey128 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since e4fbb24 was e4fbb24, checked in by Douglas R. Reno <renodr@…>, 6 years ago

Minor tweaks + comments to Mesa

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

  • Property mode set to 100644
File size: 15.0 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="nettle"/>,
127 <ulink url="ftp://ftp.freedesktop.org/pub/mesa/demos/">mesa-demos</ulink>
128 (provides more than 300 extra demos to test
129 <application>Mesa</application>; this includes the same programs added by
130 the patch above), and
131 <ulink url="http://omxil.sourceforge.net/">Bellagio OpenMAX Integration
132 Layer</ulink> (for mobile platforms)
133 </para>
134
135 <note>
136 <para>
137 The instructions below assume that
138 <application>LLVM</application> with the r600/amdgpu and host
139 backends are installed. You will need to modify the instructions if you
140 choose not to install it. For an explanation of Gallium3D see
141 <ulink url="https://en.wikipedia.org/wiki/Gallium3D"/>.
142 </para>
143 </note>
144
145 <para condition="html" role="usernotes">User Notes:
146 <ulink url="&blfs-wiki;/mesa"/>
147 </para>
148 </sect2>
149
150 <sect2 role="installation">
151 <title>Installation of Mesa</title>
152
153 <para>
154 If you have downloaded the xdemos patch (needed if testing the Xorg
155 installation per BLFS instructions), apply it by running the following
156 command:
157 </para>
158
159<screen><userinput>patch -Np1 -i ../mesa-&mesa-version;-add_xdemos-2.patch</userinput></screen>
160
161 <!-- Note that freedreno, vc4, and virgl all need special support from
162 libdrm - renodr -->
163
164 <para>Now, select the drivers you wish to install.
165 The gallium available drivers are
166 kmsro, radeonsi, r300, r600, nouveau, freedreno,
167 swrast, v3d, vc4, etnaviv, tegra, i915, svga, virgl, and
168 swr.
169
170 The DRI drivers available are
171 i915, i965, r100, r200, nouveau, and swrast.
172 The platforms available are
173 x11, wayland, drm, surfaceless, haiku, and android.
174
175 Modify the commands
176 below for any desired drivers. The listed drivers below will cover most
177 modern video cards. For help in selecting drivers see <ulink
178 url='http://www.mesa3d.org/systems.html'/>.</para>
179
180<screen><userinput>GALLIUM_DRV="nouveau,radeonsi,svga,swrast"
181DRI_DRIVERS="i915,i965,nouveau"
182PLATFORMS="x11,wayland,drm"</userinput></screen>
183
184 <para>
185 Install <application>Mesa</application> by running the following
186 commands:
187 </para>
188
189<screen><userinput>mkdir build &amp;&amp;
190cd build &amp;&amp;
191
192meson --prefix=$XORG_PREFIX \
193 --sysconfdir=/etc \
194 -Dvalgrind=false \
195 -Dglx=dri \
196 -Dosmesa=gallium \
197 -Dgallium-nine=true \
198 -Ddri-drivers=$DRI_DRIVERS \
199 -Dgallium-drivers=$GALLIUM_DRV \
200 -Dplatforms=$PLATFORMS \
201 .. &amp;&amp;
202
203unset GALLIUM_DRV DRI_DRIVERS PLATFORMS &amp;&amp;
204
205ninja</userinput></screen>
206
207 <para>
208 If you have applied the xdemos patch, build the demo programs by
209 running the following command:
210 </para>
211
212<screen><userinput>make -C ../xdemos DEMOS_PREFIX=$XORG_PREFIX LIBRARY_PATH=$PWD/src/glx</userinput></screen>
213<!--
214 <para>
215 To test the results, issue: <command>make -k check</command>.
216 </para>
217-->
218 <para>
219 This package does not come with a test suite.
220 </para>
221
222 <para>
223 Now, as the <systemitem class="username">root</systemitem> user:
224 </para>
225
226<screen role="root"><userinput>ninja install</userinput></screen>
227
228 <para>
229 If you have built the demo programs, install them by running the
230 following command as the
231 <systemitem class="username">root</systemitem> user:
232 </para>
233
234<screen role="root"><userinput>make -C ../xdemos DEMOS_PREFIX=$XORG_PREFIX install</userinput></screen>
235
236 <para>
237 If desired, install the optional documentation by running
238 the following commands as the
239 <systemitem class="username">root</systemitem> user:
240 </para>
241
242<screen role="root"><userinput>install -v -dm755 /usr/share/doc/mesa-&mesa-version; &amp;&amp;
243cp -rfv ../docs/* /usr/share/doc/mesa-&mesa-version;</userinput></screen>
244
245 </sect2>
246
247 <sect2 role="commands">
248 <title>Command Explanations</title>
249<!--
250 <para>
251 <parameter>CFLAGS="-O2" CXXFLAGS="-O2"</parameter>: By default,
252 <application>Autoconf</application> sets CFLAGS and CXXFLAGS to
253 "-g -O2". That results in binaries and libraries being built with
254 debugging symbols which make them bigger. Override the default
255 flags to omit the -g compiler flag so the final libraries are smaller.
256 </para>
257
258 <para>
259 <parameter>LDFLAGS=-lLLVM</parameter>: This environment variable
260 specifies the LLVM libraries that are not automatically included
261 for some of the package components.
262 </para>
263-->
264<!--
265 <para>
266 <parameter>- -enable-texture-float</parameter>: This switch enables
267 floating-point textures and render buffers. Please consult
268 <filename>docs/patents.txt</filename> to see if there are
269 any legal issues if you use this feature.
270 </para>
271 Removed in 18.2.0
272-->
273<!--
274 <para>
275 <parameter>-Dosmesa=gallium</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>-Dplatforms="..."</parameter>: This parameter
296 controls which platforms EGL will be built for. Available
297 platforms are drm, x11, surfaceless, haiku, android, and wayland.
298 </para>
299
300 <para>
301 <parameter>=-Dgallium-drivers="..."</parameter>: This parameter
302 controls which Gallium3D drivers should be built. Available drivers
303 are pl111, radeonsi, r300, r600, nouveau, and freedreno.
304 </para>
305
306 <para>
307 <parameter>=-Ddri-drivers="..."</parameter>: This parameter
308 controls which platforms should be supported. Available platforms
309 are i915, i965, r100, r200, nouveau, and swrast.
310 </para>
311
312 </sect2>
313
314 <sect2 role="content">
315 <title>Contents</title>
316
317 <segmentedlist>
318 <segtitle>Installed Programs</segtitle>
319 <segtitle>Installed Libraries</segtitle>
320 <segtitle>Installed Directories</segtitle>
321
322 <seglistitem>
323 <seg>
324 glxgears and glxinfo
325 </seg>
326 <seg>
327 <!-- Begin DRI drivers -->
328 d3dadapter9.so, <!-- For Windows? This is DirectX's Direct3D -->
329 i915_dri.so,
330 i965_dri.so,
331 kms_swrast_dri.so,
332 nouveau_dri.so,
333 nouveau_vieux_dri.so,
334 radeonsi_dri.so,
335 radeonsi_drv_video.so,
336 swrast_dri.so,
337 vmwgfx_dri.so
338 <!-- End DRI Drivers -->
339 libEGL.so,
340 libGL.so,
341 libGLESv1_CM.so,
342 libGLESv2.so,
343 libOSMesa.so,
344 libXvMCnouveau.so,
345 libgbm.so,
346 libglapi.so,
347 <!-- Begin Vulkan drivers -->
348 libvulkan_intel.so,
349 libvulkan_radeon.so,
350 <!-- End Vulkan drivers -->
351 libxatracker.so,
352 <!-- Begin VDPAU drivers -->
353 libvdpau_nouveau.so, and
354 libvdpau_radeonsi.so
355 <!-- End VDPAU drivers -->
356 </seg>
357 <seg>
358 $XORG_PREFIX/{include/{EGL,GL,GLES,GLES2,GLES3,KHR,vulkan},lib/{d3d,dri,vdpau}}
359 and
360 /usr/share/doc/mesa-&mesa-version; (optional)
361 </seg>
362 </seglistitem>
363 </segmentedlist>
364
365 <variablelist>
366 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
367 <?dbfo list-presentation="list"?>
368 <?dbhtml list-presentation="table"?>
369
370 <varlistentry id="glxgears">
371 <term><command>glxgears</command></term>
372 <listitem>
373 <para>
374 is a GL demo useful for troubleshooting graphics
375 problems.
376 </para>
377 <indexterm zone="mesa glxgears">
378 <primary sortas="b-glxgears">glxgears</primary>
379 </indexterm>
380 </listitem>
381 </varlistentry>
382
383 <varlistentry id="glxinfo">
384 <term><command>glxinfo</command></term>
385 <listitem>
386 <para>
387 is a diagnostic program that displays information about the
388 graphics hardware and installed GL libraries.
389 </para>
390 <indexterm zone="mesa glxinfo">
391 <primary sortas="b-glxinfo">glxinfo</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
396 <varlistentry id="libEGL">
397 <term><filename class="libraryfile">libEGL.so</filename></term>
398 <listitem>
399 <para>
400 provides a native platform graphics interface as
401 defined by the EGL-1.4 specification.
402 </para>
403 <indexterm zone="mesa libEGL">
404 <primary sortas="c-libGL">libEGL.so</primary>
405 </indexterm>
406 </listitem>
407 </varlistentry>
408
409 <varlistentry id="libgbm">
410 <term><filename class="libraryfile">libgbm.so</filename></term>
411 <listitem>
412 <para>
413 is the <application>Mesa</application> Graphics Buffer
414 Manager library.
415 </para>
416 <indexterm zone="mesa libgbm">
417 <primary sortas="c-libgbm">libgbm.so</primary>
418 </indexterm>
419 </listitem>
420 </varlistentry>
421
422 <varlistentry id="libGLESv1_CM">
423 <term><filename class="libraryfile">libGLESv1_CM.so</filename></term>
424 <listitem>
425 <para>
426 is the <application>Mesa</application> OpenGL ES 1.1 library.
427 </para>
428 <indexterm zone="mesa libGLESv1_CM">
429 <primary sortas="c-libGLESv1_CM">libGLESv1_CM.so</primary>
430 </indexterm>
431 </listitem>
432 </varlistentry>
433
434 <varlistentry id="libGLES2">
435 <term><filename class="libraryfile">libGLES2.so</filename></term>
436 <listitem>
437 <para>
438 is the <application>Mesa</application> OpenGL ES 2.0 library.
439 </para>
440 <indexterm zone="mesa libGLES2">
441 <primary sortas="c-libGLES2">libGLES2.so</primary>
442 </indexterm>
443 </listitem>
444 </varlistentry>
445
446 <varlistentry id="libGL">
447 <term><filename class="libraryfile">libGL.so</filename></term>
448 <listitem>
449 <para>
450 is the main <application>Mesa</application> OpenGL library.
451 </para>
452 <indexterm zone="mesa libGL">
453 <primary sortas="c-libGL">libGL.so</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="libOSMesa">
459 <term><filename class="libraryfile">libOSMesa.so</filename></term>
460 <listitem>
461 <para>
462 is the <application>Mesa</application> Off-screen Rendering library.
463 </para>
464 <indexterm zone="mesa libOSMesa">
465 <primary sortas="c-libOSMesa">libOSMesa.so</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469
470 </variablelist>
471
472 </sect2>
473
474</sect1>
Note: See TracBrowser for help on using the repository browser.