Mesa-24.1.5

Introdução ao Mesa

Mesa é uma biblioteca gráfica 3D compatível com OpenGL.

[Nota]

Nota

Mesa é atualizada relativamente muitas vezes. Você possivelmente queira usar a versão 24.1.x do Mesa mais recente disponível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

  • Transferência (HTTP): https://mesa.freedesktop.org/archive/mesa-24.1.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0f4de2192e63b438637b98937ac85a10

  • Tamanho da transferência: 28 MB

  • Espaço em disco estimado exigido: 825 MB (com documentos, adicionar 496 MB para testes)

  • Tempo de construção estimado: 4,1 UPC (com documentos; adicionar 1,4 UPC para testes; ambos com paralelismo=4)

Transferências Adicionais

Dependências do Mesa

Exigidas

Bibliotecas do Xorg, libdrm-2.4.122 e Mako-1.3.5

Recomendadas

  • Glslang-14.3.0 (exigido para suporte a Vulkan)

  • libva-2.22.0 (para fornecer suporte VA-API para alguns controladores gallium. Observe que existe uma dependência circular. Você precisa construir libva primeiro sem suporte EGL e GLX do mesa, instalar esse pacote e reconstruir libva)

  • libvdpau-1.5 (para construir controladores VDPAU)

  • LLVM-18.1.7 (exigido para os controladores r300, r600 e radeonsi e para o rasterizador de software LLVMpipe, que pode tornar o controlador swrast muito mais rápido)

  • wayland-protocols-1.36 (exigido para Plasma-6.1.4, GNOME e recomendado para GTK+-3.24.43)

  • libclc-18.1.7 (exigido para o controlador iris gallium da Intel)

  • Vulkan-Loader-1.3.294 (exigido para o controlador gallium Zink)

  • ply-3.11 (exigido para o controlador vulkan da Intel)

  • Cbindgen-0.27.0 e rust-bindgen-0.70.0 (exigido para o controlador Vulkan da Nouveau)

[Nota]

Nota

Escolhendo Controladores Mesa

Nas instruções abaixo, todos os controladores disponíveis são construídos. Isso quase sempre funcionará. No entanto, não é eficiente. Dependendo do teu hardware de vídeo, você provavelmente precisará somente de controladores específicos.

A primeira coisa que você precisa saber é qual tipo de dispositivo de vídeo você tem. Em alguns casos, ele está construído na CPU. Em outros, é uma placa PCI separada. Em ambos os casos, você pode saber qual hardware de vídeo tem instalando pciutils-3.13.0 e executando:

lspci | grep VGA

O dispositivo de vídeo é provavelmente uma das três famílias: AMD, Intel ou Nvidia. Vejam-se as Explicações do Comando para -D gallium-drivers=auto abaixo para ver quais opções estão disponíveis para teu hardware de vídeo específico (ou hardware emulado de vídeo). Você provavelmente deveria adicionar a opção swrast como um controlador residual.

Para 'platforms' você pode selecionar x11 e (ou) wayland. Observe que atualmente no BLFS somente o Gnome e o KDE podem usar o wayland. Se você não for usar um desses ambientes de área de trabalho, então provavelmente desejará somente o x11.

Para 'vulkan-drivers' você pode querer limitar a seleção ao teu hardware atual. Esses controladores são usados por alguns aplicativos específicos. Por exemplo, ffmpeg (incluindo ffplay) usará Vulkan em vez de OpenGL para renderizar vídeo na GPU. Se você não quiser fazer isso, você pode ou não querer instalá-los. Vejam-se as Explicações do Comando para -D vulkan-drivers=auto abaixo para ver quais opções estão disponíveis para teu hardware de vídeo específico (ou hardware emulado de vídeo). Você provavelmente deveria adicionar a opção swrast como um controlador residual, a menos que não precise do Vulkan.

Opcionais

