Mal rendimiento de gráficas Intel en Linux con xorg
Con las prisas por utilizar los últimos drivers de Xorg que se dió todo el mundo, resulta que la mayoría de las distros actuales tienen un problema grave de rendimiento con las gráficas de Intel (de las 9 distribuciones que he probado desde LiveCD, únicamente Fedora 10 y Scientific Linux 5.2 se salvan).
El tema está en que se ha montado un buen jaleo, porque gran parte de los portátiles que se usan hoy en día llevan estas gráficas integradas. Parece que el problema viene dado por el driver y la versión de Mesa (librerías de OpenGL para Linux). La comprobación es sencilla: si con el Firefox abierto y un video embebido en reproducción el comando top muestra un consumo de CPU por parte de xorg alto, estás jod… Además, ejecutando glxgears se puede comprobar que el frame rate se queda entre 50 y 500 fps -dependiendo de la gráfica- cuando lo nomal suele ser entre 300 y 1200 (hasta 1500 para algunos portátiles con 4500HD).
¿Cómo solventarlo? Bueno, hay gente que apunta a desactivar Compiz-Fusion (sin comentarios). Otros dicen que cambiar el método de aceleración (XAA, EXA, etc.) que tampoco vale de nada, y en algunos casos puede incluso empeorar las cosas.
Al final, la mejor solución -aunque no es sensata si no tienes ciertos conocimientos de Linux- es la siguiente:
- Bajar el KernelCheck para compilar una versión más nueva del kernel (actualmente 2.6.28.2). Esto va a durar mucho tiempo: tomaté un café, fumaté un cigarro o lee un libro…
- Añadir la siguiente línea a /etc/apt/sources.list:
deb http://ppa.launchpad.net/xorg-edgers/ubuntu intrepid main
- Actualizar los repositorios y luego el paquete xserver-xorg-video-intel (actualizará también como dependencia libdrm2).
- Cambiar la línea que habíamos incluido en /etc/apt/sources.list por la siguiente:
deb http://ppa.launchpad.net/xorg-edgers/ubuntu jaunty main
- Actualizar los repositorios otra vez y los paquetes relacionados con Mesa (libgl1-mesa-dev, libgl1-mesa-dri, libgl1-mesa-glx, libglu1-mesa, libglu1-mesa-dev, mesa-common-dev y mesa-utils)
- Rebotar el sistema utilizando el nuevo kernel.