Mesa-23.0.3

Introduction to Mesa

Mesa is an OpenGL compatible 3D graphics library.

[Note]

Note

Mesa is updated relatively often. You may want to use the latest available 23.0.x mesa version.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Package Information

Additional Downloads

Mesa Dependencies

Required

Xorg Libraries, libdrm-2.4.115, and Mako-1.2.4

Recommended

Optional

libgcrypt-1.10.2, libunwind-1.6.2, lm-sensors-3-6-0 , Nettle-3.8.1, Valgrind-3.21.0, mesa-demos (provides more than 300 extra demos to test Mesa; this includes the same programs added by the patch above), Bellagio OpenMAX Integration Layer (for mobile platforms), glslang (for vulkan drivers), libtizonia, and libvulkan

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mesalib

Installation of Mesa

If you have downloaded the xdemos patch (needed if testing the Xorg installation per BLFS instructions), apply it by running the following command:

patch -Np1 -i ../mesa-add_xdemos-2.patch

Install Mesa by running the following commands:

mkdir build &&
cd    build &&

meson setup                   \
      --prefix=$XORG_PREFIX   \
      --buildtype=release     \
      -Dplatforms=x11,wayland \
      -Dgallium-drivers=auto  \
      -Dvulkan-drivers=""     \
      -Dvalgrind=disabled     \
      -Dlibunwind=disabled    \
      ..                      &&

ninja

To test the results, issue: meson configure -Dbuild-tests=true && ninja test.

Now, as the root user:

ninja install

If desired, install the optional documentation by running the following commands as the root user:

install -v -dm755 /usr/share/doc/mesa-23.0.3 &&
cp -rfv ../docs/* /usr/share/doc/mesa-23.0.3

Command Explanations

--buildtype=release: This switch ensures a fully-optimized build, and disables debug assertions which will severely slow down the libraries in certain use-cases. Without this switch, build sizes can span into the 2GB range.

-Dgallium-drivers="...": This parameter controls which Gallium3D drivers should be built.

-Dplatforms="...": This parameter controls which windowing systems will be supported. Available linux platforms are x11 and wayland.

-Dvulkan-drivers="": This switch allows choosing which Vulkan drivers are built. The default is auto, but this requires the optional dependency glslang. So it is better to pass an empty list, in order to remove the need for that dependency. Nothing in BLFS uses Vulkan anyway.

-Dvalgrind=disabled: This parameter disables the usage of Valgrind during the build process. Remove this parameter if you have Valgrind installed, and wish to check for memory leaks.

-Dlibunwind=disabled: This parameter disables the usage of libunwind.

meson configure -Dbuild-tests=true: This command will reconfigure the build to set -Dbuild-tests=true, but keep the other options specified in the meson setup command unchanged. It allows ninja test to build and run unit tests.

-Degl-native-platform="...": This parameter controls which Embedded Graphics Library support will be built. Available linux options are auto (default), x11, wayland, surfaceless, and drm.

Contents

Installed Programs: glxgears and glxinfo
Installed Libraries: libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so, and libxatracker.so
Installed Drivers: crocus_dri.so, i915_dri.so, iris_dri.so, kms_swrast_dri.so, nouveau_dri.so, nouveau_drv_video.so, r300_dri.so, r600_dri.so, r600_drv_video.so, radeonsi_dri.so, radeonsi_drv_video.so, swrast_dri.so, virtio_gpu_dri.so, virtio_gpu_drv_video.so, vmwgfx_dri.so, libvdpau_nouveau.so, libvdpau_r300.so libvdpau_r600.so, and libvdpau_radeonsi.so libvdpau_virtio_gpu.so (Many of these drivers are hard-linked).
Installed Directories: $XORG_PREFIX/{include/{EGL,GLES,GLES2,GLES3,KHR}, $XORG_PREFIX/lib/{dri,vdpau}}, $XORG_PREFIX/share/drirc.d (contains workarounds for various applications, particularly browsers and games), and /usr/share/doc/mesa-23.0.3

Short Descriptions

glxgears

is a GL demo useful for troubleshooting graphics problems

glxinfo

is a diagnostic program that displays information about the graphics hardware and installed GL libraries

libEGL.so

provides a native platform graphics interface as defined by the EGL-1.4 specification

libgbm.so

is the Mesa Graphics Buffer Manager library

libGLESv1_CM.so

is the Mesa OpenGL ES 1.1 library

libGLES2.so

is the Mesa OpenGL ES 2.0 library

libGL.so

is the main Mesa OpenGL library