Intel graphics (Português)

From ArchWiki
Revision as of 17:52, 3 February 2017 by Gnanini (talk | contribs) (Tradução)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A Intel provém e suporta drivers de código aberto (open source), portanto as GPU Intel são plug-and-play.

Para uma lista abrangente dos modelos de GPU Intel e processadores, veja this comparison on Wikipedia.

Nota: PowerVR-based graphics (GMA 500 and GMA 3600 series) não suportam os drivers open source.

Instalação

Instale o pacote mesa, que fornece o driver DRI para aceleração 3D.

  • Para o driver DDX (que fornecem a aceleração 2D no Xorg), instale o pacote xf86-video-intel. (Alguns não recomendam a instalação do driver Intel, veja a nota abaixo)
  • Para o suporte ao [Vulkan]] (Ivy Bridge em diante), instale vulkan-intel.

Não se esqueça de checar Hardware video acceleration.

Note: Existe uma discussão (Debian & Ubuntu, Fedora, KDE) em que alguns recomendam não se instalar o driver xf86-video-intel, deixando apenas o modesetting driver, que é o driver embutido no kernel. Veja [1], [2], Xorg#Installation, and modesetting(4). Entretanto, o driver modesetting pode também causar alguns problemas Chromium Issue 370022.

Carregando

O Intel kernel module carrega automaticamente na inicialização do sistema

Caso isso não aconteça, então:

  • Tenha certeza de que você não tem nomodeset ou {ic|1=vga=}} como um kernel parameter, visto que as GPU's Intel necessitam do kernel mode-setting.
  • Também, cheque se você não desabilitou o driver, utilizando algum modprobe blacklisting /etc/modprobe.d/ ou /usr/lib/modprobe.d/.

Habilitando KMS mais cedo no boot

O Kernel mode setting (KMS) é utilizado pelas placas Intel que usam o driver i915 DRM, sendo ativado como padrão.

Em Kernel mode setting#Early KMS start encontram-se instruções para se ativar o KMS o mais cedo o possível no processo de inicialização.

Configuração do Xorg

Não é preciso nenhuma configuração para se rodar o Xorg.

Note: A geração Skylake/HD 530 pode necessitar de configurações adicionais, veja#Skylake support

!

No entanto, para tirar vantagem de algumas opções do driver, será necessário que se crie um arquivo de configuração do Xorg, similar ao que se encontra abaixo:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
EndSection

Opções adicionais devem ser adicionadas pelo usuário nas linhas abaixo de: Driver.

Note:
  • Talvez seja preciso indicar a Option "AccelMethod" ao se criar um arquivo de configuração, mesmo que seja para indicar o método padrão ("sna"); senão o X pode vir a travar.
  • Pode-se ser necessário adicionar mais seções de {{|Device}} do que a apresentada acima. Indicaremos quando necessário.

Para conhecer todas as opções que podem ser adicionadas ao driver, veja a man page para intel.

Opções de economia de energia

O módulo do kernel i915 permite configurações via module options. Algumas delas modificam as opções de economia de energia.

Uma lista com todas as opções, suas descrições e valores padrão podem ser geradas com o seguinte comando:

$ modinfo -p i915

Para checar o que está ativado, digite:

# systool -m i915 -av

Muitas opções tomam por padrão a íntegra -1, que assume os padrões do hardware. Contudo, é possível configurar opções mais agressivas de economia de energia utilizando module options. Também é possível desabilitar a economia de energia por completo.

Warning: Utilizar outras opções que não sejam as padrões dos chips é considerado experimental: tainted.

As opções abaixo são consideradas seguras:

/etc/modprobe.d/i915.conf
options i915 enable_rc6=1 enable_fbc=1 semaphores=1

RC6 sleep modes (enable_rc6)

Pode-se experimentas valores mais altos em enable_rc6, mas sua GPU pode não suportá-los: [3].

Para confirmar o valor utilizado, olhe em sysfs:

# cat /sys/class/drm/card0/power/rc6_enable

... se o valor é mais baixo do que o esperado, o nível RC6 indicado é provavelmente não suportado. drm.debug=0xe adiciona informação de depuração DRM para o log do kernel - possivelmente incluirá uma linha como essa:

[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1)

Compressão Framebuffer (enable_fbc)

A compressão Framebuffer pode não estar disponível ou não ser confiável nas GPU's Intel de gerações anteriores à Sandy Bridge (6ª geração). Isso pode resultar em mensagens no log do system journal similares a esta:

kernel: drm: not enough stolen space for compressed buffer, disabling.

Dicas e Truques

Tear-free video (Video sem glitches)

A aceleração SNA causa tearing em alguns computadores. Para concertar isso,ative a opção "TearFree" no driver, adicionando a seguinte linha a em sua configuração do Xorg: configuration file:

