Mesa-24.3.4

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.3.x disponible.

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

Informations sur le paquet

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

  • Téléchargement (FTP) :

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

  • Taille du téléchargement : 30 Mo

  • Estimation de l'espace disque requis : 1,3 Go (avec la doc, plus 569 Mo pour les tests)

  • Estimation du temps de construction : 3,8 SBU (avec la doc, plus 1,2 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.124, Mako-1.3.9 et PyYAML-6.0.2

Recommandées

[Note]

Note

Une connexion internet est requise pour construire le pilote Vulkan Nouveau.

[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 les options softpipe ou llvmpipe 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.8.1, lm-sensors-3-6-0, Nettle-3.10.1, Valgrind-3.24.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

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]
      # Pour r300 ou r600 :
      < /*/M> ATI Radeon                                            [DRM_RADEON]
      # Pour 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]
      # Pour nouveau :
      < /*/M> Nouveau (NVIDIA) cards                               [DRM_NOUVEAU]
      [*]       Use GSP firmware for Turing/Ampere (needs firmware installed)
                                                  ...  [DRM_NOUVEAU_GSP_DEFAULT]
      # Pour i915, crocus ou iris :
      < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                       [DRM_I915]
      # Pour llvmpipe ou softpipe :
      < /*>   Virtual GEM provider                                    [DRM_VGEM]
      # Pour 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, CONFIG_DRM_AMDGPU ou CONFIG_DRM_NOUVEAU 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 llvmpipe ou softpipe, CONFIG_DRM_VGEM est requis ou les clients X échoueraient à démarrer avec un message cryptique Error: couldn't get an RGB, Double-buffered visual. À proprement parler, il peut être compilé en tant que module. Cependant, le module ne sera pas chargé automatiquement, donc il est plus pratique de l'embarquer dans l'image du noyau.

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-4.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 video-codecs=all      \
      -D libunwind=disabled    &&

ninja
[Avertissement]

Avertissement

Consultez votre avocat ou supprimez le paramètre -D video-codecs=all si vous voulez distribuer les bibliothèques Mesa compilées et ses pilotes à d'autres personnes.

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.3.4

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,llvmpipe.

  • 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.2.2 dans BLFS n'est pas construit avec virglrender)

  • svga (pour un GPU virtuel VMWare)

  • llvmpipe (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)

  • softpipe (utilise également le CPU pour la rastérisation 3D, mais il est plus lent que llvmpipe. Il n'y a plus de raison de l'utiliser à moins que LLVM ne soit pas disponible)

  • 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, et bien qu'il puisse parfois être instable, c'est un bon remplaçant pour les pilotes gallium peu performants comme nouveau)

-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.4.304)

-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 video-codecs=all : ce paramètre active la construction des codecs pour les formats vidéo couverts par des brevets tiers.

-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.

-D legacy-x11="..." : ce paramètre contrôle les fonctions X11 obsolètes prises en charge nativement. Les options linux disponibles sont none (par défaut) et dri2. Ces fonctionnalités sont rarement nécessaires de nos jours.

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, libgallium-24.3.4.so et libxatracker.so
Squelettes de pilotes DRI installés: libdril_dri.so et des liens symboliques qui pointent dessus : crocus_dri.so, i915_dri.so, iris_dri.so, kms_swrast_dri.so, nouveau_dri.so, r300_dri.so, r600_dri.so, r600_drv_video.so, radeonsi_dri.so, swrast_dri.so, virtio_gpu_dri.so, vmwgfx_dri.so et zink_dri.so
Pilotes VA-API installés: nouveau_drv_video.so, radeonsi_drv_video.so et virtio_gpu_drv_video.so,
Moteurs GBM installés: dri_gbm.so
Pilotes VDPAU installés: libvdpau_nouveau.so, libvdpau_r600.so, libvdpau_radeonsi.so et 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,gbm,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.3.4

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

dri_gbm.so

implémente les fonctions de gestion du tampon graphique (Graphics Buffer Management, GBM) requises par libgbm par-dessus libdrm

libdril_dri.so

est un squelette qui permet au serveur Xorg de coopérer avec les pilotes Gallium3D

libEGL.so

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

libgallium-24.3.4.so

contient tous les pilotes Gallium3D

libgbm.so

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

libglapi.so

est l'implémentation de l'API OpenGL 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

libxatracker.so

est l'outil de suivi de l'état XA pour le pilote vmwgfx de VMWare