Intel graphics (Español)

From ArchWiki

Intel provee y mantiene controladores de código abierto, por lo que sus tarjetas de video son esencialmente plug-and-play.

Para un listado más detallado de modelos de GPU Intel, con sus correspondientes chipsets y CPUs, vea Wikipedia:List of Intel graphics processing units.

Nota: Tarjetas gráficas basadas en PowerVR (series GMA 3600) no son soportadas por los controladores de código abierto

Instalación

Instale el paquete mesa, que provee el controlador DRI para aceleración en 3D.

  • Para soporte de aplicaciones 32-bit también instale lib32-mesa desde el repositorio multilib.
  • Para el controlador DDX (que provee aceleración en 2D en Xorg), instale el paquete xf86-video-intel (usualmente no es recomendado, revise la nota más abajo).
  • Para sopore de Vulkan (Ivy Bridge y más reciente) instale el paquete vulkan-intel.

Véase también Hardware video acceleration.

Nota: Algunos (Debian & Ubuntu, Fedora, KDE) no recomiendan instalar el controlador xf86-video-intel y en su lugar recurrir al controlador modesetting para GPUs Gen4 y más recientes (GMA 3000 del 2006 en adelante). Vea [1], [2], Xorg#Installation y modesetting(4). Sin embargo, el controlador modesetting puede causar problemas como Chromium Issue 370022 y vsync jitter/video stutter in mpv.

Carga

El módulo de núcleo proporcionado por Intel debería cargar automáticamente al arranque del sistema.

Si esto no ocurre, entonces:

  • Asegúrese que no tiene nomodeset o vga= como un parámetro de núcleo, puesto que Intel requiere mode-setting del núcleo.
  • También revise que Intel no esté desactivada mediante alguna lista negra modprobe dentro de /etc/modprobe.d/ o de /usr/lib/modprobe.d/.

Iniciar de forma anticipada KMS

Kernel mode setting (Español) es soportado por los chipsets de Intel que utilizan el controlador DRM i915, lo cual es mandatorio y está activado de forma predeterminada.

Refiérase a Kernel mode setting (Español)#Iniciar de forma anticipada KMS para instrucciones de cómo habilitar KMS lo más pronto posible durante el proceso de arranque.

Habilitar la carga del firmware GuC / HuC

Para los procesadores Skylake y más recientes algunas características de video (e.g. control de velocidad de CBR en el modo de codificación de bajo consumo en SKL) pueden requerir utilizar un firmware de GPU actualizado, lo que actualmente (versión 4.16) no está habilitado por defecto. Habilitar la carga de firmware GuC/HuC puede causar problemas en algunos sistemas; desactívelo si experimenta congelamientos (por ejemplo, al iniciar después de una hibernación).

Nota: Vea Gentoo:Intel#Feature support para una vista general en las generaciones de procesadores Intel.

