source: x/installing/mesa.xml@ a98af0b4

nosym
Last change on this file since a98af0b4 was a98af0b4, checked in by DJ Lucas <dj@…>, 7 years ago

Sync to r18048.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/nosym@18049 af4574ff-66df-0310-9fd7-8a98e5e911e0

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