source: x/installing/mesa.xml@ 7cc0c9d

11.1 11.2 11.3 12.0 12.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 xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 7cc0c9d was 7cc0c9d, checked in by Douglas R. Reno <renodr@…>, 2 years ago

Package updates:

Update to Mesa-21.3.3
Update to systemd-250

  • Property mode set to 100644
File size: 18.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 "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 "9363a365fc8fbf8c34fa3ceb1151f547">
10 <!ENTITY mesa-size "16 MB">
11 <!ENTITY mesa-buildsize "755 MB (with docs, add 389 MB for tests)">
12 <!ENTITY mesa-time "4.8 SBU (Using parallelism=4; with docs, add 0.7 SBU for tests)">
13]>
14
15<sect1 id="mesa" xreflabel="Mesa-&mesa-version;">
16 <?dbhtml filename="mesa.html"?>
17
18 <sect1info>
19 <date>$Date$</date>
20 </sect1info>
21
22 <title>Mesa-&mesa-version;</title>
23
24 <indexterm zone="mesa">
25 <primary sortas="a-Mesa">Mesa</primary>
26 </indexterm>
27
28 <sect2 role="package">
29 <title>Introduction to Mesa</title>
30
31 <para>
32 <application>Mesa</application> is an OpenGL compatible 3D graphics
33 library.
34 </para>
35
36 <note>
37 <para>
38 <application>Mesa</application> is updated relatively often. You may
39 want to use the latest available &mesa-major-minor;.x mesa version.
40 </para>
41 </note>
42
43 &lfs110a_checked;
44
45 <bridgehead renderas="sect3">Package Information</bridgehead>
46 <itemizedlist spacing="compact">
47 <listitem>
48 <para>
49 Download (HTTP): <ulink url="&mesa-download-http;"/>
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download (FTP): <ulink url="&mesa-download-ftp;"/>
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Download MD5 sum: &mesa-md5sum;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Download size: &mesa-size;
65 </para>
66 </listitem>
67 <listitem>
68 <para>
69 Estimated disk space required: &mesa-buildsize;
70 </para>
71 </listitem>
72 <listitem>
73 <para>
74 Estimated build time: &mesa-time;
75 </para>
76 </listitem>
77 </itemizedlist>
78
79 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
80 <itemizedlist spacing="compact">
81 <listitem>
82 <para>
83 Recommended patch:
84 <ulink url="&patch-root;/mesa-&mesa-version;-add_xdemos-1.patch"/>
85 (installs 2 demo programs for testing Mesa - not needed if you
86 install the <ulink url="ftp://ftp.freedesktop.org/pub/mesa/demos/">
87 mesa-demos</ulink> package)
88 </para>
89 </listitem>
90 </itemizedlist>
91
92 <bridgehead renderas="sect3">Mesa Dependencies</bridgehead>
93
94 <bridgehead renderas="sect4">Required</bridgehead>
95 <para role="required">
96 <xref linkend="xorg7-lib"/>,
97 <xref linkend="libdrm"/>, and
98 <xref linkend="Mako"/>
99 </para>
100
101 <bridgehead renderas="sect4">Recommended</bridgehead>
102 <para role="recommended">
103
104 <xref role="first" linkend="libva"/> (to provide VA-API support for some
105 gallium drivers, note that there is a circular dependency. You must
106 build <application>libva</application> first without EGL and GLX support,
107 install this package, and rebuild <application>libva</application>),
108 <xref linkend="libvdpau"/> (to build VDPAU drivers),
109 <xref linkend="llvm"/> (required for Gallium3D, nouveau, r300, and radeonsi
110 drivers and for swrast, the software rasterizer which is sometimes referred
111 to as llvmpipe. See <ulink role="nodep"
112 url="https://docs.mesa3d.org/systems.html"/> for more information), and
113 <xref linkend="wayland-protocols"/> (required for
114 <xref role="nodep" linkend='plasma5-build'/>,
115 <!-- <xref role="nodep" linkend='lxqt'/>, -->
116 GNOME, and recommended for <xref role="nodep" linkend='gtk3'/>)
117 </para>
118
119 <bridgehead renderas="sect4">Optional</bridgehead>
120 <para role="optional">
121 <xref linkend="libgcrypt"/>,
122 <xref linkend="lm_sensors"/> <!-- for libsensors according to Meson -->,
123 <xref linkend="nettle"/>,
124 <xref linkend="valgrind"/>,
125 <ulink url="ftp://ftp.freedesktop.org/pub/mesa/demos/">mesa-demos</ulink>
126 (provides more than 300 extra demos to test
127 <application>Mesa</application>; this includes the same programs added by
128 the patch above),
129 <ulink url="http://omxil.sourceforge.net/">Bellagio OpenMAX Integration
130 Layer</ulink> (for mobile platforms),
131 <ulink url="http://www.nongnu.org/libunwind/">libunwind</ulink>,
132 <ulink url="https://github.com/tizonia/tizonia-openmax-il/wiki/Tizonia-OpenMAX-IL/">
133 libtizonia</ulink>, and
134 <ulink url="https://www.vulkan.org/">libvulkan</ulink> (for the zink driver)
135 </para>
136
137 <note>
138 <para>
139 The instructions below assume that
140 <application>LLVM</application> with the r600/amdgpu and host backends
141 and run-time type information (RTTI - needed for nouveau) are installed.
142 You will need to modify the instructions if you
143 choose not to install all of these. For an explanation of Gallium3D see
144 <ulink url="https://en.wikipedia.org/wiki/Gallium3D"/>.
145 </para>
146 </note>
147
148 <para condition="html" role="usernotes">User Notes:
149 <ulink url="&blfs-wiki;/mesalib"/>
150 </para>
151 </sect2>
152
153 <sect2 role="installation">
154 <title>Installation of Mesa</title>
155
156 <para>
157 If you have downloaded the xdemos patch (needed if testing the Xorg
158 installation per BLFS instructions), apply it by running the following
159 command:
160 </para>
161
162<screen><userinput>patch -Np1 -i ../mesa-&mesa-version;-add_xdemos-1.patch</userinput></screen>
163
164 <!-- Note that freedreno, vc4, and virgl all need special support from
165 libdrm - renodr
166 For me, libdrm does not mention virgl, but mesa accepts it. AFAICS
167 freedreno is for qualcom hardware, libdrm will build for it on suitable
168 systems. VC4 is for the Broadcom VC4 used in the raspberry pi - ken -->
169
170 <note>
171 <para>
172 The measurements above, and the Contents below, are for a full build.
173 Many people will not wish to install drivers they cannot use, so the
174 following paragraphs explain how to limit the drivers, and give an
175 example which can be be reduced or amended as necessary.
176 </para>
177 </note>
178
179 <para>
180 Now, select the drivers you wish to install. For the X86 architecture, the
181 available gallium drivers are auto (<emphasis>in 21.2.1 this does not select
182 crocus </emphasis>), <emphasis>or alternatively a choice from</emphasis>
183 crocus, i915, iris, nouveau, r300, r600, radeonsi, svga, swrast, and virgl.
184 The latter can provide acceleration in <xref linkend="qemu"/> if that has
185 been linked against
186 <ulink url="https://gitlab.freedesktop.org/virgl/virglrenderer/~/releases/">virglrenderer</ulink>
187 (you will need a freedesktop.org account to get to that page, you can
188 download the 0.9.1 release without an account from
189 <ulink url="https://gitlab.freedesktop.org/virgl/virglrenderer/-/archive/0.9.1/virglrenderer-0.9.1.tar.bz2">virglrenderer-0.9.1</ulink>).
190<!-- If you wish to build all available gallium drivers,
191 use 'auto'. FIXME : does not build crocus in 21.2.1 -->
192
193 <!-- crocus was added to the default x86/x86_64 drivers for meson in the
194 master branch on 2021-08-31, at some point it will appear in a stable release -->
195 </para>
196
197 <para>
198 The (non-gallium) DRI drivers available in X86 are auto, <emphasis>or
199 alternatively a choice from</emphasis> i915, i965, nouveau, r100, r200,
200 and swrast. Use 'auto' to build all available DRI drivers, or use an
201 empty string (DRI_DRIVERS="") if you wish to only build gallium drivers.
202 </para>
203
204 <para>
205 The platforms ("window systems") available for X86 linux are x11, wayland,
206 <!--drm,--> and surfaceless. By not specifying anything, the meson
207 build-system will build for all these platforms if you have the
208 dependencies, identical to if you had specified '-Dplatforms=auto'.
209 </para>
210
211 <para>
212 Modify the commands below for your desired drivers. The drivers listed
213 below will cover most modern video cards and virtual machines. For help in
214 selecting drivers see <ulink url="https://docs.mesa3d.org/systems.html"/>.
215 <!-- these two don't seem to be mentioned in that mesa link -->
216 For intel drivers, specify crocus for i965 gen 4 through to haswell, iris
217 for broadwell and later.
218 </para>
219
220 <note>
221 <para>
222 Although the nouveau drivers can be built for both gallium and dri, the
223 i915 driver can only be built for one or the other.
224 </para>
225 </note>
226
227<screen><userinput>GALLIUM_DRV="crocus,i915,iris,nouveau,r600,radeonsi,svga,swrast,virgl"
228DRI_DRIVERS="i965,nouveau"</userinput></screen>
229
230 <para>
231 Install <application>Mesa</application> by running the following
232 commands:
233 </para>
234
235<screen><userinput>mkdir build &amp;&amp;
236cd build &amp;&amp;
237
238meson --prefix=$XORG_PREFIX \
239 --buildtype=release \
240 -Ddri-drivers=$DRI_DRIVERS \
241 -Dgallium-drivers=$GALLIUM_DRV \
242 -Dgallium-nine=false \
243 -Dglx=dri \
244 -Dvalgrind=disabled \
245 -Dlibunwind=disabled \
246 .. &amp;&amp;
247
248unset GALLIUM_DRV DRI_DRIVERS &amp;&amp;
249
250ninja</userinput></screen>
251
252 <para>
253 If you built the tests (see 'Command Explanations'), to run them issue:
254 <command>ninja test</command>.
255<!-- All tests passed for me for 21.2.4 [pierre]
256 All 33 subtests tests in the mesa:compiler+glsl / glsl compiler warnings
257 suite are known to fail.-->
258 </para>
259
260 <para>
261 Now, as the <systemitem class="username">root</systemitem> user:
262 </para>
263
264<screen role="root"><userinput>ninja install</userinput></screen>
265
266 <para>
267 If desired, install the optional documentation by running
268 the following commands as the
269 <systemitem class="username">root</systemitem> user:
270 </para>
271
272<screen role="root"
273 remap="doc"><userinput>install -v -dm755 /usr/share/doc/mesa-&mesa-version; &amp;&amp;
274cp -rfv ../docs/* /usr/share/doc/mesa-&mesa-version;</userinput></screen>
275
276 </sect2>
277
278 <sect2 role="commands">
279 <title>Command Explanations</title>
280
281 <para>
282 <parameter>--buildtype=release</parameter>: This switch ensures a
283 fully-optimized build, and disables debug assertions which will
284 severely slow down the libraries in certain use-cases. Without this
285 switch, build sizes can span into the 2GB range.
286 </para>
287
288 <para>
289 <parameter>-Ddri-drivers="..."</parameter>: This parameter
290 controls which (non-gallium) dri drivers should be built.
291 </para>
292
293 <para>
294 <parameter>-Dgallium-drivers="..."</parameter>: This parameter
295 controls which Gallium3D drivers should be built.
296 </para>
297
298 <para>
299 <parameter>-Dgallium-nine=false</parameter>: Prevents building
300 support for (MS Windows) games designed for DX9. Set it to true if
301 this support is desired.
302 </para>
303<!--
304 <para>
305 <parameter>-Dosmesa=true</parameter>: This switch enables building
306 the <filename class="libraryfile">libOSMesa</filename> library and
307 provides Gallium3D support in it. It requires the swrast gallium driver.
308 </para>
309-->
310<!--
311 <para>
312 <parameter>-Dplatforms="..."</parameter>: This parameter
313 controls which platforms EGL will be built for. Available
314 linux X86 platforms are drm, x11, wayland, and surfaceless.
315 </para>
316-->
317 <para>
318 <parameter>-Dvalgrind=disabled</parameter>: This parameter disables
319 the usage of Valgrind during the build process. Remove this parameter
320 if you have Valgrind installed, and wish to check for memory leaks.
321 </para>
322
323 <para>
324 <parameter>-Dlibunwind=disabled</parameter>: This parameter disables
325 the usage of libunwind.
326 </para>
327
328<!--
329 <para>
330 <parameter>- -enable-xa</parameter>: This switch enables building the
331 XA X Acceleration API (Required for VMware 3D Driver).
332 </para>
333
334 <para>
335 <parameter>- -enable-gbm</parameter>: This switch enables building the
336 <application>Mesa</application> Graphics Buffer Manager library.
337 </para>
338 These two seem to be automatic in 19.0 - ken
339
340 <para>
341 <parameter>- -enable-glx-tls</parameter>: This switch enables TLS (Thread Local
342 Storage) support in GLX.
343 </para>
344-->
345 <para>
346 <option>-Dbuild-tests=true</option>: This option will cause the test code
347 to be enabled. To run the tests, issue: <command>ninja test</command>.
348 </para>
349
350 <para>
351 <option>-Dvulkan-drivers=...</option>: This option allows choosing which
352 Vulkan drivers are built. Since those drivers depend on the
353 corresponding Gallium3D drivers, do not enable drivers that are not
354 enabled in Gallium3D drivers. Furthermore, since BLFS does not use
355 Vulkan, it is safe to leave the list of Vulkan drivers empty.
356 </para>
357
358 </sect2>
359
360 <sect2 role="content">
361 <title>Contents</title>
362
363 <segmentedlist>
364 <segtitle>Installed Programs</segtitle>
365 <segtitle>Installed Libraries</segtitle><!-- in /usr/lib -->
366 <segtitle>Installed Drivers</segtitle><!-- in /usr/lib/<subdir> -->
367 <segtitle>Installed Directories</segtitle>
368
369 <seglistitem>
370 <seg>
371 glxgears and glxinfo
372 </seg>
373 <seg>
374 libEGL.so,
375 libGL.so,
376 libGLESv1_CM.so,
377 libGLESv2.so,
378<!-- libOSMesa.so,-->
379 libXvMCnouveau.so,
380 libXvMCr600.so,
381 libgbm.so,
382 libglapi.so,
383 <!-- Begin Vulkan drivers -->
384 libvulkan_intel.so,
385 libvulkan_lvp.so,
386 libvulkan_radeon.so, and
387 <!-- End Vulkan drivers -->
388 libxatracker.so,
389 </seg>
390 <seg>
391 <!-- Begin gallium DRI drivers : this is the full set -->
392 d3dadapter9.so (optional), <!-- For Windows games. This is DirectX's
393 Direct3D -->
394 crocus_dri.so,
395<!-- i830_dri.so,-->
396 i915_dri.so,
397 i965_dri.so,
398 iris_dri.so,
399 kms_swrast_dri.so,
400 nouveau_dri.so,
401 nouveau_drv_video.so,
402 nouveau_vieux_dri.so,
403 r200_dri.so (optional),
404 r300_dri.so (optional),
405 r600_dri.so,
406 r600_drv_video.so,
407 radeon_dri.so (optional),
408 radeonsi_dri.so,
409 radeonsi_drv_video.so,
410 swrast_dri.so,
411 virtio_gpu_dri.so,
412 vmwgfx_dri.so,
413 <!-- End DRI Drivers -->
414 <!-- Begin VDPAU drivers -->
415 libvdpau_nouveau.so,
416 libvdpau_r300.so (optional),
417 libvdpau_r600.so, and
418 libvdpau_radeonsi.so
419 <!-- End VDPAU drivers -->
420 (Many of these drivers are hard-linked).
421 </seg>
422 <seg>
423 $XORG_PREFIX/{include/{EGL,GL,GLES,GLES2,GLES3,KHR},lib/{dri,vdpau}},
424 $XORG_PREFIX/include/d3adapter (optional),
425 $XORG_PREFIX/lib/d3d (optional),
426 $XORG_PREFIX/share/drirc.d (contains workarounds for various applications,
427 particularly browsers and games),
428 $XORG_PREFIX/share/vulkan/icd.d,
429 and
430 /usr/share/doc/mesa-&mesa-version; (optional)
431 </seg>
432 </seglistitem>
433 </segmentedlist>
434
435 <variablelist>
436 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
437 <?dbfo list-presentation="list"?>
438 <?dbhtml list-presentation="table"?>
439
440 <varlistentry id="glxgears">
441 <term><command>glxgears</command></term>
442 <listitem>
443 <para>
444 is a GL demo useful for troubleshooting graphics
445 problems
446 </para>
447 <indexterm zone="mesa glxgears">
448 <primary sortas="b-glxgears">glxgears</primary>
449 </indexterm>
450 </listitem>
451 </varlistentry>
452
453 <varlistentry id="glxinfo">
454 <term><command>glxinfo</command></term>
455 <listitem>
456 <para>
457 is a diagnostic program that displays information about the
458 graphics hardware and installed GL libraries
459 </para>
460 <indexterm zone="mesa glxinfo">
461 <primary sortas="b-glxinfo">glxinfo</primary>
462 </indexterm>
463 </listitem>
464 </varlistentry>
465
466 <varlistentry id="libEGL">
467 <term><filename class="libraryfile">libEGL.so</filename></term>
468 <listitem>
469 <para>
470 provides a native platform graphics interface as
471 defined by the EGL-1.4 specification
472 </para>
473 <indexterm zone="mesa libEGL">
474 <primary sortas="c-libGL">libEGL.so</primary>
475 </indexterm>
476 </listitem>
477 </varlistentry>
478
479 <varlistentry id="libgbm">
480 <term><filename class="libraryfile">libgbm.so</filename></term>
481 <listitem>
482 <para>
483 is the <application>Mesa</application> Graphics Buffer
484 Manager library
485 </para>
486 <indexterm zone="mesa libgbm">
487 <primary sortas="c-libgbm">libgbm.so</primary>
488 </indexterm>
489 </listitem>
490 </varlistentry>
491
492 <varlistentry id="libGLESv1_CM">
493 <term><filename class="libraryfile">libGLESv1_CM.so</filename></term>
494 <listitem>
495 <para>
496 is the <application>Mesa</application> OpenGL ES 1.1 library
497 </para>
498 <indexterm zone="mesa libGLESv1_CM">
499 <primary sortas="c-libGLESv1_CM">libGLESv1_CM.so</primary>
500 </indexterm>
501 </listitem>
502 </varlistentry>
503
504 <varlistentry id="libGLES2">
505 <term><filename class="libraryfile">libGLES2.so</filename></term>
506 <listitem>
507 <para>
508 is the <application>Mesa</application> OpenGL ES 2.0 library
509 </para>
510 <indexterm zone="mesa libGLES2">
511 <primary sortas="c-libGLES2">libGLES2.so</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="libGL">
517 <term><filename class="libraryfile">libGL.so</filename></term>
518 <listitem>
519 <para>
520 is the main <application>Mesa</application> OpenGL library
521 </para>
522 <indexterm zone="mesa libGL">
523 <primary sortas="c-libGL">libGL.so</primary>
524 </indexterm>
525 </listitem>
526 </varlistentry>
527<!--
528 <varlistentry id="libOSMesa">
529 <term><filename class="libraryfile">libOSMesa.so</filename></term>
530 <listitem>
531 <para>
532 is the <application>Mesa</application> Off-screen Rendering library
533 </para>
534 <indexterm zone="mesa libOSMesa">
535 <primary sortas="c-libOSMesa">libOSMesa.so</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539-->
540 </variablelist>
541
542 </sect2>
543
544</sect1>
Note: See TracBrowser for help on using the repository browser.