libgcrypt-1.11.0, libunwind-1.6.2, lm-sensors-3-6-0, Nettle-3.10, Valgrind-3.23.0, mesa-demos (fornece mais que 300 extra demos para testar Mesa; isso inclui os mesmos programas adicionados pelo remendo acima), Bellagio OpenMAX Integration Layer (para plataformas móveis) e libtizonia,

[Nota]

Nota

Uma conexão com a Internet é necessária para construir esse pacote.

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

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]
[Nota]

Nota

O correspondente nome do controlador Gallium3D do Mesa é fornecido como comentário para as entradas de configuração. Se você não sabe o nome do controlador Gallium3D do Mesa para tua GPU, veja Mesa Gallium3D Drivers abaixo.

CONFIG_DRM_RADEON, CONFIG_DRM_AMDGPU, CONFIG_DRM_NOUVEAU e CONFIG_DRM_I915 possivelmente exijam firmware. Veja-se Acerca de Firmware para detalhes.

Selecionar CONFIG_DRM_RADEON ou CONFIG_DRM_AMDGPU como y não é recomendado. Se for, qualquer firmware exigido precisa ser construído como parte da imagem do núcleo ou do initramfs para o controlador funcionar corretamente.

As subentradas sob CONFIG_DRM_AMDGPU são usadas para garantir que o controlador de núcleo AMDGPU suporte todas as GPUs usando o controlador radeonsi. Elas não são necessárias se você não precisasse da própria CONFIG_DRM_AMDGPU. Elas possivelmente sejam desnecessárias para alguns modelos de GPU.

Para swrast, CONFIG_DRM_VGEM não é estritamente necessária, mas recomendada como uma otimização.

Instalação do Mesa

Se você baixou o remendo xdemos (necessário se testar a instalação do Xorg de acordo com as instruções do BLFS), aplique-o executando o seguinte comando:

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

Instale o Mesa executando os seguintes comandos:

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

Para testar os resultados, emita: meson configure -D build-tests=true && ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Se desejado, instale a documentação opcional executando os seguintes comandos como o(a) usuário(a) root:

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

Explicações do Comando

--buildtype=release: Essa chave garante uma construção totalmente otimizada e desabilita asserções de depuração que desacelerarão severamente as bibliotecas em certos casos de uso. Sem essa chave, os tamanhos de construção podem atingir a faixa de 2 GB.

-D gallium-drivers=auto: Esse parâmetro controla quais controladores Gallium3D deveriam ser construídos:

  • auto seleciona todos os controladores Gallium3D disponíveis para x86. Com uma lista separada por vírgulas, somente um subconjunto desses controladores será construído. Se você souber exatamente quais controladores precisa, poderá selecioná-los explicitamente. Por exemplo, -D gallium-drivers=radeonsi,iris,swrast.

  • r300 (para séries Radeon 9000 ou Radeon X da ATI)

  • r600 (para séries Radeon HD 2000-6000 da AMD/ATI)

  • radeonsi (para Radeon HD 7000 da AMD ou modelos mais recentes de GPU da AMD)

  • nouveau (para GPUs suportadas da NVIDIA, elas estão listadas como todos os recursos 3D ou DONE ou N/A na página de situação Nouveau)

  • virgl (para uma GPU virtual do QEMU com suporte a virglrender; observe que o qemu-9.0.2 do BLFS não é construído com virglrender)

  • svga (para uma GPU virtual do VMWare)

  • swrast (usar CPU para rasterização 3D. Observe que ele é muito mais lento que usar uma GPU moderna com capacidade 3D, de forma que ele deveria ser usado somente se a GPU não for suportada por outros controladores),

  • iris (para GPUs da Intel fornecidas com CPUs Broadwell ou mais recentes, ou como uma placa dedicada PCIe)

  • crocus (para GPUs da Intel GMA 3000, série X3000, série 4000 ou série X4000 fornecidas com chipsets ou GPUs HD da Intel fornecidas com CPUs pré Broadwell)

  • i915 (para GPUs da Intel GMA 900, 950, 3100 ou 3150 fornecidas com chipsets ou CPUs Atom D/N 4xx/5xx)

  • zink (usar Vulkan para implementar OpenGL, não é muito útil em x86 como no momento, mas pode substituir outros controladores para modelos modernos de GPU no futuro)

