Ubuntu Con Soporte 3D para ATI Radeon

A partir de Ubuntu Lucid Lynx hay soporte 3D para placas de video ATI con los drivers libres.

Que sean drivers libres es importante no por una cuestión ideológica sino que a raíz de ello es la primera vez que hay soporte 3D desde el momento del lanzamiento de la versión y con todo funcionando sin problemas.

Anteriormente el driver “fglrx” de ATI tardaba un tiempo en ser adaptado a las nuevas versiones del servidor de video Xorg, no era sencillo de hacer andar y tenía problemas para acelerar 3D y 2D al mismo tiempo.

Ahora como los mismos que hacen al distribución son los que integran el driver, se ocupan de que esté bien integrado y que funcione todo lo bien que puede hacerlo. Por ejemplo, se puede tener dos sesiones gráficas simultáneamente con aceleración 2D y 3D (gracias a DRI2) cosa que antes no era posible.

La diferencia entre tener sólo aceleración 2D y poder tener también 3D es enorme. Hay muchas aplicaciones que ahora se pueden usar y antes no, por ejemplo:

  1. Compiz (efectos de escritorio)
  2. Torcs, Urban Terror y Extreme Tux Racer dentro de una larga lista de juegos
  3. Stellarium
  4. Google Earth
  5. Nasa World Wind

Básicamente todo lo que use OpenGL ahora se dibuja aprovechando la capacidad de cálculo de la GPU.

Anuncios

Ventajas de los Drivers Libres

Ahora que finalmente el soporte 3D está llegando a las placas de video ATI se hacen más evidentes las ventajas de que el código fuente de los drivers esté disponible.

Soporte a Largo Plazo

El driver libre para ATI Radeon soporta todos los modelos lanzados al mercado desde 2000. En cambio el driver Catalyst de ATI ya no soporta modelos tan viejos y menos en Windows 7. Algo similar ocurre con las placas NVidia. El driver que provee el fabricante no soporta tantos modelos como el driver libre.

Integración

Cada vez que sale una versión nueva de Linux o del servidor gráfico, si es necesario, se adaptan todos los drivers libres para que sigan funcionando correctamente. En cambio los otros drivers suelen tardar más en ser adaptados y dejan a mucha gente si soporte un tiempo. Además los drivers libres son integrados por las propias distribuciones de Linux y vienen “andando de fábrica” mientras que los drivers de los fabricantes los debe bajar el usuario de la página oficial e instalarlos siguiendo las instrucciones.

Soporte de Errores

Si bien los drivers libres a veces se deben hacer sin las especificaciones oficiales que los fabricantes no publican, los programadores que los hicieron se ocupan de arreglar los errores y de hacer las mejoras que sean posibles. En el caso de AMD/ATI, entre 2007 y 2008 publicó la documentación necesaria para sus placas de video Radeon y los drivers libres se están haciendo en base a ella. Es así que ahora cualquiera puede reportar errores o incluso participar de las mejoras. En cambio ATI y NVidia son más propensos a escuchar a los fabricantes de juegos que a los usuarios y desde ya que no se puede participar de las mejoras de sus drivers.

Hoy los drivers de los fabricantes son más completos y en algunos casos puede ser que sean más rápidos, pero a la larga los drivers libres van completarse y van a alcanzar el rendimiento del otro reteniendo las otras ventajas antes explicadas.

Soporte 3D en Linux

Logo de ATI Radeon

Cuando en abril salga Ubuntu 10.04 Lucid Lynx se supone que finalmente tendremos soporte 3D para placas de video ATI con los drivers radeon y radeonhd hechos en base a las especificaciones que AMD publicó cuando compró ATI. En particular la documentación necesaria para usar el hardware de video para operaciones 3D fue publicado el 29 de diciembre de 2008 y llegaron al kernel 2.6.32 que salió 3 de diciembre de 2009.

Según la página de esos drivers libres, se necesita esa versión del kernel y la versión 7.7 de la biblioteca gráfica mesa. Lucid Lynx parece estar preparado ya que trae:

  • xserver-xorg-video-radeonhd 1.3.0-2
  • linux-generic 2.6.32.15.16
  • mesa 7.7-4

