Articulo de referencia

Xgl

Xgl es una implementación obsoleta de servidor de visualización que admite el protocolo X Window System , diseñado para aprovechar las tarjetas gráficas modernas a través de sus...

Xgl es una implementación obsoleta de servidor de visualización que admite el protocolo X Window System , diseñado para aprovechar las tarjetas gráficas modernas a través de sus controladores OpenGL , superpuestos a OpenGL . [ 1 ] Admite la aceleración por hardware de todas las aplicaciones X, OpenGL y XVideo y los efectos gráficos mediante un gestor de ventanas de composición como Compiz o Beryl . El proyecto fue iniciado por David Reveman de Novell y se lanzó por primera vez el 2 de enero de 2006. Fue eliminado [ 2 ] del servidor X.org en favor de AIGLX el 12 de junio de 2008.

Historia

El desarrollo de Xgl comenzó en 2004. Hasta su lanzamiento en 2006, se desarrolló abiertamente en listas de correo públicas, aunque durante los últimos meses, el desarrollo de Xgl fue privado. [ 3 ] Ese día, el código fuente de Xgl se reabrió al público, [ 4 ] [ 5 ] y se incluyó en freedesktop.org , junto con una reestructuración importante para permitir una gama más amplia de controladores de pantalla compatibles. Los backends de servidor X utilizados por Xgl incluyen Xglx y Xegl . En febrero de 2006, el servidor ganó una amplia publicidad después de una demostración pública donde el equipo de escritorio de Novell mostró un escritorio que usaba Xgl con varios efectos visuales como ventanas translúcidas y un escritorio 3D giratorio. [ 6 ] [ 7 ] [ 8 ] Los efectos se habían implementado por primera vez en un gestor compuesto llamado glxcompmgr (que no debe confundirse con xcompmgr), ahora obsoleto porque varios efectos no podían implementarse adecuadamente sin una interacción más estrecha entre el gestor de ventanas y el gestor compuesto. Como solución, David Reveman desarrolló Compiz , el primer gestor de ventanas de composición OpenGL adecuado para el sistema X Window. Posteriormente, en septiembre de 2006, se lanzó el gestor de ventanas de composición Beryl como una bifurcación del Compiz original. Compiz y Beryl se fusionaron en abril de 2007, lo que dio como resultado el desarrollo de Compiz Fusion .

Sistemas de backend

OpenGL no especifica cómo inicializar una pantalla ni cómo manipular los contextos de dibujo. En cambio, estas operaciones se gestionan mediante una API específica del sistema de ventanas nativo. Hasta el momento, existen dos enfoques de backend diferentes para resolver este problema de inicialización. Lo más probable es que la mayor parte de cada backend contenga el mismo código, y las diferencias residirán principalmente en las secciones de inicialización de los servidores.

Xglx

Xglx fue el primer backend implementado para esta arquitectura. Requiere un servidor X ya existente para ejecutarse sobre él y utiliza GLX para crear una ventana OpenGL que Xgl luego usa, de forma similar a Xnest . Este modo está pensado únicamente para el desarrollo futuro, ya que resulta redundante requerir un servidor X para ejecutar Xgl sobre él.

En XDevConf 2006 (la conferencia de desarrollo X de 2006), NVIDIA presentó un argumento en el que afirmaba que este no era el camino correcto, ya que el servidor en capas abstraía las características de las tarjetas. Esto dificultaba mucho las funcionalidades específicas del controlador, como la compatibilidad con gafas 3D y la compatibilidad con monitores duales. [ 9 ]

Sin embargo, delegar la inicialización a un servidor X existente permite a los desarrolladores centrarse de inmediato en la funcionalidad del servidor en lugar de dedicar mucho tiempo a los detalles de la interfaz con numerosos dispositivos de vídeo. Actualmente, Xglx no admite oficialmente múltiples monitores, aunque se ha logrado en Ubuntu Dapper / ATI / NVIDIA (twinview).

Xegl

Xegl fue un objetivo a largo plazo del desarrollo del servidor X. [ 10 ] Comparte gran parte del código de dibujo con el servidor Xglx, pero la inicialización del objeto dibujable de OpenGL y la gestión del contexto se manejan mediante la API EGL desarrollada por Khronos (EGL es un equivalente independiente del sistema de ventanas a las API GLX y WGL, que permiten respectivamente la compatibilidad con OpenGL en X y Microsoft Windows). La implementación actual utiliza Mesa-solo para proporcionar renderizado de OpenGL directamente al framebuffer de Linux o DRI al hardware gráfico. A partir de mayo de 2024Xegl solo puede ejecutarse utilizando el hardware gráfico Radeon R200 y su desarrollo se encuentra actualmente estancado. [ 11 ] Es probable que siga siendo así hasta que el servidor Xglx haya demostrado su valía y los controladores de código cerrado añadan compatibilidad con la API EGL, momento en el que debería ser un reemplazo transparente para el servidor Xglx anidado.

Razón fundamental

Estructurar todo el renderizado sobre OpenGL podría simplificar el desarrollo de controladores de vídeo. Elimina la separación artificial entre la aceleración 2D y 3D . Esto resulta ventajoso, ya que las operaciones 2D a menudo no se aceleran (lo cual es contraintuitivo, puesto que 2D es un subconjunto de 3D).