-D vulkan-drivers=auto: Esse parâmetro controla quais controladores Vulkan deveriam ser construídos:

  • auto seleciona todos os controladores Vulkan disponíveis para x86. Com uma lista separada por vírgulas, somente um subconjunto desses controladores será construído. Se você souber exatamente quais controladores precisa, poderá selecioná-los explicitamente. Por exemplo, -D vulkan-drivers=amd,nouveau,swrast.

  • amd (para Radeon HD 7730 da AMD ou GPUs mais recentes da AMD)

  • intel (para GPUs da Intel fornecidas com Skylake ou CPUs mais recentes, ou como uma placa dedicada PCIe)

  • intel_hasvk (para GPUs da Intel fornecidas com CPUs Ivy Bridge, Haswell ou Broadwell)

  • nouveau (para GTX 16XX, RTX 20XX ou GPUs mais recentes da NVIDIA)

  • swrast (para usar a CPU para rasterização 3D). Observe que ele é muito mais lento que usar uma GPU moderna com capacidade 3D, de forma que ele deveria ser usado somente se a GPU não for suportada por outros controladores.

  • "" (lista vazia, use -D vulkan-drivers="" se você não tiver instalado e não planeja instalar Vulkan-Loader-1.3.294)

-D platforms=...: Esse parâmetro controla quais sistemas de janelas serão suportados. As plataformas Linux disponíveis são x11 e wayland.

-D valgrind=disabled: Esse parâmetro desabilita o uso do Valgrind durante o processo de construção. Remova esse parâmetro se você tiver o Valgrind instalado e desejar verificar vazamentos de memória.

-D libunwind=disabled: Esse parâmetro desabilita o uso da libunwind.

meson configure -D build-tests=true: Esse comando reconfigurará a construção para configurar -D build-tests=true, mas manterá as outras opções especificadas no comando meson setup sem mudanças. Ele permite que ninja test construa e execute testes unitários.

-D egl-native-platform="...": Esse parâmetro controla qual suporte da Biblioteca de Gráficos Incorporados será construído. As opções de Linux disponíveis são auto (padrão), x11, wayland, surfaceless e drm.

Conteúdo

Aplicativos Instalados: glxgears, glxinfo, mme_fermi_sim_hw_test e mme_tu104_sim_hw_test
Bibliotecas Instaladas: libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so e libxatracker.so
Controladores DRI Instalados: 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 e zink_dri.so
Controladores VDPAU Instalados: libvdpau_nouveau.so, libvdpau_r600.so e libvdpau_radeonsi.so libvdpau_virtio_gpu.so (Muitos desses controladores estão rigidamente lincados).
Controladores Vulkan Instalados: libvulkan_intel_hasvk.so, libvulkan_intel.so, libvulkan_lvp.so, libvulkan_nouveau.so e libvulkan_radeon.so
Diretórios Instalados: $XORG_PREFIX/{include/{EGL,GLES,GLES2,GLES3,KHR}, $XORG_PREFIX/lib/{dri,vdpau}}, $XORG_PREFIX/share/drirc.d (contém soluções alternativas para vários aplicativos, particularmente navegadores e jogos), $XORG_PREFIX/share/vulkan e /usr/share/doc/mesa-24.1.5

Descrições Curtas

glxgears

é uma demonstração GL útil para solucionar problemas gráficos

glxinfo

é um aplicativo de diagnóstico que exibe informações relativas ao hardware gráfico e bibliotecas GL instaladas

libEGL.so

fornece uma interface gráfica de plataforma nativa conforme definido pela especificação EGL-1.4

libgbm.so

é a biblioteca Graphics Buffer Manager do Mesa

libGLESv1_CM.so

é a biblioteca OpenGL ES 1.1 do Mesa

libGLES2.so

é a biblioteca OpenGL ES 2.0 do Mesa

libGL.so

é a principal biblioteca OpenGL do Mesa