Aceleração de vídeo por hardware

Informações retiradas do Arch Wiki

Tanto o firefox quanto chromium ficam mais rápido para abrir e carregar páginas

https://wiki.archlinux.org/index.php/Firefox
https://wiki.archlinux.org/index.php/Chromium
Créditos para Lonaowna , Svito e Nl6720

Aceleração de vídeo por hardware

Desde o Firefox 75, a aceleração de hardware H.264 via VA-API é suportada, outros formatos são suportados desde o Firefox 76.

A aceleração de hardware funciona apenas ao usar Wayland. O suporte ao Xorg ainda não está implementado.

Adicione em /etc/environment (Global) ou adicione ~/.bash_profile (Local) o seguinte conteúdo:

export MOZ_ENABLE_WAYLAND=1

Para habilitar o firefox no Wayland, use a variável MOZ_ENABLE_WAYLAND=1. Caso contrário, terá travamentos e lentidão.

Antes de experimentar o suporte VA-API no Firefox, certifique-se de:
Instale o driver VA-API correto para sua placa de vídeo e verifique se o VA-API foi ativado e funcionando corretamente.

  • Defina widget.wayland-dmabuf-vaapi.enabled como true em about:config
    

Ative a composição acelerada por hardware apropriada para o Firefox(compositor GL ou WebRender):

  •    Habilita a composição Open-Off-Main-Thread (OMTC) do OpenGL; (veja mais abaixo)
    
  •    Ativar WebRender; (veja mais abaixo)
    
  •   Defina media.ffvpx.enabled como false em about:config para desativar o FFmpeg empacotado;
    

Você pode verificar se a VA-API está ativada executando o Firefox com a variável de ambiente MOZ_LOG=“PlatformDecoderModule: 5” e verificar na saída do log que a VA-API está ativada e usada (pesquise a string “VA-API”) quando, por exemplo, reproduzindo um vídeo do YouTube.
Nota: Preste atenção nestes logs, pois eles podem dizer que apenas um dos dois métodos possíveis de composição acelerada por hardware descritos anteriormente (OMTC ou WebRender) funciona com a VA-API em sua configuração específica. Por exemplo, VA-API works with WebRender only!

Para criar o log, execute na terminal

MOZ_LOG="PlatformDecoderModule: 5" firefox youtube.com 2>log-firefox
Execute um vídeo no youtube e feche o firefox
Então procure por VA-API no log-firefox na pasta /home/usuário

Para reduzir o uso da CPU enquanto assiste ao YouTube, onde a decodificação de hardware VP8/VP9 não está disponível, use as extensão h264ify ou h264ify.

Ativar composição Off-Main-Thread (OMTC) do OpenGL

O software básico OMTC está ativado por padrão.

Para verificar se o OpenGL OMTC está ativado, vá para about:support e, na seção “Gráficos”, procure por “Composição”. Se ele relatar “Basic”, o OpenGL OMTC está desativado; se o relatar “OpenGL” está ativado.

Se o OpenGL OMTC estiver desativado, você poderá ativá-lo em about:config e habilitando o layers.acceleration.force-enabled. Reinicie o Firefox para que as alterações entrem em vigor.
Nota: Se o OpenGL OMTC estiver desativado para um hardware específico, pode ser devido a problemas de estabilidade, alto consumo de recursos do sistema, bugs de driver ou várias variáveis ​​diferentes; portanto, em vez de acelerar as coisas, isso pode atrasá-los. Prossiga com a ativação forçada por sua conta e risco, avalie se não tiver certeza.

Ativar WebRender

Ativa o compositor WebRender no Servo, em vez de Gecko. Ele melhora o desempenho no hardware suportado, corrige algumas falhas visuais negras quando o “OpenGL Off-Main-Thread” está ativado.

A Mozilla está implementando lentamente o WebRender em configurações Linux “qualificadas”. A qualificação depende principalmente da GPU, da versão do driver e da resolução da tela.

Pode-se forçá-lo usando um dos dois métodos abaixo:

  • Definindo a variável de ambiente MOZ_WEBRENDER como 1 antes de iniciar o Firefox.
    
  • Acessando: about:config e definindo gfx.webrender.all como true. Reinicie o Firefox para que as alterações entrem em vigor.
    

    Para verificar se o WebRender está ativado, vá para about:support e, na seção “Gráficos”, procure por “WEBRENDER”. Se ele relatar “available by user: Force enabled by pref”, significa que está ativada. Caso contrário, ele relatará apenas “opt-in by default: WebRender is an opt-in feature”.
    Nota: Se o WebRender estiver desativado para um hardware específico, isso pode ocorrer devido a problemas de estabilidade, alto consumo de recursos do sistema, bugs de driver ou várias variáveis ​​diferentes; portanto, em vez de acelerar as coisas, isso pode atrasá-los. Prossiga com a ativação da força por seu próprio risco, avaliando se não tiver certeza.

Chromium/Chrome

Forçar aceleração da GPU

Aviso: desativar a lista negra de renderização pode causar um comportamento instável,

Por padrão, o Chromium no Linux não usa nenhuma aceleração de GPU. Para forçar a aceleração da GPU, anexe os seguintes sinalizadores à configuração persistente:

Caso não exista, crie o arquivo.

~/.config/chromium-flags.conf

E adicione:
–ignore-gpu-blacklist
–enable-gpu-rasterization
–enable-native-gpu-memory-buffers
–enable-zero-copy

Além disso, a flag –disable-gpu-driver-bug-workarounds pode precisar ser passada para impedir que a solução alternativa da GPU seja usada. As flags no chrome://gpu devem ser declaradas como “Hardware accelerated” quando configuradas e disponíveis.

4 curtidas

Se possível coloca esse link como referência também, só para dar os devidos créditos a quem merece, na arch wiki tem os links do bugzilla, no seu post ele foram suprimidos. Só ressaltando algo que disse aqui anteriormente os desenvolvedores do Fedora/Red Hat/IBM vão focar no Wayland, o Xorg vai ficar no modo manutenção em breve, as distros Ubuntu Based ficarão dependêndo da boa vontade da Canonical manter melhorias para o Xorg.

1 curtida

Ok… vou procurar lá…

Editado

Acho que foram o Lonaowna , Svito e Nl6720

Depois com mais tempo verifico para ver se tem mais alguém

gostaria de lembrar que o chromium compilado com o patch do vaapi é que permite utilizar “aceleração por hardware”, sem esse patch vc pode colocar as flags no arquivo quantas vezes quiser que não vai adiantar em nada

e, honestamente, acho que o único chromium que alguém vai ter que se preocupar em configurar isso é o chromium do arch

o chromium do opensuse, do debian, do fedora e do ubuntu (do snap exclusivamente) já vem compilado com esse patch + arquivo de configuração que habilita essa função, diria que o máximo que vc precisar fazer é instalar o h264ify ou o enhanced h264ify

Chromium usa aceleração de hardware sim, só olhar no Chrome:GPU. O que não tem é aceleração para videos, fazendo com que use cpu até em vídeos h264.

1 curtida

vou pedir para mudar para mudar o título para Aceleração de vídeo por hardware

Sobre o chromium
Por padrão, o Chromium no Linux não usa nenhuma aceleração de GPU

Ser compilado com o vaapi não quer dizer nada. Isso não quer dizer que está executando.
Talvez tenha que colocar –disable-gpu-driver-bug-workarounds para poder rodar sem problemas

E sobre as outras distribuições, não sei realmente dizer se vem com ele habilitado ou não.

1 curtida

Mais uma vez, Chrome tem suporte para aceleração por GPU sim e aqui está a prova.Captura de tela de 2020-04-10 12-47-24
O que não tem é para execução de vídeos (YouTube por exemplo).

ok…ai mostra que não está ativada…

  • Hardware Protected Video Decode: unavaible,
  • Video Decode: unavaible
  • Multiple Raster Threads: disable

e etc…

Como falei, vem desativada por padrão.

vc fazendo o processo ~/.config/chromium-flags.conf irá habilitar…

mas como no firefox
Prossiga com a ativação por conta própria…

pode estar desativada devido a problemas de estabilidade, alto consumo de recursos do sistema, em vez de acelerar irá retardar

A maioria está ativada, tem um monte de HARDWARE ACCELERATED, menos para vídeo.

ok…

mas o hardware não está

A parte de vídeo não está, o restante para webgl, flash e outras coisas estão.

mas não a gpu

no caso
Forçar aceleração da GPU

Hardware accelerated não é a gpu?

Realmente, ser compilado com o patch não quer dizer nada, porém o objetivo do meu comentário não foi instrucionar ninguém a saber se esse recurso tá habilitado ou não, e sim deixar claro que isso é um dos requisitos NECESSÁRIOS pra que a decodificação de vídeo por hardware funcione.

Vai parecer ser rude, e vai acabar sendo mesmo, mas não foi feita nenhuma pergunta nem foi deixado aberto à deduções. Eu estou AFIRMANDO que naquelas distribuições que eu citei a decodificação de vídeo por hardware já estão presentes e não precisa ser feita NENHUMA ação, somente instalação que é necessária (por razões óbvias).
aqui, aqui, e aqui vc consegue ver que o chromium é compilado e já habilitado pra que esse recurso funcione. os links, inclusive são os códigos fonte do chromium do opensuse, do debian e do pacotes snap respectivamente.

@leoteodoro

E sobre as outras distribuições, não sei realmente dizer se vem com ele habilitado ou não.

Apenas falei que não sei informar. Não conheço direito algumas distribuições.

E sobre

Ser compilado com o vaapi não quer dizer nada. Isso não quer dizer que está executando.

Por padrão já vem com o patch e não funciona para algumas placas, só isso.

valeu pelos links.

Acaba sendo como informação.

O vaapi funciona melhor em Intel graphics, agora as outras não sei dizer.

o vaapi pode funcionar com vpdau

VDPAU como backend para VA-API

Eu tentei isso mas não funcionou, talvez porque a minha placa é antiga

Tem que configurar…

Não sei no momento a configuração no Mint…

Vou ver te passo

No arch precisa definir a variável

https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Configuring_VDPAU

veja se resolve