Xgl es una implementación de servidor de visualización obsoleta que admite el protocolo del sistema X Window 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 efectos gráficos mediante un administrador de ventanas de composición como Compiz o Beryl . El proyecto fue iniciado por David Reveman de Novell y lanzado por primera vez el 2 de enero de 2006. Fue eliminado [2] del servidor X.org a favor deAIGLX el 12 de junio de 2008.
![]() Compiz en Xgl con transparencia real | |
Autor (es) original (es) | David Reveman |
---|---|
Versión inicial | 2 de enero de 2006 |
Tipo | Servidor de pantalla |
Sitio web | web |
Historia
Xgl se desarrolló originalmente en listas de correo públicas, pero durante mucho tiempo, hasta el 2 de enero de 2006, la mayor parte [3] del desarrollo de Xgl se realizó a puerta cerrada. Ese día, la fuente de Xgl se volvió a abrir 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 obtuvo una amplia publicidad después de una exhibición pública en la que el equipo de escritorio Novell mostró un escritorio usando Xgl con varios efectos visuales, como ventanas translúcidas y un escritorio 3D giratorio. [6] [7] [8] Los efectos se implementaron por primera vez en un administrador compuesto llamado glxcompmgr (que no debe confundirse con xcompmgr), ahora en desuso porque varios efectos no podrían implementarse adecuadamente sin una interacción más estrecha entre el administrador de ventanas y el compuesto gerente. Como solución, David Reveman desarrolló Compiz , el primer administrador de ventanas de composición OpenGL adecuado para el sistema X Window. Más tarde, en septiembre de 2006, se lanzó el administrador de ventanas de composición Beryl como una bifurcación del Compiz original. Compiz y Beryl se fusionaron en abril de 2007, lo que resultó en el desarrollo de Compiz Fusion .
Backends
OpenGL no especifica cómo inicializar una pantalla y manipular contextos de dibujo. En cambio, estas operaciones son manejadas por una API específica del sistema de ventanas nativo. Hasta ahora, hay dos enfoques de backend diferentes para resolver este problema de inicialización. Lo más probable es que la mayoría de cada backend contenga el mismo código y las diferencias se encuentren principalmente en las partes de inicialización de los servidores.
Xglx
Xglx fue el primer backend implementado para esta arquitectura. Requiere un servidor X ya existente para ejecutarse y usa GLX para crear una ventana OpenGL que luego usa Xgl, similar a Xnest . Este modo solo está destinado a ser utilizado para el desarrollo en el futuro, ya que es redundante requerir un servidor X para ejecutar Xgl encima.
En XDevConf 2006 (la conferencia de desarrollo X de 2006), NVIDIA hizo una presentación argumentando que esta es la dirección equivocada porque el servidor en capas abstrae las características de las tarjetas. Esto hace que las capacidades específicas del controlador, como la compatibilidad con gafas 3D y la compatibilidad con dos monitores, sean mucho más difíciles. [9]
Sin embargo, delegar la inicialización a un servidor X existente permite a los desarrolladores enfocarse inmediatamente en la funcionalidad del servidor en lugar de dedicar un tiempo sustancial a aspectos específicos de la interfaz con numerosos hardware de video. Por el momento, Xglx no admite oficialmente varios monitores, aunque se ha logrado en Ubuntu Dapper / ATI / NVIDIA (twinview).
Xegl
Xegl era un objetivo a largo plazo del desarrollo de servidores X. [10] Comparte gran parte del código de dibujo con el servidor Xglx, pero la inicialización del diseño de OpenGL y la gestión del contexto es manejada por la API de EGL desarrollada por Khronos (EGL es un sistema de ventanas independiente equivalente a las API de GLX y WGL, que habilitan respectivamente la compatibilidad con OpenGL en X y Microsoft Windows). La implementación actual usa Mesa-solo para proporcionar renderizado OpenGL directamente al framebuffer de Linux o DRI al hardware de gráficos. En julio de 2007[actualizar]Xegl solo se puede ejecutar con hardware de gráficos Radeon R200 y el desarrollo está actualmente detenido. [11] Es probable que siga siéndolo hasta que el servidor Xglx se haya probado y los controladores de código cerrado agreguen soporte para la API de EGL, cuando debería ser un reemplazo transparente para el servidor Xglx anidado.
Razón fundamental
Estructurar todo el renderizado sobre OpenGL podría simplificar potencialmente el desarrollo de controladores de video. Elimina la separación artificial de la aceleración 2D y 3D . Esto es ventajoso ya que las operaciones 2D con frecuencia no se aceleran (lo cual es contrario a la intuición, ya que 2D es un subconjunto de 3D). [ cita requerida ]
También elimina todo el código dependiente del controlador del propio servidor X y permite operaciones aceleradas de composición y renderización independientes del controlador de gráficos.
Competidores
La aceleración por hardware de las operaciones de dibujo en 2D ha sido una característica común de muchos sistemas de ventanas (incluido X11) durante muchos años. La novedad de Xgl y sistemas similares es el uso de API desarrolladas específicamente para renderizado 3D para acelerar las operaciones de escritorio 2D. Antes de la adopción del dibujo suavizado por X11, el uso de API de renderizado 3D para renderizado de escritorio 2D no era deseable porque tales API no ofrecían garantías de renderizado con precisión de píxeles que son parte de la definición del protocolo X11 original.
El renderizado de escritorio y ventana OpenGL acelerado por hardware, limitado al uso de OpenGL para la composición de texturas, ha estado en uso 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 más directamente comparable a Xgl. Al igual que Xgl, Quartz 2D Extreme lleva la aceleración OpenGL a todas las operaciones de dibujo en 2D (no solo a la composición de escritorio) y se envía con Mac OS X v10.4 , pero está deshabilitado de forma predeterminada a la espera de una declaración formal de preparación para la 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 [1] de Sun Microsystems ; estos aprovechan la aceleración 3D para 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 , llamada DWM , como parte de su sistema operativo Windows Vista . Esta tecnología se mostró públicamente por primera vez en el PDC de octubre de 2003 de Microsoft.
Disponibilidad
En mayo de 2006[actualizar], el Xgl X Server (y los componentes relacionados, incluido el administrador de composición Compiz y las herramientas de configuración gráficas asociadas) se envía como no predeterminado en una distribución principal de Linux, SUSE 10.1, y se incluye en Frugalware Linux o SUSE Linux Enterprise Desktop 10. Xgl puede configurarse 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 paquete superpuesto en Gentoo Linux y como PKGBUILD para Arch Linux .
Mandriva Linux 2007 incluye paquetes oficiales para ejecutar Compiz , usando Xgl y AIGLX . Mandriva proporciona drak3d , una herramienta para configurar un escritorio 3D en dos clics.
Ubuntu 6.10 "Edgy Eft" y versiones posteriores usan AIGLX , no Xgl, de forma predeterminada.
Xgl se eliminó de X11R7.5 en 2009 debido a que era una variante de servidor sin mantenimiento. [12]
Ver también
- Sistema de ventanas X
- AIGLX
- VirtualGL
- OpenGL
- Compiz
- Berilo
Referencias
- ^ HOPF, MATTHIAS (2006). "BEYOND EYE CANDY: Un escritorio acelerado por OpenGL con Xgl y Compiz" . Revista Linux . 68 : 24-26 . Consultado el 6 de febrero de 2017 .
- ^ Información de la versión XGL
- ^ ALGIX, Nvidia, XGL y metacity. Archivado el 8 de marzo de 2006 en Wayback Machine.
- ^ Último código XGL
- ^ Código XGL de Novell publicado
- ^ Código XGL de lanzamiento público de Novell
- ^ SUSE XGL [ enlace muerto permanente ]
- ^ Recursos de OpenSUSE XGL [ enlace muerto permanente ]
- ^ http://download.nvidia.com/developer/presentations/2006/xdevconf/compositing-with-current-framework.pdf
- ^ Smirl, Jon (30 de agosto de 2005). "El estado de los gráficos de Linux" . Consultado el 18 de febrero de 2016 .
- ^ http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=history;h=master;hb=master;f=hw/xgl/egl/xegl.c
- ^ http://www.x.org/wiki/Releases/7.5 X.org Foundation Releases / 7.5
enlaces externos
- Xegl
- Especificaciones EGL
- Artículo: El estado de los gráficos de Linux : descripción general de varios enfoques para reemplazar el servidor X actual
- el video que demuestra Compiz en Xgl