Para aquellos procesadores es necesario añadir i915.enable_guc=2 a los parámetros de núcleo para habilitar la carga del firmware de GuC y HuC. Alternativamente, si initramfs ya incluye el módulo i915 (vea Kernel mode setting (Español)#Iniciar de forma anticipada KMS), puede establecer estas opciones mediante un archivo en /etc/modprobe.d/, e.g.:

/etc/modprobe.d/i915.conf
options i915 enable_guc=2

Configuración de Xorg

Nota: Lo siguiente requiere xf86-video-intel.

Puede no existir la necesidad de configuraciones para ejecutar Xorg.

Sin embargo, si Xorg no inicia (y para tomar ventaja de algunas opciones del controlador) puede crear un archivo de configuración para Xorg similar al mostrado debajo:

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

Opciones adicionales son añadidas por el usuario en nuevas líneas debajo de Driver. Para un listado completo de opciones, vea el manual intel(4).

Nota: Puede que requiera añadir más dispositivos que el mostrado anteriormente. Esto será indicado donde sea necesario.

AccelMethod

Puede que necesite indicar Option "AccelMethod" al momento de crear el archivo de configuración, las opciones clásicas son UXA, SNA (predeterminado) y BLT.

Si experimenta problemas con la opción predeterminada SNA (e.g. gráficos pixelados, texto corrupto, etc), intente utilizar UXA en su lugar, lo que puede lograr añadiendo la siguiente línea a su archivo de configuración:

Option      "AccelMethod"  "uxa"

Vea intel(4) bajo Option "AccelMethod".

Opciones basadas en módulos

El módulo de núcelo i915 permite configurar mediante opciones de módulo. Algunas opciones de módulo impactan el ahorro de energía.

Una lista de todas las opciones junto a una breve descripción y valores predeterminados puede ser generada con la siguiente órden:

$ modinfo -p i915

Para verificar las opciones actualmente habilitadas, ejecute:

# systool -m i915 -av

Notará que muchas opciones contienen el valor predeterminado -1, resultando en un ahorro de energía predeterminado por chip. No obstante, es posible configurar un ahorro de energía más agresivo utilizando module options.

Advertencia: Diverger de los valor predeterminados marcará al núcleo como tainted. a partir de Linux 3.18 en adelante. Esto básicamente implica que utilizar otras opciones a las predeterminadas por chip es considerado experimental y no recibe soporte de los desarrolladores.

Compresión de framebuffer (enable_fbc)

Hacer uso de compresión Framebuffer (FBC) puede reducir el consumo de energía y a su vez reducir el ancho de banda requerido para los refrescos de pantalla.

Para habilitar FBC utilice i915.enable_fbc=1 como parámetro de kernel o establézcalo en /etc/modprobe.d/i915.conf:

/etc/modprobe.d/i915.conf
options i915 enable_fbc=1
Nota: La compresión Framebuffer puede no ser fidedigna o no estar disponible en generaciones de GPU Intel anteriores a Sandy Bridge (generación 6). Esto resulta en mensajes registrados al diario del sistema similares al siguiente:
kernel: drm: not enough stolen space for compressed buffer, disabling.

Habilitar la compresión frame buffer en CPUs anteriores a Sandy Bridge resulta en interminables mensajes de error:

# dmesg
[ 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
La solución a esto es desactivar la compresión frame buffer, lo que subirá el consumo energético de forma imperceptible (al rededor de 0.06 W). Para deshabilitarlo añada i915.enable_fbc=0 a las líneas de parámetro del núcleo. Mayor información en los resultados de compresión deshabilitada pueden ser encontrados aquí[enlace roto 2021-11-11].

Fastboot

La meta de Intel Fastboot es preservar el frame-buffer del modo en que fue establecido por la BIOS o el gestor de arranque para evitar parpadeos hasta que Xorg comience [3].

Para habilitar fastboot, establezca i915.fastboot=1 como parámetro de núcleo o establézcalo en /etc/modprobe.d/i915.conf:

/etc/modprobe.d/i915.conf
options i915 fastboot=1
Advertencia: Este parámetro no está habilitado de forma predeterminada y puede causar problemas con algunos sistemas antiguos (anteriores a Skylake).[4]

Soporte para virtualización de targeta gráfica Intel GVT-g

Vea Intel GVT-g para detalles.

Consejos y trucos

Ajuste del modo de escalado

Esto puede ser resultar de utilidad para algunas aplicaciones a pantalla completa.

$ xrandr --output LVDS1 --set PANEL_FITTING param

donde param puede ser:

  • center: la resolución será mantenida exactamente como fue definida, sin realizar un escalado,
  • full: escala la resolución de modo que utiliza la totalidad de la pantalla o
  • full_aspect: escala la resolución al máximo posible, pero mantiene la relación de aspecto.

Si no funciona, intente lo siguiente:

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

donde param puede ser "Full", "Center" o "Full aspect".

Nota: Esta opción no funciona actualmente en monitores externos (e.g. VGA, DVI, HDMI, DP). [5]

Decodificación de H.264 en GMA 4500 por aceleración de hardware

El paquete libva-intel-driver sólo provee decodificación MPEG-2 acelerada por hardware para las series de GPU GMA 4500. El soporte de decodificación de H.264 es mantenido en una rama g45-h264 separada, que puede ser utilizada instalando el paquete libva-intel-driver-g45-h264AUR. No obstante, note que este soporte es experimental y su desarrollo ha sido abandonado. Utilizar VA-API con este controlador en las series de GPU GMA 4500 bajará la carga de la CPU, pero puede no otorgar una reproducción suave como lo haría el método de reproducción sin aceleración por hardware. Pruebas utilizando mplayer mostraron que la utilización de vaapi para reproducir videos codificados con H.264 a una resolución de 1080p redujeron a la mitad la carga en la CPU (comparado con la superposición XV), pero resultaron en una reproducción muy agitada; mientras que a una resolución de 720p funcionó razonablemente bien [6]. Ajustar una mayor asignación de memoria ram en la bios resulta en una considerablemente mejor reproducción decodificada por hardware. Inclusive la h264 a 1080p funciona bien una vez lo anterior es realizado. Una reproducción suave (1080p/720p) funciona tambien con mpv-gitAUR en combinación con ffmpeg-gitAUR y libva-intel-driver-g45-h264AUR.

Controlador antiguo de OpenGL (i965)

A partir de Mesa 19.2, un nuevo controlador OpenGL, Iris, está disponible para pruebas. En Mesa 20.0, el controlador Iris fue promovido a ser el predeterminado para Gen8+. Ciertas aplicaciones se ejecutan más rápido con él. Puede desactivarlo y regresar al antiguo controlador i965 ajustando la variable de entorno MESA_LOADER_DRIVER_OVERRIDE=i965 antes de empezar cualquier aplicación OpenGL. Este ajuste no afecta las aplicaciones de Vulkan.

Advertencia: Reporte bugs y regresiones relacionadas con el controlador Iris aquí.

Anulando la versión de OpenGL reportada

La variable de entorno MESA_GL_VERSION_OVERRIDE puede ser utilizada para anular la versión de OpenGL reportada a cualquier aplicación. Por ejemplo, ajustar MESA_GL_VERSION_OVERRIDE=4.5 reportará OpenGL 4.5.

Advertencia: Puede utilizar esta variable para reportar cualquier versión conocida de OpenGL, incluso si no es soportada por la GPU. Algunas aplicaciones ya no se quebrarán, otras comenzarán a hacerlo (probablemente no sea de su preferencia establecer esta variable como global).

Ajustar brillo y gamma

Vea Backlight.

Solución de problemas

Desgarro

El método de aceleración SNA causa desgarros en algunas máquinas. Para arreglarlo, habilite la opción "TearFree" en el controlador añadiendo la siguiente línea a su archivo de configuración:

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

  Option "TearFree" "true"
EndSection

Vea el reporte original de bug para mayor información.

Nota:
  • Esta opción puede no funcionar cuando SwapbuffersWait está establecido como false.
  • Esta opción puede incrementar considerablemente la asignació de memoria y reducir el rendimiento. [7]
  • Esta opción es problemática para aplicaciones sensibles a la sincronización vsync, como Super Meat Boy.
  • Esta opción no funciona con el método de aceleración UXA, solamente con SNA.

Deshabilitar la sincronización vertical (VSYNC)

De utilidad cuando:

  • Chomium/Chrome presenta retrasos y un rendimiento lento debido a la GPU y se ejecuta con suavidad con la bandera --disable-gpu
  • glxgears no muestra el rendimiento deseado

El controlador de intel utiliza Triple Buffering para sincronización vertical, esto permite un rendimiento total y evita el desgarro. Para desactivar la sincronización vertical (e.g para una evaluación comparativa) utilice este .drirc en su directorio de usuario:

~/.drirc
<device screen="0" driver="dri2">
	<application name="Default">
		<option name="vblank_mode" value="0"/>
	</application>
</device>
Nota: No utilice driconfAUR para crear este archivo. No funciona correctamente y establecerá el controlador equivocado.

Problemas con DRI3

DRI3 es la versión predeterminada de DRI en xf86-video-intel. En algunos sistemas esto puede causar problemas como este. Para regresar a DRI2 añada la siguiente línea a su archivo de configuración:

Option "DRI" "2"

Para el controlador modesetting, este método para deshabilitar DRI3 no funciona. En su lugar, puede establecer la variable de entorno LIBGL_DRI3_DISABLE=1.

Corrupción en la fuente y pantalla de aplicación GTK (falta glyphs después de suspender/resumir)

Si presenta la falta de fuente glyphs en aplicaciones GTK, la siguiente solución puede ayudar. Edite /etc/environment para añadir la siguiente línea:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

Véase también FreeDesktop bug 88584.

Pantalla blanca durante inicio del sistema, durante "Loading modules"

Si está utilizando el "inicio retrasado" de KMS y la pantalla se va a negro durante "Loading modules", puede ayudar añadir i915 y intel_agp a initramfs. Vea la sección Kernel mode setting (Español)#Iniciar de forma anticipada KMS.

Alternativamente, anexar el siguiente parámetro de núcleo también funciona:

video=SVIDEO-1:d

Si necesita una salida de video mediante VGA, entonces intente lo siguiente:

video=VGA-1:1280x800

X se congela/quebra con el controlador de intel

Algunos problemas con X quebrándose, la GPU colgándose, o problemas relacionados con X congelándose, pueden ser solucionados deshabilitando la utilización de la GPU con la opción NoAccel; añada la siguientes líneas a su archivo de configuración:

  Option "NoAccel" "True"

Alternativamente, intente deshabilitar solamente la aceleración en 3D con la opción DRI:

  Option "DRI" "False"

Baytrail se congela completamente

Si está utilizando el núcelo > 3.16 en la arquitectura Baytrail y encuentra congelamientos arbitrarios del sistema, la siguiente opción de núcleo es una solución provisoria hasta que este bug sea arreglado en el núcleo linux.

intel_idle.max_cstate=1

Este es originalmente un bug de la CPU Intel que puede ser provocado por cierta transición c-state. También puede ocurrir con el núcleo linux 3.16 o Windows, aunque aparentemente esto rara vez ocurre. La opción de núcleo va a prevenir el congelamiento al evitar las transiciones c-state, pero también resultará en un incremento del consumo energético.

Añadir resoluciones no detectadas

Este problema es cubierto en la página de Xrandr.

Backlight no es ajustable

Si después de resumir desde una suspensión, los atajos de teclado para cambiar el brillo de pantalla no surten efecto, revise su configuración con la estipulada en el artículo Backlight.

Si el problema persiste, intente uno de los siguientes parámetros de núcleo:

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

También asegúrese que no está utilizando el modo fastboot (el parámetro de núcleo i915.fastboot), es conocido por quebrar los controles de backlight.

Corrupción o falta de respuesta en Chromium y Firefox

Si experimenta corrupción, falta de respuesta, retrasos o un rendimiento lento en Chromium y/o Firefox algunas soluciones posibles son:

Núcleo se quebra en versión 4.0+ con chips Broadwell/Core-M

Segundos después de la carga de X/Wayland la máquina se congela en su totalidad y journalctl registra un quiebre en el núcleo haciendo referencia a la tarjeta gráfica de Intel como puede verse a continuación:

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)

Esto puede arreglarse deshabilitando el soporte a execlist, el cual fue cambiado a predeterminado en el núcleo 4.0. Añada el siguiente parámetro de núcleo:

i915.enable_execlists=0

Esto es conocido por estar quebrado hasta al menos el núcleo 4.0.5.

Retraso en el invitado Windows

La salida de video del invitado Windows en VirtualBox algunas veces se cuelga hasta que el anfitrión fuerza una actualización de pantalla (e.g. moviendo el cursor). Quitando la opción enable_fbc=1 arregla el problema.

Parpadeo de la pantalla

Panel Self Refresh (PSR), una característica para el ahorro de energía utilizada por la iGPU de Intel es conocida por causar pestañeos en algunas instancias FS#49628 FS#49371 FS#50605. Una solución temporal es deshabilitar esta función utilizando el parámetro de núcleo i915.enable_psr=0.

OpenGL 2.1 con el controlador i915

La actualización de mesa desde la versión 13.x a la versión 17 puede quebrar el soporte para OpenGL 2.1 en GPUs Intel de tercera generación (GMA3100, véalo aquí), como es descrito en este artículo, revirtiéndolo a OpenGL 1.4. Sin embargo, esto puede ser restaurado manualmente ajustando las opciones /etc/drirc o ~/.drirc del siguiente modo:

/etc/drirc
<driconf>
...
    <device driver="i915">
        <application name="Default">
            <option name="stub_occlusion_query" value="true" />
            <option name="fragment_shader" value="true" />
        </application>
    </device>
...
</driconf>
Nota: La razón de este retroceso fue la mala experiencia de Chromium y otras aplicaciones. Si es necesario, puede editar el archivo drirc en un estilo específico para cada aplicación, vea aquí, para deshabilitar gl2.1 en el ejecutable de chromium, por ejemplo.

Problema de KMS: la consola está limitada a un área pequeña

Uno de los puertos de video de baja resolución puede estar habilitado en el arranque, lo que está causando que la consola utilice un área reducida de la pantalla. Para arreglarlo, deshabilite explícitamente el puerto con un ajuste de módulo i915 con video=SVIDEO-1:d en el parámetro de línea de órden del núcleo en el gestor de arranque. Vea parámetros de núcleo mayor información.

Si aquello no funciona, intente deshabilitar TV1 o VGA1 en lugar de SVIDEO-1. Los nombre de puertos de video pueden ser listados con xrandr.

Colores desgastados (problemas con el rango de colores)

La propiedad "Broadcast RGB" en el controlador de Intel define un rango de color que puede ser utilizado por el monitor; puede ser "Limited 16:235" (que limita el rango de color para algunas pantallas que no pueden procesar correctamente las señales de rango de color completas) y "Full". Desde el núcleo 3.9, la nueva propiedad predeterminada "Automatic" intenta determinar si la pantalla soporta el rango de colores total, y si no lo detecta/falla el rango de color se establece en "Limited 16:235". Si una falla en la detección limita el rango de colores, esto resulta en colores desgastados y en grises ennegrecidos. En algunas pantallas/conectores, a pesar de que el rango total de colores es soportado correctamente, la detección automática falla y establece el rango de colores limitado (reporte de upstream bug, núcleo 4.18-4.20).

Puede establecer el ajuste de rango de color deseado forzosamente ejecutando xrandr --output <OUT> --set "Broadcast RGB" "Full" (reemplace <OUT> con la salida de dispositivo apropiada, listada ejecutando xrandr). No hay una forma de volver este ajuste persistente en xorg.conf.

Véase también