Además, elimina todo el código dependiente del controlador del propio servidor X y permite operaciones de composición y renderizado aceleradas independientemente del controlador gráfico.

Competidores

La aceleración por hardware de las operaciones de dibujo 2D ha sido una característica común de muchos sistemas de ventanas (incluido X11) durante años. La novedad de XGL y sistemas similares radica en el uso de API desarrolladas específicamente para la renderización 3D con el fin de acelerar las operaciones de escritorio 2D. Antes de la adopción del dibujo con suavizado de bordes por parte de X11, el uso de API de renderización 3D para la renderización de escritorio 2D no era recomendable, ya que dichas API no ofrecían las garantías de renderización con precisión de píxel que forman parte de la definición original del protocolo X11.

La renderización de ventanas y escritorios OpenGL acelerada por hardware, limitada al uso de OpenGL para la composición de texturas, se ha utilizado en Mac OS X, en una tecnología llamada Quartz Extreme , desde Mac OS X v10.2 . Quartz 2D Extreme es una mejora de esta característica y es más directamente comparable a Xgl. Al igual que Xgl, Quartz 2D Extreme lleva la aceleración OpenGL a todas las operaciones de dibujo 2D (no solo la composición de escritorio) y viene con Mac OS X v10.4 , pero está deshabilitada por defecto a la espera de una declaración formal de preparación para producción. Core Animation es la extensión de este esfuerzo para Leopard ( Mac OS X v10.5 ).

Se han desarrollado varias interfaces de escritorio basadas en API 3D, más recientemente OpenCroquet y Project Looking Glass de Sun Microsystems.; estos aprovechan la aceleración 3D para el software creado dentro de su propio marco, pero no parecen acelerar las aplicaciones de escritorio 2D existentes renderizadas dentro de su entorno (a menudo a través de mecanismos como VNC ).

Microsoft desarrolló una tecnología similar basada en DirectX , denominada DWM , como parte de su sistema operativo Windows Vista . Esta tecnología se presentó públicamente por primera vez en la conferencia PDC de Microsoft en octubre de 2003.

Disponibilidad

A fecha de mayo de 2006El servidor Xgl X (y sus componentes relacionados, incluido el gestor de composición Compiz y las herramientas de configuración gráfica asociadas) viene como una opción no predeterminada en una importante distribución de Linux, SUSE 10.1, y está incluido en Frugalware Linux o SUSE Linux Enterprise Desktop 10. Xgl se puede configurar con bastante facilidad para Ubuntu 6.06 LTS (Dapper Drake) y 6.10 (Edgy Eft) y para Freespire con paquetes binarios de repositorios no oficiales . Xgl también está disponible como un paquete superpuesto en Gentoo Linux y como un PKGBUILD para Arch Linux .

Mandriva Linux 2007 incluye paquetes oficiales para ejecutar Compiz , utilizando Xgl y AIGLX . Mandriva proporciona drak3d , una herramienta para configurar un escritorio 3D en dos clics.

Ubuntu 6.10 "Edgy Eft" y versiones posteriores utilizan AIGLX , no Xgl, por defecto.

Xgl se eliminó de X11R7.5 en 2009 debido a que era una variante de servidor sin mantenimiento. [ 12 ]

Véase también

Referencias

  1. HOPF, MATTHIAS (2006). "MÁS ALLÁ DE LO VISUAL: Un escritorio acelerado por OpenGL con Xgl y Compiz" . Linux Magazine . 68 : 24–26 . Recuperado el 6 de febrero de 2017 .
  2. "xorg/xserver - Servidor X" . Cgit.freedesktop.org . Consultado el 24 de enero de 2022 .
  3. "ALGIX, Nvidia, XGL y metacity" . Archivado del original el 8 de marzo de 2006. Consultado el 24 de enero de 2022 .
  4. Carsten Haitzler (8 de enero de 2006). "Q: Comportamiento de Xserver / Composite" . Lists.freedesktop.org . Consultado el 24 de enero de 2022 .
  5. "Código XGL de Novell publicado [ LWN.net ] " . Lwn.net . Consultado el 24 de enero de 2022 .
  6. "Novell publica el código XGL - Slashdot" . Linux.slashdot.org . 8 de febrero de 2006. Consultado el 24 de enero de 2022 .
  7. "Usabilidad | SUSE Linux Enterprise Desktop" . xgl.opensuse.org . Consultado el 6 de junio de 2022 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  8. "Recursos XGL de OpenSUSE" . Opensuse.org . Consultado el 24 de enero de 2022 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  9. "Uso del marco de controladores cargables XFree86/X.Org existente para lograr un escritorio X compuesto" (PDF) . Download.nvidia.com . Consultado el 24 de enero de 2022 .
  10. Smirl, Jon (30 de agosto de 2005). "El estado de los gráficos de Linux" . Recuperado el 18 de febrero de 2016 .
  11. "cgit.freedesktop.org http host virtual git" . Gitweb.freedesktop.org .
  12. "7.5" . X.org . Consultado el 24 de enero de 2022 .
  • Xegl
  • Especificaciones EGL
  • Artículo: El estado de los gráficos en Linux : panorama general de varios enfoques para reemplazar el servidor X actual.
  • el vídeo que muestra Compiz en Xgl