%general-entities; ]> Mesa-&mesa-version; Mesa Introduction to Mesa Mesa offers a wide variety of graphic software, offering the OpenGL library, OpenGL drivers, Vulkan drivers, and so forth. Mesa is updated relatively often. You may want to use the latest available &mesa-major-minor;.x mesa version. &lfs121_checked; Download (HTTP): Download (FTP): Additional Downloads Recommended patch: (installs 2 demo programs for testing Mesa - not needed if you install the mesa-demos package) Mesa Dependencies Required , , and Recommended , , and (required for NVK and Vulkan swrast) and (required for Vulkan support) and (required for Intel Vulkan) (required for ) (to provide VA-API support for some gallium drivers, note that there is a circular dependency. You must build libva first without EGL and GLX support, install this package, and rebuild libva) (to build VDPAU drivers) (required for the r300, r600, and radeonsi drivers, and the LLVMpipe software rasterizer which can make the Swrast driver much faster... also Clang is required for Vulkan Swrast) (required for multilib 32-bit Nouveau and Swrast Vulkan) (required for many desktop environments and recommended for GTK) Optional libgcrypt, , lm_sensors , , valgrind, 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), and libtizonia Installation of Mesa Don't apply the xdemos patch if you are doing multilib and are going to be compiling the 32-bit variant, as the build fails. If you want to apply the patch for the 64-bit build, do so then remove the Mesa directory and unpack the tarball and create the build directory again. Then skip the step where you clean the build directory and follow the directions as normal. If you have downloaded the xdemos patch (needed if testing the Xorg installation per GLFS instructions), apply it by running the following command: patch -Np1 -i ../mesa-add_xdemos-2.patch If you are using and wish to use , this package is still a requirement as Steam depends on Mesa's GBM, or else the webhelper will repeatedly launch and crash before showing an error screen. You will need to have at least one gallium driver for this package to compile. Set the option -Dgallium-drivers=nouveau to get this package over and done with as then you can move on. The 32-bit version of this package is not necessary if you are doing this. Install Mesa by running the following commands: mkdir build && cd build && meson setup \ --prefix=$XORG_PREFIX \ --buildtype=release \ -Dosmesa=true \ -Dplatforms=x11,wayland \ -Dgallium-drivers=auto \ -Dvulkan-drivers=auto \ -Dvalgrind=disabled \ -Dlibunwind=disabled \ -Dglvnd=enabled \ .. && 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: cp -rv ../docs -T /usr/share/doc/mesa-&mesa-version; 32-bit Installation of Mesa First clean the build directory: rm -rf * Install lib32-Mesa by running the following commands: CC="gcc -m32" CXX="g++ -m32" \ PKG_CONFIG_PATH=$XORG_PREFIX/lib32/pkgconfig \ meson setup \ --prefix=$XORG_PREFIX \ --libdir=$XORG_PREFIX/lib32 \ --buildtype=release \ -Dosmesa=true \ -Dplatforms=x11,wayland \ -Dgallium-drivers=auto \ -Dvulkan-drivers=auto \ -Dvalgrind=disabled \ -Dlibunwind=disabled \ -Dglvnd=enabled \ .. && ninja Now, as the root user: DESTDIR=$PWD/DESTDIR ninja install cp -vr DESTDIR/$XORG_PREFIX/lib32/* $XORG_PREFIX/lib32 rm -rf DESTDIR ldconfig 32-bit Installation of NVK and Vulkan Swrast Feel free to skip this section if you don't want to install the Nouveau Vulkan driver (NVK) or Vulkan swrast. NVK and Vulkan swrast have special requirements to be configured and compiled, requiring extra steps. You are going to need to modify a few paths in a personality file used by Pkgconf, as it searches in /usr rather than $XORG_PREFIX. If the expanded path is /usr, skip to the compilation instructions. Change the paths in the Pkgconf personality file as the root user: sed -i 's/\/usr/\$XORG_PREFIX/g' \ /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality Now clean the build directory: rm -rf * Install lib32-NVK and/or Vulkan swrast by following the commands: meson setup \ --cross-file lib32 \ --prefix=$XORG_PREFIX \ --libdir=$XORG_PREFIX/lib32 \ --buildtype=release \ -Dplatforms=x11,wayland \ -Dgallium-drivers=swrast \ -Dvulkan-drivers=nouveau,swrast \ -Dglx=disabled \ -Degl=disabled \ -Dopengl=false \ -Dgles1=disabled \ -Dgles2=disabled \ -Dvalgrind=disabled \ -Dlibunwind=disabled \ .. && ninja Now, as the root user: DESTDIR=$PWD/DESTDIR ninja install cp -vr DESTDIR/$XORG_PREFIX/lib32/* $XORG_PREFIX/lib32 rm -rf DESTDIR ldconfig If you modified the Pkgconf personality, you can change it back by doing the following command as the root user: sed -i 's/\$XORG_PREFIX/\/usr/g' \ /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality 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=auto: This parameter controls which Gallium3D drivers should be built. auto selects all Gallium3D drivers available for x86: r300 (for ATI Radeon 9000 or Radeon X series), r600 (for AMD/ATI Radeon HD 2000-6000 series), radeonsi (for AMD Radeon HD 7000 or newer AMD GPU models), nouveau (for Supported NVIDIA GPUs, they are listed as all 3D features either DONE or N/A in the Nouveau status page), virgl (for QEMU virtual GPU with virglrender support), svga (for VMWare virtual GPU), swrast (using CPU for 3D rasterisation; needed for OSMesa which provides OpenGL bitmap support), zink (a driver converting Vulkan calls to OpenGL; however, it is unstable and a lot of applications can't use it besides demos), iris (for Intel GPUs shipped with Broadwell or newer CPUs), crocus (for Intel GMA 3000, X3000 series, 4000 series, or X4000 series GPUs shipped with chipsets, or Intel HD GPUs shipped with pre-Broadwell CPUs), i915 (for Intel GMA 900, 950, 3100, or 3150 GPUs shipped with chipsets or Atom D/N 4xx/5xx CPUs). You may replace auto with a comma-separated list to build only a subset of these drivers if you precisely know which drivers you need, for example: . -Dplatforms=...: This parameter controls which windowing systems will be supported. Available linux platforms are x11 and wayland. -Dvulkan-drivers=auto: This switch enables support for the Vulkan graphics API. It automatically builds all graphics drivers that are available for Vulkan. If you wish to build specific drivers, valid options include 'amd', 'intel', 'intel_hasvk', 'nouveau', and 'swrast'. If you do not want Vulkan support, change 'auto' to "". -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. -Dglvnd=enabled: This parameter disables this package from building its own OpenGL library and uses the libraries provided by . Omit parameter if you do not want to use . Otherwise, keep the parameter and install before compiling this package. meson configure -Dbuild-tests=true: This command will reconfigure the build to set , but keep the other options specified in the meson setup command unchanged. It allows ninja test to build and run unit tests. : 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 Installed Libraries Installed DRI Drivers Installed VDPAU Drivers Installed Vulkan Drivers Installed Directories glxgears and glxinfo libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so, and libxatracker.so 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, and zink_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). libvulkan_intel_hasvk.so, libvulkan_intel.so, libvulkan_lvp.so, and libvulkan_nouveau.so, and libvulkan_radeon.so $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), $XORG_PREFIX/share/vulkan, and /usr/share/doc/mesa-&mesa-version; Short Descriptions glxgears is a GL demo useful for troubleshooting graphics problems glxgears glxinfo is a diagnostic program that displays information about the graphics hardware and installed GL libraries glxinfo libEGL.so provides a native platform graphics interface as defined by the EGL-1.4 specification libEGL.so libgbm.so is the Mesa Graphics Buffer Manager library libgbm.so libGLESv1_CM.so is the Mesa OpenGL ES 1.1 library libGLESv1_CM.so libGLES2.so is the Mesa OpenGL ES 2.0 library libGLES2.so libGL.so is the main Mesa OpenGL library libGL.so