Mesa-24.1.5

Introduction à Mesa

Mesa est une bibliothèque graphique 3D compatible avec OpenGL.

[Note]

Note

Mesa est mis à jour régulièrement. Vous pourriez vouloir utiliser la dernière version 24.1.x disponible.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://mesa.freedesktop.org/archive/mesa-24.1.5.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 0f4de2192e63b438637b98937ac85a10

  • Taille du téléchargement : 28 Mo

  • Estimation de l'espace disque requis : 825 Mo (avec la doc, plus 496 Mo pour les tests)

  • Estimation du temps de construction : 4,1 SBU (avec la doc, plus 1,4 SBU pour les tests, tous deux avec parallélisme = 4)

Téléchargements supplémentaires

Dépendances de Mesa

Requises

Bibliothèques Xorg, libdrm-2.4.122 et Mako-1.3.5

Recommandées

  • Glslang-14.3.0 (requis pour la prise en charge de Vulkan)

  • libva-2.22.0 (pour fournir la prise en charge de VA-API pour certains pilotes gallium. Remarquez qu'il y a une dépendance circulaire. Vous devez d'abord construire libva sans la prise en charge d'EGL ni de GLX par mesa, installer ce paquet, puis reconstruire libva)

  • libvdpau-1,5 (pour construire les pilotes VDPAU)

  • LLVM-18.1.7 (requis pour les pilotes r300, r600 et radeonsi et le logiciel de rasterisation LLVMpipe qui peut rendre le pilote swrast bien plus rapide)

  • wayland-protocols-1.36 (requis pour Plasma-6.1.4, GNOME et recommandé pour GTK+-3.24.43)

  • libclc-18.1.7 (requis pour le pilote gallium Intel iris)

  • Vulkan-Loader-1.3.294 (requis pour le pilote gallium Zink)

  • ply-3.11 (requis pour le pilote Intel vulkan)

  • Cbindgen-0.27.0 et rust-bindgen-0.70.0 (requis pour le pilote Nouveau Vulkan)

[Note]

Note

Choisir ses pilotes Mesa

Dans les instructions ci-dessous, tous les pilotes disponibles sont construits. Cela fonctionnera presque toujours. Cependant, ce n'est pas efficace. En fonction de votre matériel vidéo, vous n'aurez probablement besoin que d'un seul pilote spécifique.

La première chose que vous devez savoir est le type de matériel vidéo que vous avez. Dans certains cas il est intégré au CPU. Dans d'autre, il s'agit d'une carte PCI distincte. Dans les deux cas vous pouvez savoir quel matériel vidéo est installé si vous avez installé pciutils-3.13.0 et lancez :

lspci | grep VGA

Le matériel vidéo fait très probablement partie d'une de ces trois familles : AMD, Intel ou Nvidia. Voir les explications des commandes pour -D gallium-drivers=auto ci-dessous pour voir les options disponibles pour votre matériel vidéo spécifique (ou matériel vidéo émulé). Vous devrez probablement ajouter l'option swrast comme pilote de secours.

Pour l'option « platforms », vous pouvez choisir x11 et/ou wayland. Remarquez que dans BLFS seul Gnome et KDE peuvent utiliser wayland pour le moment. Si vous n'allez pas utiliser ces environnements de bureau, vous n'aurez besoin que de x11.

Pour l'option « vulkan-drivers » vous voudrez peut-être limiter la liste à votre matériel actuel. Ces pilotes sont utilisés par certaines applications spécifiques. Par exemple, ffmpeg (y compris ffplay) utilisera Vulkan au lieu d'OpenGL pour le rendu vidéo sur le GPU. Si vous ne voulez pas de cela vous pouvez ne pas les installer. Voir les explications de commande pour -D vulkan-drivers=auto plus bas pour voir les options disponibles pour votre matériel vidéo spécifique (ou pour un matériel vidéo émulé). Vous devrez probablement ajouter l'option swrast comme pilote de secours à moins de ne pas vouloir utiliser Vulkan du tout.

Facultatives

libgcrypt-1.11.0, libunwind-1.6.2, lm-sensors-3-6-0, Nettle-3.10, Valgrind-3.23.0, mesa-demos (fournit plus de 300 démos supplémentaires pour tester Mesa ; ceci inclut les même programmes que ceux ajoutés par le correctif ci-dessus), Bellagio OpenMAX Integration Layer (pour les plateformes mobiles) et libtizonia

[Note]

Note

Il est nécessaire d'être connecté à internet pour construire ce paquet

Configuration du noyau

Activez les options suivantes dans la configuration du noyau et recompilez le noyau si nécessaire :

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
      # For r300 or r600:
      < /*/M> ATI Radeon                                            [DRM_RADEON]
      # For radeonsi:
      < /*/M> AMD GPU                                               [DRM_AMDGPU]
      [*]       Enable amdgpu support for SI parts               [DRM_AMDGPU_SI]
      [*]       Enable amdgpu support for CIK parts             [DRM_AMDGPU_CIK]
        Display Engine Configuration --->
        [*]   AMD DC - Enable new display engine                    [DRM_AMD_DC]
      # For nouveau:
      < /*/M> Nouveau (NVIDIA) cards                               [DRM_NOUVEAU]
      # For i915, crocus, or iris:
      < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                       [DRM_I915]
      # For swrast:
      < /*/M> Virtual GEM provider                                    [DRM_VGEM]
      # For svga:
      < /*/M> DRM driver for VMware Virtual GPU                     [DRM_VMWGFX]
[Note]

Note

Le nom du pilote Mesa Gallium3D correspondant est fournit en commentaire dans les entrées de configuration. Si vous ne connaissez pas le nom du pilote Mesa Gallium3D pour votre GPU, consultez Mesa Gallium3D Drivers plus bas.

CONFIG_DRM_RADEON, CONFIG_DRM_AMDGPU, CONFIG_DRM_NOUVEAU et CONFIG_DRM_I915 peuvent nécessiter un micrologiciel. Consultez À propos des Firmwares pour plus de détails.

Il n'est pas recommandé de choisir CONFIG_DRM_RADEON ou CONFIG_DRM_AMDGPU avec « y ». Si c'est le cas, les micrologiciels requis doivent être intégrés à l'image du noyau ou à l'initramfs pour que le pilote fonctionne correctement.

Les sous-entrées dans CONFIG_DRM_AMDGPU sont utilisées pour s'assurer que le pilote noyau AMDGPU prenne en charge tous les GPU qui utilisent le pilote radeonsi. Elles ne sont pas requises si vous n'avez pas besoin de CONFIG_DRM_AMDGPU. Elles peuvent ne pas être requises pour certains modèles de GPU.

Pour swrast, CONFIG_DRM_VGEM n'est pas strictement nécessaire mais recommandé comme optimisation.

Installation de Mesa

Si vous avez téléchargé le correctif xdemos (nécessaire pour tester l'installation de Xorg par les instructions de BLFS), appliquez-le en exécutant la commande suivante :

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

Installez Mesa en exécutant les commandes suivantes :

mkdir build &&
cd    build &&

meson setup ..                 \
      --prefix=$XORG_PREFIX    \
      --buildtype=release      \
      -D platforms=x11,wayland \
      -D gallium-drivers=auto  \
      -D vulkan-drivers=auto   \
      -D valgrind=disabled     \
      -D libunwind=disabled    &&

ninja

Pour tester les résultats lancez : meson configure -D build-tests=true && ninja test.

Maintenant, en tant qu'utilisateur root :

ninja install

Si vous le désirez, installez la documentation facultative en exécutant les commandes suivantes en tant qu'utilisateur root :

cp -rv ../docs -T /usr/share/doc/mesa-24.1.5

Explication des commandes

--buildtype=release : ce paramètre s'assure que la construction est complètement optimisée et désactive les assertions de débogage qui ralentiraient sévèrement les bibliothèques pour certains usages. Sans ce paramètre, la construction peut prendre dans les 2 Go.

-D gallium-drivers=auto : ce paramètre contrôle quels pilotes Gallium3D doivent être construits :

  • auto choisit tous les pilotes Gallium3D disponible pour x86. Avec une liste d'éléments séparés par des virgules, seul un sous-ensemble de ces pilotes sera construit. Si vous savez précisément les pilotes dont vous avez besoin, vous pouvez les lister explicitement. Par exemple, -D gallium-drivers=radeonsi,iris,swrast.

  • r300 (pour ATI Radeon 9000 ou la série Radeon X)

  • r600 (pour les séries AMD/ATI Radeon HD 2000-6000)

  • radeonsi (pour les modèles de GPU AMD Radeon HD 7000 ou plus récents)

  • nouveau (pour les GPU NVIDIA pris en charge, ils sont listés avec toutes les « 3D features » (fonctonnalités 3D) soit en « DONE », soit en « N/A » sur la page d'avancement de Nouveau)

  • virgl (pour un GPU virtuel QEMU avec la prise en charge de virglrender ; remarquez que qemu-9.0.2 dans BLFS n'est pas construit avec virglrender)

  • svga (pour un GPU virtuel VMWare)

  • swrast (utilise le CPU pour la rasterisation 3D. Remarquez que c'est bien plus lent qu'utiliser un GPU moderne capable de faire de la 3D, donc il ne devrait être utilisé que si le GPU n'est pas pris en charge par d'autres pilotes),

  • iris (pour les GPU Intel intégrés au CPU Broadwell et plus récents, ou sur une carte PCIe dédiée)

  • crocus (pour les séries de GPU Intel GMA 3000, X3000, 4000 ou X4000 intégrés sur puce et les GPU Intel HD intégrés aux CPU avant Broadwell)

  • i915 (pour les GPU Intel GMA 900, 950, 3100 ou 3150 intégrés sur puce ou les CPU Atom D/N 4xx/5xx)

  • zink (utilise Vulkan pour implémenter OpenGL, ce qui n'est pas très utile sur x86 pour le moment, mais il peut remplacer d'autres pilote pour les modèles de GPU modernes dans le futur)

-D vulkan-drivers=auto : ce paramètre contrôle les pilotes Vulkan à construire :

  • auto choisit tous les pilotes Vulkan disponibles pour x86. Avec une liste d'éléments séparés par des virgules, seul un sous-ensemble de ces pilotes sera construit. Si vous savez précisément de quels pilotes vous avez besoin, vous pouvez les lister explicitement. Par exemple -D vulkan-drivers=amd,nouveau,swrast.

  • amd (pour les GPU AMD Radeon HD 7730 ou plus récents)

  • intel (pour les GPU Intel intégrés aux processeurs Skylake ou plus récent, ou sur une carte PCIe dédiée)

  • intel_hasvk (pour les GPU Intel intégrés aux CPU Ivy Bridge, Haswell ou Broadwell)

  • nouveau (pour les GPU NVIDIA GTX 16XX, RTX 20XX ou plus récents)

  • swrast (pour utiliser le CPU pour la rasterisation 3D). Remarquez que c'est bien plus lent que d'utiliser un GPU moderne capable de faire de la 3D, donc il ne devrait être utilisé que si le GPU n'est pas pris en charge par d'autres pilotes

  • "" (la liste vide, utilisez -D vulkan-drivers="" si vous n'avez pas installé et ne prévoyez pas d'installer Vulkan-Loader-1.3.294)

-D platforms=... : ce paramètre contrôle les systèmes de fenêtrage pris en charge. Les plate-formes linux disponibles sont x11 et wayland.

-D valgrind=disabled : Ce paramètre désactive l'utilisation de Valgrind pendant le processus de construction. Supprimez ce paramètre si vous avez installé Valgrind et souhaitez vérifier les fuites mémoire.

-D libunwind=disabled : ce paramètre désactive l'utilisation de libunwind.

meson configure -D build-tests=true : cette commande reconfigurera la construction pour utiliser -D build-tests=true, sans changer les autres options spécifiées dans la commande meson setup. Cela permet à ninja test de construire et lancer les tests unitaires.

-D egl-native-platform="..." : ce paramètre contrôle la prise en charge Embedded Graphics Library qui sera construite. Les options disponibles pour linux sont auto (par défaut), x11, wayland, surfaceless et drm.

Contenu

Programmes installés: glxgears, glxinfo, mme_fermi_sim_hw_test et mme_tu104_sim_hw_test
Bibliothèques installées: libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so et libxatracker.so
Pilotes DRI installés: 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 et zink_dri.so
Pilotes VDPAU installés: libvdpau_nouveau.so, libvdpau_r600.so et libvdpau_radeonsi.so libvdpau_virtio_gpu.so (plusieurs de ces pilotes sont des liens en dur).
Pilotes Vulkan installés: libvulkan_intel_hasvk.so, libvulkan_intel.so, libvulkan_lvp.so, libvulkan_nouveau.so et libvulkan_radeon.so
Répertoires installés: $XORG_PREFIX/{include/{EGL,GLES,GLES2,GLES3,KHR}, $XORG_PREFIX/lib/{dri,vdpau}}, $XORG_PREFIX/share/drirc.d (contient des contournements pour diverses applications, en particulier les navigateurs et les jeux), $XORG_PREFIX/share/vulkan et /usr/share/doc/mesa-24.1.5

Descriptions courtes

glxgears

est une démo GL utile pour dépanner des problèmes graphiques

glxinfo

est un programme de diagnostic affichant des informations sur le matériel graphique et les bibliothèques GL installées

libEGL.so

fournit nativement une interface de plate-forme graphique qui est définie avec les spécifications EGL-1.4

libgbm.so

est la bibliothèque de gestion du tampon graphique de Mesa

libGLESv1_CM.so

est la bibliothèque OpenGL ES 1.1 de Mesa

libGLES2.so

est la bibliothèque OpenGL ES 2.0 de Mesa

libGL.so

est la bibliothèque OpenGL principale de Mesa