Introduction to Mesa
        
        
          Mesa is an OpenGL compatible 3D
          graphics library.
        
        
          
          
            Note
          
          
            Mesa is updated relatively
            often. You may want to use the latest available 18.3.x mesa
            version.
          
         
        
          This package is known to build and work properly using an LFS-8.4
          platform.
        
        
          Package Information
        
        
        
          Additional Downloads
        
        
        
          Mesa Dependencies
        
        
          Required
        
        
          Xorg
          Libraries, libdrm-2.4.97, and Mako-1.0.7
        
        
          Recommended
        
        
          libva-2.4.0 (to build drivers for supported
          hardware, note that there is a circular dependency. You must build
          libva first without EGL and GLX
          support, install this package, and rebuild libva.), libvdpau-1.1.1
          (to build VDPAU drivers), LLVM-7.0.1 (required
          for Gallium3D, r300, and radeonsi drivers and for the llvmpipe
          software rasterizer. See http://www.mesa3d.org/systems.html
          for more information), and wayland-protocols-1.17 (required for
          Plasma-5.15.0, GNOME, and recommended for
          GTK+-3.24.5)
        
        
          Optional
        
        
          libgcrypt-1.8.4, Nettle-3.4.1,
          Python-2.7.15 (not used if Python3 is present),
          mesa-demos
          (provides more than 300 extra demos to test Mesa; this includes the same programs added by
          the patch above), and Bellagio OpenMAX Integration
          Layer (for mobile platforms)
        
        
          
          
            Note
          
          
            The instructions below assume that LLVM with the r600/amdgpu and host backends
            are installed. You will need to modify the instructions if you
            choose not to install it. For an explanation of Gallium3D see
            https://en.wikipedia.org/wiki/Gallium3D.
          
         
        
          User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mesa
        
       
      
        
          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-18.3.3-add_xdemos-1.patch
        
          Now, select the drivers you wish to install. The available drivers
          are i915, nouveau, r300, r600, radeonsi, freedreno, pl111, svga,
          swrast, swr, tegra, v3d, vc4, virgl, etnaviv, and imx. If the
          Gallium drivers are not specified, the default is
          'r300,r600,svga,swrast'. Modify the command below for any desired
          drivers. The listed drivers below will cover most modern video
          cards. For help in selecting drivers see http://www.mesa3d.org/systems.html.
        
        
GLL_DRV="i915,nouveau,radeonsi,svga,swrast"
        
          Install Mesa by running the
          following commands:
        
        
./configure CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS=-lLLVM \
            --prefix=$XORG_PREFIX              \
            --sysconfdir=/etc                  \
            --enable-osmesa                    \
            --enable-xa                        \
            --enable-glx-tls                   \
            --with-platforms="drm,x11,wayland" \
            --with-gallium-drivers=$GLL_DRV    &&
unset GLL_DRV &&
make
        
          If you have applied the xdemos patch, build the demo programs by
          running the following command:
        
        
make -C xdemos DEMOS_PREFIX=$XORG_PREFIX
        
          To test the results, issue: make -k
          check.
        
        
          Now, as the root user:
        
        
make install
        
          If you have built the demo programs, install them by running the
          following command as the root user:
        
        
make -C xdemos DEMOS_PREFIX=$XORG_PREFIX install
        
          If desired, install the optional documentation by running the
          following commands as the root
          user:
        
        
install -v -dm755 /usr/share/doc/mesa-18.3.3 &&
cp -rfv docs/* /usr/share/doc/mesa-18.3.3
       
      
        
          Command Explanations
        
        
          CFLAGS="-O2"
          CXXFLAGS="-O2": By default, Autoconf sets CFLAGS and CXXFLAGS to "-g -O2".
          That results in binaries and libraries being built with debugging
          symbols which make them bigger. Override the default flags to omit
          the -g compiler flag so the final libraries are smaller.
        
        
          LDFLAGS=-lLLVM: This
          environment variable specifies the LLVM libraries that are not
          automatically included for some of the package components.
        
        
          --enable-osmesa: This
          switch enables building the libOSMesa
          library.
        
        
          --enable-xa: This switch
          enables building the XA X Acceleration API (Required for VMware 3D
          Driver).
        
        
          --enable-gbm: This switch
          enables building the Mesa Graphics
          Buffer Manager library.
        
        
          --enable-glx-tls: This
          switch enables TLS (Thread Local Storage) support in GLX.
        
        
          --with-platforms="...":
          This parameter controls which platforms EGL will be built for.
          Available platforms are drm, x11 and wayland.
        
        
          --with-gallium-drivers="...": This
          parameter controls which Gallium3D drivers should be built.