Mesa-23.1.6

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 23.1.x do "Mesa" mais recente disponível.

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

Informação do Pacote

Transferências Adicionais

Dependências do Mesa

Exigidas

Bibliotecas do Xorg, libdrm-2.4.115 e Mako-1.2.4

Recomendadas

Opcionais

libgcrypt-1.10.2, libunwind-1.6.2, lm-sensors-3-6-0 , Nettle-3.9.1, Valgrind-3.21.0, mesa-demos (fornece mais que trezentos (300) demonstrativos extra para testar Mesa; isso inclui os mesmos aplicativos adicionados pelo remendo acima), Camada de Integração Bellagio OpenMAX (para plataformas móveis), glslang (para os controladores "vulkan"), libtizonia e Vulkan-Loader

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), [então] 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     \
      -Dplatforms=x11,wayland \
      -Dgallium-drivers=auto  \
      -Dvulkan-drivers=""     \
      -Dvalgrind=disabled     \
      -Dlibunwind=disabled    \
      ..                      &&

ninja

Para testar os resultados, emita: meson configure -Dbuild-tests=true && ninja test. Três testes relacionados a mesa:intel são conhecidos por falharem.

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

ninja install

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

install -v -dm755 /usr/share/doc/mesa-23.1.6 &&
cp -rfv ../docs/* /usr/share/doc/mesa-23.1.6

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.

-Dgallium-drivers=auto: Esse parâmetro controla quais controladores Gallium3D deveriam ser construídos. auto seleciona todos os controladores Gallium3D disponíveis para x86: r300 (para Radeon 9000 ou série Radeon X da ATI), r600 (para série Radeon HD 2000-6000 da AMD/ATI), radeonsi (para Radeon HD 7000 da AMD ou modelos de GPU mais recentes da AMD), nouveau (para GPUs Suportadas da NVIDIA, elas estão listadas como todos os recursos de 3D tanto DONE quanto N/A na página de situação da Nouveau), virgl (para GPU virtual do QEMU com suporte virglrender; observe que o BLFS qemu-8.1.0 não é construído com o virglrender), svga (para GPU virtual do VMWare), swrast (usando CPU para rasterização de 3D; observe que isso é muito mais lento que usar uma GPU moderna com recursos de 3D, de forma que deveria ser usado somente se a GPU não for suportada por outros controladores), iris (para GPUs Intel fornecidas com Broadwell ou CPUs mais recentes), crocus (para GPUs GMA 3000, série X3000, série 4000 ou série X4000 da Intel fornecidas com chipsets ou GPUs Intel HD fornecidas com CPUs pré-Broadwell), i915 (para GPUs GMA 900, 950, 3100 ou 3150 da Intel fornecidas com chipsets ou CPUs Atom D/N 4xx/5xx). Você pode substituir auto por uma lista separada por vírgulas, para construir somente um subconjunto desses controladores, se souber precisamente quais controladores precisa, por exemplo -Dgallium-drivers=radeonsi,iris,swrast.

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

-Dvulkan-drivers="": Essa chave permite escolher quais controladores Vulkan serão construídos. O padrão é auto, mas isso exige as dependências opcionais glslang e Vulkan-Loader. Vulkan é uma API mais recente projetada para utilizar as GPUs com um desempenho melhor que OpenGL, mas nada no BLFS se beneficia disso por enquanto. Portanto, nós passamos uma lista vazia para a finalidade de remover a necessidade dessas dependências.

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

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

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

-Degl-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 e glxinfo
Bibliotecas Instaladas: libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so e libxatracker.so
Controladores 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, libvdpau_nouveau.so, libvdpau_r300.so libvdpau_r600.so e libvdpau_radeonsi.so libvdpau_virtio_gpu.so (Muitos desses controladores são rigidamente lincados).
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, principalmente navegadores e jogos) e /usr/share/doc/mesa-23.1.6

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"