Novedades en soporte de drivers 3D para Linux

El soporte de chips gráficos 3D en Linux siempre ha sido un tema polémico. Los drivers open source no aprovechan completamente sus características, y en el caso de los poseedores de nvidia y ati la alternativa es utilizar los drivers propietarios que no están exentos de problemas que no pueden ser corregidos por nadie mas que los propios fabricantes. Últimamente el soporte 3D en Linux no es un tema que solo interese a los que quieran jugar, ya que con Xgl se pueden aprovechar las características avanzadas del hardware en tareas comunes siempre y cuando el hardware y sus drivers nos acompañen.

Hasta hace unos días, si querías buen soporte 3D en Linux no habían muchas alternativas, por una parte estaba nvidia y sus drivers propietarios, y por otra parte ATI con un soporte de drivers no muy comprometido. Para intel hay drivers open source que son parte de X.org, pero no sacan todo el provecho del hardware.

Eso.. hasta ayer, porque Intel anuncia que sus drivers ahora serán open source, y lo hace nada mas y nada menos que agregando el soporte para la última generación de sus chips, la serie i965. El anuncio lo hace el mismísimo Keith Packard, hombre responsable del estado actual de X.org (composite, Render, etc). Keith Packard trabajaba originalmente para HP y ahora esta trabajando para Intel, y no queda duda de su responsabilidad de que se haya producido este cambio.

Por otra parte, AMD compro ATI… no seria malo que se picaran y tomaran un camino similar. Por mientras los usuarios de intel somos felices, más información en el sitio oficial de los drivers de Intel.

Actualización: Jens Harding publica una excelente explicación acerca de las diferencias entre los drivers gráficos open source y propietarios (en inglés).

Visita a Temuco

El 8 y 9 de Septiembre estaré en la Universidad Autónoma en Temuco para hacer dos charlas. Ambas son actualizaciones de charlas que he hecho previamente y generan gran entusiasmo : «La industria del Open Source» y «Xgl y la revolución gráfica en Linux». Espero que pueda hacer una buena demo con mi notebook (intel), pero de todas formas me van a preparar un equipo con nvidia.

Propietario

No.. no me refiero a los drivers. Hoy en la tarde me entregaron mi casa y me cambio el sabado! me carga cambiarme de casa, lo bueno es que esta será la última vez.

Instalación de Ubuntu LTS (6.06)

Estoy gratamente impresionado con la instalación de Ubuntu. Me compré un disco duro nuevo para el notebook, lo instalé y mi amigo Frisco me prestó una cajita para conectar mi antiguo disco por USB.

Inicié el sistema desde el DVD de Ubuntu y el sistema partió como Live DVD, en poco tiempo ya tenía GNOME listo para ser utilizado, sin instalar nada aun en el disco duro por supuesto. Conecto el disco por USB y me aparece inmediatamente un icono por cada partición del disco. El booteo desde DVD me ha dejado la red inalámbrica por lo que aprovecho de copiar unos archivos desde ese disco externo al PC que esta ocupando Kuarita en este momento.

En el escritorio que me deja Ubuntu veo un icono que dice «Instalar», y comienza la instalación en el disco duro mediante unos 6 pasos sencillos (poner mi nombre, seleccionar la región, idioma y otros). En este momento estoy escribiendo este post desde la misma instalación. Asi de simple! Va screenshot! cof cof.. editado con el GIMP en el mismo notebook 🙂

Instalando y usando Ubuntu 6.06
Instalando y usando Ubuntu 6.06

Como mejorar el rendimiento de Xorg+Intel en Dapper

Una de las cosas que notaba desde hace un tiempo atrás es que Xorg estaba funcionando mas lento. Tenia sospechas de que se trataba de un problema con xcompmgr, o bien había algún tipo de regresión en el driver al cambiar desde 6.9 a 7.0. Se notaba especialmente al hacer scrolling, o al mover las ventanas.

Con una rápida búsqueda en una de las listas de correo relacionadas con X, me entere de que había un problema en la configuración de MTRR, de fácil solución y vaya que mejora el rendimiento! Que bueno que no haya sido el xcompmgr porque aun no me pego el salto a Xgl y uno se acostumbra a las sombritas.

Se que esto aplica a mi chip de video (intel), así que si lo quieren probar, haganlo bajo su propio riesgo, pero por lo que entiendo no podría pasar nada mas allá de un simple cuelgue.

El chip de video tiene un área de memoria asignada, esto lo pueden ver con lspci -v, revisando las características del «adaptador gráfico».  Por ejemplo

lspci -v
[...]
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
Subsystem: Hewlett-Packard Company Device 30d5
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f0400000 (32-bit, non-prefetchable) [size=512K]
I/O ports at 3000 [size=8]
Memory at 98000000 (32-bit, prefetchable) [size=128M]
Memory at f0480000 (32-bit, non-prefetchable) [size=256K]
Capabilities: <access denied>
Kernel modules: intelfb
[...]

Supongamos que como en este caso, la base de memoria de video es 0x98000000, y el tamaño es de 128MB (0x8000000), entonces se debe hacer lo siguiente :

echo "base=0x98000000 size=0x8000000 type=write-combining" >| /proc/mtrr

Si sale algún error, seguramente es porque tienen uno de los parámetros malos, pueden ver el detalle ejecutando

dmesg | tail

Pueden ver el resultado final con

cat /proc/mtrr

Para que entiendan el problema, a través de MTRR se puede cambiar la forma en que esta manejada la memoria, por ejemplo si es cacheable o no, o bien en el caso de memoria AGP indica si se habilita el modo write-combining que es mucho mas rápido.

(no puedo mostrar lo que sale en mi notebook porque ahora estoy en un curso de Microsoft, cof cof.. sobre migración de aplicaciones 32-bit a 64-bits, de todas formas esta bastante interesante y entretenido).