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 17.3.x mesa
            version.
          
         
        
          This package is known to build and work properly using an LFS-8.2
          platform.
        
        
          Package Information
        
        
        
          Additional Downloads
        
        
        
          Mesa Dependencies
        
        
          Required
        
        
          Xorg
          Libraries, libdrm-2.4.89, Mako-1.0.4, and Python-2.7.14
        
        
          Recommended
        
        
          libvdpau-1.1.1 (to build VDPAU drivers),
          LLVM-5.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.13 (required for
          Plasma-5.12.1, LXQt,
          GNOME, and recommended for GTK+-3.22.28)
        
        
          Optional
        
        
          libgcrypt-1.8.2, Nettle-3.4,
          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-17.3.4-add_xdemos-1.patch
        
          Now, select the drivers you wish to install. The available drivers
          are i915, nouveau, r300, r600, radeonsi, freedreno, svga, swrast,
          vc4, and virgl. 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,r600,nouveau,radeonsi,svga,swrast"
        
          Install Mesa by running the
          following commands:
        
        
./configure CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS=-lLLVM \
            --prefix=$XORG_PREFIX              \
            --sysconfdir=/etc                  \
            --enable-texture-float             \
            --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
          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-17.3.4 &&
cp -rfv docs/* /usr/share/doc/mesa-17.3.4
       
      
        
          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-texture-float:
          This switch enables floating-point textures and render buffers.
          Please consult docs/patents.txt to
          see if there are any legal issues if you use this feature.
        
        
          --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.
        
        
          --enable-sysfs: Use this switch to
          enable simple PCI identification method, required for building DRI
          on systems without udev.