Option "TearFree" "true"

Veja original bug report para mais informação.

Note:
  • Esta opção pode não funcionar quando SwapbuffersWait é false.
  • Esta opção pode diminuir a performance e aumentar o consumo de memória. [4]
  • Esta opção é problemática para algumas aplicações: Super Meat Boy.
  • Esta opção não funciona para a aceleração UXA, somente para SNA.

Disable Vertical Synchronization (VSYNC)

O driver intel Triple Buffering para sincronização vertical, isso permite performance total e evita tearing. Para desligar o Vsync, use isso .drirc na sua pasta home:

~/.drirc
<device screen="0" driver="dri2">
	<application name="Default">
		<option name="vblank_mode" value="0"/>
	</application>
</device>
Warning:
  • Não use driconf para criar esse arquivo. É bugado e vai selecionar o driver errado.
  • Para melhor performance pode-se também desligar o vsync, principalmente para jogos.

Selecionando o modo de scala (scaling mode)

Isso pode ser útil para algumas aplicações de tela inteira:

$ xrandr --output LVDS1 --set PANEL_FITTING param

Onde param pode ser:

  • center: A resolução vai ser mantida, nenhum método de escala será ativado.
  • full: Escala a resolução para se adequar à tela inteira.
  • full_aspect: Escala a resolução para o maior valor possível que mantenha a proporção.

Se não funcionar, tente:

$ xrandr --output LVDS1 --set "scaling mode" param

onde param é um entre: "Full", "Center" or "Full aspect".

Problemas com o KMS: o console é limitado a uma área pequena

Uma das portas de vídeo de baixa resolução pode ser ativada na inicialização, o que está fazendo com que o terminal utilize uma pequena área da tela. Para corrigir, desative explicitamente a porta com uma configuração de módulo i915 com video=SVIDEO-1:d no parâmetro da linha de comando do kernel no carregador de inicialização. Consulte Kernel parameters para mais informações.

Se isso não funcionar, tente desabilitar TV1 ou VGA1 ou invés de SVIDEO-1.

Decodificação H.264 em GMA 4500

O pacote libva-intel-driver fornece descodificação MPEG-2 somente para GPU's da série GMA 4500. O suporte de decodificação H.264 é mantido em um ramo separado g45-h264, que pode ser usado ao instalar o pacote Template:AUR libva-intel-driver-g45-h264. Note-se, porém, que este suporte é experimental e seu desenvolvimento foi abandonado. Usar a VA-API com este driver em uma GPU GMA 4500 series irá descarregar a CPU, mas pode não resultar em uma reprodução tão suave quanto a reprodução não acelerada. Testes usando mplayer mostraram que usar o vaapi para reproduzir um vídeo 1080p codificado em H.264 reduziu para metade a carga da CPU (em comparação com a sobreposição XV), mas resultou em reprodução muito irregular, enquanto 720p funcionou razoavelmente bem /viewtopic.php?id=150550. Há também outras experiências [5]. Definir o tamanho do canal de vídeo pré-alocado maior na bios resulta em uma reprodução de decodificada pelo hardware muito melhor. Mesmo 1080p h264 funciona bem se isso for feito.

Definindo brilho e gama

Veja Backlight.

Resolução de Problemas

Problemas com SNA

SNA is the default acceleration method in xf86-video-intel. If you are experience issues with SNA (e.g. pixelated graphics, corrupt text, etc.), try using UXA instead, which can be done by adding the following line to your configuration file:

Option      "AccelMethod"  "uxa"

See man 4 intel under Option "AccelMethod".

DRI3 issues

DRI3 is the default DRI version in xf86-video-intel. On some systems this can cause issues such as this. To switch back to DRI2 add the following line to your configuration file:

Option "DRI" "2"

Font and screen corruption in GTK+ applications (missing glyphs after suspend/resume)

Should you experience missing font glyphs in GTK+ applications, the following workaround might help. Edit /etc/environment to add the following line:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

See also FreeDesktop bug 88584.

Blank screen during boot, when "Loading modules"

If using "late start" KMS and the screen goes blank when "Loading modules", it may help to add i915 and intel_agp to the initramfs. See Kernel mode setting#Early KMS start section.

Alternatively, appending the following kernel parameter seems to work as well:

video=SVIDEO-1:d

If you need to output to VGA then try this:

video=VGA-1:1280x800

X freeze/crash with intel driver

Some issues with X crashing, GPU hanging, or problems with X freezing, can be fixed by disabling the GPU usage with the NoAccel option - add the following lines to your configuration file:

  Option "NoAccel" "True"

Alternatively, try to disable the 3D acceleration only with the DRI option:

  Option "DRI" "False"

If you experience crashes and have

