Ir ao conteúdo
  • Cadastre-se

Firefox com aceleração via GPU


Marcos FRM

Posts recomendados

  • Membro VIP

O tópico

 

 

me fez, depois de anos, testar novamente o Arch com XFCE no meu velho Acer E1-531 (Celeron B830, 4 GiB de RAM). No Linux, o navegador com melhor desempenho por causa dos recursos de aceleração via hardware é o Firefox. Olhando se tinha como deixá-lo melhor, esbarrei nisto:

 

https://bugzilla.mozilla.org/show_bug.cgi?id=1710400

 

Estava com o driver intel do Xorg, considerado obsoleto. Sem ele, o Xorg usa o driver modesetting -- um código genérico, compatível com GPUs que tenham driver DRM no kernel. Então, rodei "pacman -Rs xf86-vídeo-intel", reiniciei e pronto, de "WebRender (software)" passou para "WebRender", indicando que pelo menos a montagem da página tem ajuda da GPU chinfrim. Requer vídeo integrado Sandy Bridge (Gen6) ou superior.

 

https://mastransky.wordpress.com/2021/01/10/firefox-were-finally-getting-hw-acceleration-on-linux/

 

Decodificação de vídeo, por outro lado, é puramente software, mesmo com os pacotes requeridos (ffmpeg, libva, libva-intel-driver) instalados. É uma decisão temporária da Mozilla, até o recurso ser suficientemente livre de bugs:

 

https://bugzilla.mozilla.org/show_bug.cgi?id=1777430

 

Achei estranho, pois jurava que no Fedora funcionava... até cair aqui:

 

https://src.fedoraproject.org/rpms/firefox/blob/f37/f/firefox-enable-vaapi.patch

 

A compilação do Fedora ativa por conta. Para ter o mesmo no Arch, resta mudar, em about:config, este parâmetro:

 

media.hardware-vídeo-decoding.force-enabled = true

 

(reiniciar o navegador depois de alterar)

 

Extensão enhanced-h264ify instalada, pois GPUs antigas suportam apenas H.264. Vídeo do YouTube em 1080p. Antes da opção acima, ambos os núcleos (é dual core...) ficavam com uso em torno de 40~50%. Depois de ativada, ficam em 20~35%. Não diminui tanto assim, mas, nesses cacarecos, cada por cento de poder de processamento livre conta.

 

Não sei se outras distribuições além do Fedora ativam o recurso. Olhem em about:support, procurando pelas linhas mencionadas aqui:

 

https://fedoraproject.org/wiki/Firefox_Hardware_acceleration

 

Definitivamente melhor do que no Windows 10. Ficará o Arch!

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Pelo que entendi, garimpando no Bugzilla, a aceleração requer, nos modelos da Intel, HD Graphics Gen6 (Sandy Bridge) ou superior por causa do suporte ao OpenGL 3.2. Tanto para WebRender, que é a composição dos elementos da janela feita pela GPU, quanto para decodificação de vídeo. Modelos anteriores não devem ser suportados. 😌

 

https://bugzilla.mozilla.org/show_bug.cgi?id=1748819#c4

 

Ah, eu usava o driver modesetting antigamente; depois passei para o intel por causa do tearing. Comentei aqui:

 

 

Isso faz anos. 😅 Deixarei com o modesetting, que é padrão nas principais distribuições faz tempo:

 

https://hansdegoede.livejournal.com/16976.html

 

Só que... estou tendo um pouquinho de tearing. Haha. Lá vou eu escavar no xfwm4, no Xorg, para ver o que dá para fazer. 😆

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Hmm. 🤨 No YouTube, tearing aparece usando 720p ou inferior. Em 1080p, não. A resolução da tela é 1366x768.

 

Consegui me livrar do tearing mudando o mecanismo usado pelo xfwm4 para glx (OpenGL):

 

$ xfconf-query -c xfwm4 -p /general/vblank_mode -s glx

 

(reiniciar o ambiente gráfico para aplicar)

 

xpresent é o padrão em hardware Intel caso não seja configurado manualmente. A configuração padrão já mudou umas três vezes... 😅 na versão de desenvolvimento 4.13, xpresent era sempre preferido. Na versão 4.14 (primeira estável a ter o recurso), glx era tentado primeiro. Depois, não sei ao certo a partir de qual versão, xpresent voltou a ter preferência, porém apenas para hardware Intel e AMD. Depois, hardware AMD passou a dar preferência para glx por causa de bugs no driver amdgpu do Xorg.

 