En el caso de tener una placa ATI determinamos qué hardware es con esta explicación tomada de la wiki del driver libre:

  * RV505:	Radeon X1550, X1550 64bit
  * RV515:	Radeon X1300, X1550, X1600; FireGL V3300, V3350
  * RV516:	Radeon X1300, X1550, X1550 64-bit, X1600; FireMV 2250
  * R520:	Radeon X1800; FireGL V5300, V7200, V7300, V7350
  * RV530:	Radeon X1300 XT, X1600, X1600 Pro, X1650; FireGL V3400, V5200
  * RV535:	Radeon X1300, X1650
  * RV550:	Radeon X2300 HD
  * RV560:	Radeon X1650
  * RV570:	Radeon X1950, X1950 GT; FireGL V7400
  * R580:	Radeon X1900, X1950; AMD Stream Processor
  * R600:	Radeon HD 2900 GT/Pro/XT; FireGL V7600/V8600/V8650
  * RV610:	Radeon HD 2350, HD 2400 Pro/XT, HD 2400 Pro AGP; FireGL V4000
  * RV620:	Radeon HD 3450, HD 3470
  * RV630:	Radeon HD 2600 LE/Pro/XT, HD 2600 Pro/XT AGP; Gemini RV630; FireGL V3600/V5600
  * RV635:	Radeon HD 3650, HD 3670
  * RV670:	Radeon HD 3690, 3850, HD 3870, FireGL V7700, FireStream 9170
  * R680:	Radeon HD 3870 X2
  * M52:	Mobility Radeon X1300
  * M54:	Mobility Radeon X1400; M54-GL
  * M56:	Mobility Radeon X1600; Mobility FireGL V5200
  * M58:	Mobility Radeon X1800, X1800 XT; Mobility FireGL V7100, V7200
  * M62:	Mobility Radeon X1350
  * M64:	Mobility Radeon X1450, X2300
  * M66:	Mobility Radeon X1700, X1700 XT; FireGL V5250
  * M68:	Mobility Radeon X1900
  * M71:	Mobility Radeon HD 2300
  * M72:	Mobility Radeon HD 2400; Radeon E2400
  * M74:	Mobility Radeon HD 2400 XT
  * M76:	Mobility Radeon HD 2600;(Gemini ATI) Mobility Radeon HD 2600 XT
  * M82:	Mobility Radeon HD 3400
  * M86:	Mobility Radeon HD 3650, HD 3670, Mobility FireGL V5700
  * M88:	Mobility Radeon HD 3850, HD 3850 X2, HD 3870, HD3870 X2
  * RS600:	Radeon Xpress 1200, Xpress 1250
  * RS690:	Radeon X1200, X1250, X1270
  * RS740:	RS740, RS740M
  * RS780:	Radeon HD 3100/3200/3300 Series
  * R700:	Radeon R700
  * RV710:	Radeon HD4570, HD4350
  * RV730:	Radeon HD4670, HD4650
  * RV740:	Radeon HD4770. EXPERIMENTAL AND UNTESTED
  * RV770:	Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro
  * RV790:	Radeon HD 4890
  * M92:	Mobility Radeon HD4330, HD4530, HD4570. EXPERIMENTAL
  * M93:	Mobility Radeon M93. EXPERIMENTAL AND UNTESTED
  * M96:	Mobility Radeon HD4600
  * M97:	Mobility Radeon HD4860. EXPERIMENTAL AND UNTESTED
  * M98:	Mobility Radeon HD4850, HD4870

En la tabla sobre estas líneas están los modelos anunciados comercialmente por los fabricantes como ATI Radeon HD 3200 que es una placa integrada y el chipset correspondiente. Luego muchos chipsets están agrupados por sus características en tres grupos:

  • R500 style hardware: R5xx, RV5xx, RS6xx, RS740, M52 and up
  • R600 style hardware: R6xx, RV6xx, RS780, M64 and up
  • R700 style hardware: RV7xx

Una vez que determinamos si nuestro hardware de video corresponde a la serie R500, la R600 o la R700, podemos ir a ver qué funcionalidades ya están implementadas en el driver libre.

En http://www.x.org/wiki/RadeonFeature se lista el soporte al presente de cada serie para diversos aspectos como la aceleración 2D, 3D  o la salida a TV o HDMI.

Para saber qué aplicaciones 3D (como Compiz, juegos y Google Earth) han sido probadas y cómo funcionan se puede consultar esta página http://www.x.org/wiki/RadeonProgram.

En cuanto pueda voy a probar la versión alfa 3 de Lucid Lynx en mi equipo y voy a ver si puedo hacer andar el soporte 3D o si tendré que esperar a instalarlo en su versión final.

Actualización: efectivamente los efectos del escritorio 3D de Compiz funcionan en la versión alfa 3 de Ubuntu 10.04 Lucid Lynx sin tener que hacer ninguna configuración especial. Lo probé en una ATI Radeon HD 3200 ejecutando desde el disco USB de Ubuntu.