Option "TearFree" "true"
Option "AccelMethod" "sna"

in your configuration file, in most cases these can be fixed by adding

i915.semaphores=1

to your boot parameters.

If you are using kernel 4.0.X or above on Baytrail architecture and frequently encounter complete system freezes (especially when watching video or using GFX intensivelly), you should try adding the following kernel option as a workaround, until this bug will be fixed permanently.

 intel_idle.max_cstate=1

Adding undetected resolutions

This issue is covered on the Xrandr page.

Weathered colors (color range problem)

Kernel 3.9 contains a new default "Automatic" mode for the "Broadcast RGB" property in the Intel driver. It is almost equivalent to "Limited 16:235" (instead of the old default "Full") whenever an HDMI/DP output is in a CEA mode. If a monitor does not support signal in limited color range, it will cause weathered colors.

Note: Some monitors/TVs support both color range. In that case an option often known as Black Level may need to be adjusted to make them handle the signal correctly. Some TVs can handle signal in limited range only. Setting Broadcast RGB to "Full" will cause color clipping. You may need to set it to "Limited 16:235" manually to avoid the clipping.

One can force mode e.g. xrandr --output <HDMI> --set "Broadcast RGB" "Full" (replace <HDMI> with the appropriate output device, verify by running xrandr).

Unfortunately, the Intel driver does not support setting the color range through an xorg.conf.d configuration file.

A bug report is filed and a patch can be found in the attachment.

Also there are other related problems which can be fixed editing GPU registers. More information can be found [6] and [7].

Backlight is not adjustable

If after resuming from suspend, the hotkeys for changing the screen brightness do not take effect, check your configuration against the Backlight article.

If the problem persists, try one of the following kernel parameters:

acpi_osi=Linux
acpi_osi="!Windows 2012"
acpi_osi=

Disabling frame buffer compression

Enabling frame buffer compression on pre-Sandy Bridge CPUs results in endless error messages:

$ dmesg |tail 
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this

The solution is to disable frame buffer compression which will imperceptibly increase power consumption (around 0.06 W). In order to disable it add i915.enable_fbc=0 to the kernel line parameters. More information on the results of disabled compression can be found here.

Corruption/Unresponsiveness in Chromium and Firefox

If you experience corruption or unresponsiveness in Chromium and/or Firefox set the AccelMethod to "uxa".

Kernel crashing w/kernels 4.0+ on Broadwell/Core-M chips

A few seconds after X/Wayland loads the machine will freeze and journalctl will log a kernel crash referencing the Intel graphics as below:

Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at           (null)
Jun 16 17:54:03 hostname kernel: IP: [<          (null)>]           (null)
...
Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G     U     O    4.0.5-1-ARCH #1
...
Jun 16 17:54:03 hostname kernel: Call Trace:
Jun 16 17:54:03 hostname kernel:  [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0
Jun 16 17:54:03 hostname kernel:  [<ffffffff811f6452>] ? __fget+0x72/0xb0
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0
Jun 16 17:54:03 hostname kernel:  [<ffffffff8157a589>] system_call_fastpath+0x12/0x17
Jun 16 17:54:03 hostname kernel: Code:  Bad RIP value.
Jun 16 17:54:03 hostname kernel: RIP  [<          (null)>]           (null)

This can be fixed by disabling execlist support which was changed to default on with kernel 4.0. Add the following kernel parameter:

i915.enable_execlists=0

This is known to be broken to at least kernel 4.0.5.

Skylake support

The i915 DRM driver is known to cause various GPU hangs, crashes and even full system freezes. It might be necessary to disable hardware acceleration to workaround these issues. One solution is to use the following Xorg configuration.

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
	Identifier  "Intel Graphics"
	Driver      "intel"
	Option	    "DRI"	"false"
EndSection

Otherwise, specific applications such as Chromium and Firefox browsers can be instructed to disable hardware rendering directly.

Another option that seems to work for some users is to add the i915.enable_rc6=0 kernel boot parameter, which will cause the CPU/GPU to remain in high-power modes, but seems to resolve most cases of GPU hangs and system freezes.

Note: If the system appears to hang after "Loading Initial Ramdisk", make sure that the IGD aperture size in BIOS is less than 4GB.

Lag in Windows guests

The video output of a Windows guest in VirtualBox sometimes hangs until the host forces a screen update (e.g. by moving the mouse cursor). Removing the enable_fbc=1 option fixes this issue.

Screen flickering

The following power saving features used by intel iGPUs are known to cause flickering in some instances. A temporary solution is to disable one of them using the appropriate kernel boot parameter option:

  • Panel Self Refresh (PSR) FS#49628 FS#49371 FS#50605, enabled by default since kernel mainline 4.6. To disable this feature use the option i915.enable_psr=0.

See also