YouTube 720p (H.264) e xfwm4 com glx faz ambos os núcleos ficarem em 20~30%. Bem usável e sem tearing. 💓

Link para o comentário
Compartilhar em outros sites

  • mês depois...
  • Membro VIP

Firefox habilitará decodificação via VA-API por padrão em GPUs Intel a partir da versão 115:

 

https://www.mozilla.org/en-US/firefox/115.0a1/releasenotes/

 

GPUs AMD ficaram de fora por causa de bugs, como estes:

 

https://gitlab.freedesktop.org/mesa/mesa/-/issues/8996

(consertado na Mesa 23.1.1)

https://gitlab.freedesktop.org/mesa/mesa/-/issues/8303

...

 

Torçamos para que a drenagem do pântano de bugs não demore muito. 🙏

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Coordenador

Excelente notícia! Espero que isso seja resolvido logo. É algo que faz muita falta. Também tenho alguns computadores mais antigos aqui e isso ajudaria bastante.

 

Meu desktop é atual, mas tem placa de vídeo da Nvidia e, como de costume, acaba tendo sua leva de problemas no Linux. Até o final do ano devo me livrar da placa da Nvidia para pegar uma da AMD. Até lá quem sabe a decodificação já funciona...

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Estou confiante que será habilitado em hardware AMD, pois programadores da empresa estão trabalhando na resolução dos bugs; por exemplo, neste commit, que resolveu o primeiro bug mencionado anteriormente:

 

https://gitlab.freedesktop.org/mesa/mesa/-/commit/799665c9baa169ee6979bb4d4545029ada10ac8e

 

Nvidia é complicado. Tem este código, meio experimental, sem ligação com a empresa, que faz a ligação entre VA-API e o driver proprietário...

 

https://github.com/elFarto/nvidia-vaapi-driver/

 

No Ubuntu, está no repositório universe; no Fedora/RHEL, no RPMFusion; no Arch, no AUR. Deixa claro o status de não suportado.

 

Bem diferente do código da AMD, que vive oficialmente na Mesa (feminino pois é um conjunto de bibliotecas, The Mesa 3D Graphics Library). 💝

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • mês depois...
  • Membro VIP

Lançado ontem o Firefox 115 com decodificação de vídeo via hardware habilitada por padrão em GPUs Intel.

 

Para quem tem pelo menos Intel 7ª geração (Kaby Lake), que suporta decodificação de VP9, não precisa ajuste nenhum. Para gerações anteriores, instale a extensão enhanced-h264ify, assim sites como o YouTube servirão H.264.

 

Acho que o requerimento mínimo para funcionar é 2ª geração (Sandy Bridge).

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...
  • Membro VIP
  • 3 meses depois...
  • Membro VIP

Os dois principais bugs das GPUs AMD foram consertados. Um no kernel e outro via firmware.

 

https://gitlab.freedesktop.org/drm/amd/-/issues/2220

➡️ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ab4750332dbe535243def5dcebc24ca00c1f98ac

 

https://gitlab.freedesktop.org/mesa/mesa/-/issues/8044

➡️ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=977332782302476e1c863b09b840f463d0378807

 

Ter os firmwares mais recentes é obrigatório com GPU AMD, pois vários problemas estão sendo resolvidos pelos engenheiros da empresa nos últimos meses.

 

Uma discussão interessante é que decodificação de vídeo em GPUs AMD não diminui consideravelmente o consumo de energia no Linux. Discussão sobre o assunto:

 

https://gitlab.freedesktop.org/drm/amd/-/issues/3195

 

As respostas de Alex Deucher (engenheiro da empresa) são esclarecedoras. Basicamente os compositores precisam replicar o que Windows e Android fazem, pois do contrário o motor de decodificação faz a parte dele, porém logo depois Mutter/KWin/etc, ao montarem a tela, usam OpenGL/GLES, fazendo a GPU consumir toda a energia recém economizada.

 

Há trabalho sendo feito no Mutter:

 

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3177 (estará no GNOME 46)

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2660 (rascunho; para aplicativos rodando sem ser em tela cheia)

 

Legal ver que as mudanças acima revelaram bug no driver:

 

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=003048ddf44b1a6cfa57afa5a0cf40673e13f1ba

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bc0b79ce2050aa523c38c96b6d26340a96bfbdca

 

Exigirá adaptação nos aplicativos?

 

https://github.com/mpv-player/mpv/pull/12237 (mpv)

 

Pelo que entendi, tal otimização funciona(rá) apenas no Wayland.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!