stringtranslate.com

Xgl

Xgl es una implementación de servidor de visualización obsoleta 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 aceleración de 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 de AIGLX el 12 de junio de 2008.

Historia

El desarrollo de Xgl comenzó en 2004. Hasta su lanzamiento en 2006, se desarrolló de forma abierta 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 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 del servidor X utilizados por Xgl incluyen Xglx y Xegl . En febrero de 2006, el servidor ganó amplia publicidad después de una exhibición pública donde el equipo de escritorio de Novell demostró un escritorio usando Xgl con varios efectos visuales como ventanas translúcidas y un escritorio 3D giratorio. [6] [7] [8] Los efectos se habían implementado primero en un administrador compuesto llamado glxcompmgr (que no debe confundirse con xcompmgr), ahora obsoleto porque varios efectos no se podían implementar adecuadamente sin una interacción más estrecha entre el administrador de ventanas y el administrador compuesto. Como solución, David Reveman desarrolló Compiz , el primer gestor de ventanas de composición OpenGL adecuado para el sistema X Window. Más tarde, 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 .

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 estarán 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 sobre el cual ejecutarse y utiliza GLX para crear una ventana OpenGL que luego utiliza Xgl, de manera similar a Xnest. Este modo solo está pensado para usarse en el desarrollo en el futuro, ya que es redundante requerir un servidor X sobre el cual ejecutar Xgl.

En la XDevConf 2006 (la conferencia de desarrollo X de 2006), NVIDIA hizo una presentación en la que argumentaba que esa era 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 centrarse inmediatamente en la funcionalidad del servidor en lugar de dedicar un tiempo sustancial a los detalles específicos de la interacción con numerosos dispositivos de vídeo. Por el momento, Xglx no admite oficialmente varios 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 dibujable OpenGL y la gestión del contexto son manejadas por la API EGL desarrollada por Khronos (EGL es un equivalente independiente del sistema de ventanas a las API 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 gráfico. A partir de mayo de 2024 , Xegl solo se puede ejecutar usando hardware gráfico Radeon R200 y el desarrollo está 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 agreguen soporte para la API EGL, cuando debería ser un reemplazo transparente para el servidor Xglx anidado.

Razón fundamental

Estructurar toda la renderización sobre OpenGL podría simplificar potencialmente el desarrollo de controladores de video, ya que 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 contraintuitivo, 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 de composición y renderizado aceleradas independientemente del controlador de gráficos.

Competidores

La aceleración de hardware de las operaciones de dibujo 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 el renderizado 3D para acelerar las operaciones de escritorio 2D. Antes de la adopción del dibujo anti-aliasing por parte de X11, el uso de API de renderizado 3D para el renderizado de escritorio 2D no era deseable porque dichas API no ofrecían las garantías de renderizado con precisión de píxeles que forman parte de la definición del protocolo X11 original.

La representación acelerada por hardware de ventanas y escritorios OpenGL, 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 a la composición de escritorio) y se entrega con Mac OS X v10.4 , pero está deshabilitado de forma predeterminada 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 [1]; estas 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 mostró públicamente por primera vez en la PDC de Microsoft de octubre de 2003.

Disponibilidad

A partir de mayo de 2006 , el servidor Xgl X (y los componentes relacionados, incluido el administrador de composición Compiz y las herramientas de configuración gráfica asociadas) se distribuye como un paquete no predeterminado en una de las principales distribuciones 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 ofrece drak3d , una herramienta para configurar un escritorio 3D en dos clics.

Ubuntu 6.10 "Edgy Eft" y posteriores utilizan 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]

Véase también

Referencias

  1. ^ HOPF, MATTHIAS (2006). "BEYOND EYE CANDY: Un escritorio acelerado por OpenGL con Xgl y Compiz". Linux Magazine . 68 : 24–26 . Consultado 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 desde el original el 8 de marzo de 2006. Consultado el 24 de enero de 2022 .
  4. ^ Carsten Haitzler (8 de enero de 2006). "Q: Xserver / Composite behavior". Lists.freedesktop.org . Consultado el 24 de enero de 2022 .
  5. ^ "El código XGL de Novell se publicó [LWN.net]". Lwn.net . Consultado el 24 de enero de 2022 .
  6. ^ "Novell hace una publicación pública del 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 . Archivado desde el original el 29 de junio de 2012 . Consultado el 6 de junio de 2022 .
  8. ^ "Recursos XGL de OpenSUSE". Opensuse.org . Archivado desde el original el 4 de abril de 2006. Consultado el 24 de enero de 2022 .
  9. ^ "Uso del marco de controlador cargable 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 en Linux" . Consultado 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 .

Enlaces externos