martes, febrero 21, 2006

Fedora, Aiglx y Xgl

Hace unos días escribía sobre los pros y los contras de Ubuntu y Fedora. Bien, creo que ahora tengo un nuevo punto a favor y también en contra de Fedora.

Una de las cosas que más me atrajo a Fedora desde el principio, fue que es una distro que siempre está probando cosas nuevas e interesantes, siempre está bleeding the edge. Una de las cosas que destaco del Proyecto Fedora es proyectos como Fedora Rendering Project o el Proyecto de Integración con Xen.

Fedora Rendering Project plantea una nueva opción bastante interesante a el impresionante Xgl de Novell; Se trata de Aiglx (Accelerated Indirect GL X). A diferencia de Xgl, Aiglx no trata de crear un nuevo servidor X, sino que plantea usar el servidor actual con ciertas extensiones y el uso de un Metacity especial con un composite manager (¿gestor de composición?) potencializado por Mesa. El resultado es un gestor de ventanas con la posibilidad de hacer los mismos efectos que hasta ahora se han mostrado en Xgl y Compiz.

Lo que hace el composite manager es básicamente aprovechar las ventajas de las nuevas tarjetas de vídeo para dibujar las ventanas en la parte no visible del framebuffer. Esto no sólo tiene la ventaja de ser muy rápido, sino que también permite hacer uso de efectos brindados por las capacidades de las tarjetas 3D como el alpha blending (que permite transparencias), entre otras.

Para mi lo que intenta hacer Aiglx es básicamente lo mismo que pretendía Luminocity; es más, creo que Aiglx no es más que un porte de Luminocity a Metacity. La idea es básicamente usar los beneficios del composite manager desde un servidor X normal. Esto tiene la gran ventaja de poder activar y desactivar los efectos 3D sin tener que cambiar de servidor X y de una forma tan simple como cambiar una clave del gconf. El problema de este enfoque es que no ese está usando a fondo todo el poder de la tarjeta 3D, sino que se esta utilizando solamente para la composición. Por otra parte, al seguir utilizando el servidor X normal, existen problemas con aplicaciones que usen, por ejemplo OpenGL o XVideo. Otra desventaja muy importante es que, al estar integrado el composite manager en Metacity, este sólo servirá para Gnome y dejará por fuera a otros escritorios como KDE.

Después de analizar las dos opciones: Aiglx y Xgl, definitivamente me parece que la mejor opción es Xgl. La razón es que el poder de las tarjetas 3D no sólo se debe usar para tener efectos visualmente llamativos, sino que la principal razón debe ser la velocidad. Dado que Xgl es un servidor X completamente nuevo, escrito por encima de OpenGL, se asegura que todas las operaciones de dibujo van a estar usando la aceleración 3D. Gracias a esto vamos a poder tener más cosas que simplemente lo que nos brinda Compiz, como por ejemplo renderizado de fuentes más rápido e incluso, quien sabe, hasta widgets 3D. Además, al ser Xgl un servidor X, sus ventajas van a poder ser aprovechadas por cualquier administrador de ventanas o entorno de escritorio.

Sin embargo, no todo es color de rosa para Xgl, yo le veo dos inconvenientes importantes: Una es la dificultad para pasar del modo acelerado al modo normal, lo cual podría ser causar problemas a personas que no tengan el hardware apropiado. El otro inconveniente tiene que ver con el backend que se está usando para Xgl actualmente: Xglx, que, a mi modo de ver, plantea un modo algo redundante aunque, eso si, bastante práctico. Xglx realiza las operaciones OpenGL sobre otro servidor X, es decir que a la larga tendríamos algo así: Xgl, un servidor X, corriendo sobre Xglx que a su vez corre sobre otro servidor X.

Para mi la solución ideal para el sistema gráfico en Linux, sería Xgl corriendo sobre Xegl, una alternativa a Xglx que permite que Xgl dibuje directamente sobre el framebuffer, evitándose de esta manera el segundo servidor X. Además que, al estar basado en el EGL de Khronos, sería mucho más portable. Sin embargo, Xegl todavía se ve bastante lejano. Existen muchos inconvenientes, uno es el problema de los drivers gráficos para que escriban directamente en el framebuffer, otro es la terquedad de tantos desarrolladores de X que pretenden seguir remachando el viejo X a probar nuevas y radicales ideas como Xegl. Esto es de lo que se prenden los de Aiglx para justificar su proyecto y es de lo que se queja Jon Smirl, ex desarrollador de Xegl, en su grandioso artículo sobre el estado del arte de los gráficos en Linux.

En fin, siempre he creído que la competencia en el software libre es buena y ayuda a que se logre un buena solución. Por eso me gusta que exista Gnome y también exista KDE, o que exista Fedora y también Ubuntu. Sin embargo en el caso de Aiglx vs Xgl la cosa es un poco distinta porque, como dijo alguien por ahí, no se trata de gustos, por lo que los dos no van a coexistir por mucho tiempo.

3 Comentarios:

A la/s 1:19 p. m., Anonymous Anónimo dijo...

Interesante reflexión. Me ha sido util para saber un poco mas de estos proyectos. Gracias.

 
A la/s 4:31 p. m., Anonymous Anónimo dijo...

te faltó algo: actualmente xgl corre encima de xorg (más o menos como Xnest). Va a ser realmente rápido cuando puedan hacer xegl, que es el verdadero xgl, que habla directamente con la tarjeta de video y no atravez de glx

 
A la/s 6:57 a. m., Blogger Manuel Cerón dijo...

phrodo, de hecho no faltó, lo dice claramente, creo que no leiste le artículo completo :P

un saludo,

Manuel.

 

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal