Fazendo a leitura desse guia: https://wiki.archlinux.org/index.html/Ha ... celeration, percebi que a aceleração de vídeos por hardware não vem habilitada por padrão, você pode verificar usando esse comando:
- Código: Selecionar todos
vainfo
Se o comando não retornar algo parecido com isso:
- Código: Selecionar todos
$ vainfo
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Sandybridge Mobile - 1.7.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
Quer dizer que a aceleração não está ativa no sistema.
Para realizar a ativação é necessário instalar o pacote correspondente a sua GPU, no caso das GPUs da Intel instale o pacote libva-intel-driver:
- Código: Selecionar todos
pacman -S libva-intel-driver
Neste ponto o comando vainfo já deve estar indicando que a aceleração de vídeo por hardware está ativada, caso contrário, adicione a linha de código LIBVA_DRIVER_NAME=i965 ao arquivo /etc/environment:
No meu caso o arquivo ficou com o seguinte conteúdo depois das alterações:
- Código: Selecionar todos
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
LIBVA_DRIVER_NAME=i965
Após habilitada a aceleração de vídeo por hardware no sistema os aplicativos que são compatíveis com esse recurso irão automaticamente passar a usá-lo, o VLC é um exemplo.
Meu objetivo inicial ao habilitar esse recurso foi melhorar o desempenho de execução dos vídeos nos navegadores Chrome/Firefox, e eu descobri que esses dois navegadores não vem configurados para usar esse recurso por padrão, para ativar a aceleração de vídeo por hardware nos navegadores, faça o seguinte:
- Chrome (http://www.webupd8.org/2014/01/enable-h ... hrome.html)To force Chrome / Chromium to use hardware acceleration, open a new tab, type "chrome://flags" (without quotes), search for "Override software rendering list", enable it and restart Chrome / Chromium
- Firefox (http://askubuntu.com/questions/491750/f ... in-firefox)Open about:config in Firefox (url bar)
Set layers.acceleration.force-enabled and layers.offmainthreadcomposition.enabled to true
Uma outra alteração nas configurações do sistema que realizei em adição a ativação da aceleração de vídeo por hardware foi ativar o modo DRI3 nas configurações da GPU da Intel, por padrão o meu sistema veio com o modo DRI2, para realizar essa alteração eu criei o arquivo /etc/X11/xorg.conf.d/20-intel.conf com o seguinte conteúdo:
- Código: Selecionar todos
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
Option "DRI" "3"
EndSection
Para verificar se o modo DRI3 foi ativado execute o comando:
- Código: Selecionar todos
cat /var/log/Xorg.* | grep -i DRI3
Se o comando não retornar linhas então ele não está ativado, se ele retornar algo parecido com isso:
- Código: Selecionar todos
[ 5.217] (II) Loading sub module "dri3"
[ 5.217] (II) LoadModule: "dri3"
[ 5.217] (II) Module "dri3" already built-in
[ 5.222] (II) intel(0): direct rendering: DRI2 DRI3 enabled
[ 5.234] (II) Loading sub module "dri3"
[ 5.234] (II) LoadModule: "dri3"
[ 5.234] (II) Module "dri3" already built-in
[ 5.241] (II) intel(0): direct rendering: DRI2 DRI3 enabled
[ 30610.320] (II) Loading sub module "dri3"
[ 30610.320] (II) LoadModule: "dri3"
[ 30610.320] (II) Module "dri3" already built-in
[ 30610.321] (II) intel(0): direct rendering: DRI2 DRI3 enabled
[ 28588.365] (II) Loading sub module "dri3"
[ 28588.365] (II) LoadModule: "dri3"
[ 28588.365] (II) Module "dri3" already built-in
[ 28588.367] (II) intel(0): direct rendering: DRI2 DRI3 enabled
Então ele foi ativado.
Pronto, é isso, no meu caso senti uma grande diferença no desempenho de execução de vídeos em alta definição (1080p 60fps) no Youtube/TwitchTV.
Lembrando que os passos explicados acima se aplicam a portadores de GPUs da Intel, para quem tiver GPUs da AMD/NVIDIA os passos são parecidos mas será necessário alterar diversos parâmetros.