Jump to content

Xgl: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m when did it cease to be a display server? what is it now?
Rescuing 2 sources and tagging 4 as dead. #IABot
Line 35: Line 35:


== History==
== History==
Xgl was originally developed on public mailing lists, but for a long time, until January 2, 2006 most<ref>[http://lists.freedesktop.org/archives/xorg/2006-February/013306.html ALGIX, Nvidia, XGL and metacity]</ref> development of Xgl was done behind closed doors. On that day the source to Xgl was re-opened to the public,<ref>[http://lists.freedesktop.org/archives/xorg/2006-January/011922.html Latest XGL Code]</ref><ref>[http://lwn.net/Articles/166081/ Novell's XGL Code posted]</ref> and included in [[freedesktop.org]], along with major restructuring to allow a wider range of supported display drivers. X server backends used by Xgl include '''Xglx''' and '''Xegl'''. In February 2006 the server gained wide publicity after a public display where the [[Novell]] desktop team demonstrated a desktop using Xgl with several visual effects such as [[transparency (graphic)|translucent]] [[window (computing)|window]]s and a rotating 3D desktop.<ref>[http://linux.slashdot.org/linux/06/02/08/0624253.shtml Novell Public Release XGL Code]</ref><ref>[http://xgl.opensuse.org/ SUSE XGL]</ref><ref>[http://www.opensuse.org/Xgl OpenSUSE XGL resources]</ref> The effects had first been implemented in a composite manager called [[glxcompmgr]] (not to be confused with xcompmgr), now deprecated because several effects could not be adequately implemented without tighter interaction between the window manager and the composite manager. As a solution David Reveman developed [[Compiz]], the first proper OpenGL [[compositing window manager]] for the X Window System. Later, in September 2006, the [[Beryl (window manager)|Beryl]] [[compositing window manager]] was released as a fork of the original Compiz. Compiz and Beryl have merged back in April 2007, which resulted in the development of [[Compiz Fusion]].
Xgl was originally developed on public mailing lists, but for a long time, until January 2, 2006 most<ref>[http://lists.freedesktop.org/archives/xorg/2006-February/013306.html ALGIX, Nvidia, XGL and metacity] {{wayback|url=http://lists.freedesktop.org/archives/xorg/2006-February/013306.html |date=20060308004233 }}</ref> development of Xgl was done behind closed doors. On that day the source to Xgl was re-opened to the public,<ref>[http://lists.freedesktop.org/archives/xorg/2006-January/011922.html Latest XGL Code]</ref><ref>[http://lwn.net/Articles/166081/ Novell's XGL Code posted]</ref> and included in [[freedesktop.org]], along with major restructuring to allow a wider range of supported display drivers. X server backends used by Xgl include '''Xglx''' and '''Xegl'''. In February 2006 the server gained wide publicity after a public display where the [[Novell]] desktop team demonstrated a desktop using Xgl with several visual effects such as [[transparency (graphic)|translucent]] [[window (computing)|window]]s and a rotating 3D desktop.<ref>[http://linux.slashdot.org/linux/06/02/08/0624253.shtml Novell Public Release XGL Code]</ref><ref>[http://xgl.opensuse.org/ SUSE XGL]{{dead link|date=July 2016 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>[http://www.opensuse.org/Xgl OpenSUSE XGL resources]{{dead link|date=July 2016 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> The effects had first been implemented in a composite manager called [[glxcompmgr]] (not to be confused with xcompmgr), now deprecated because several effects could not be adequately implemented without tighter interaction between the window manager and the composite manager. As a solution David Reveman developed [[Compiz]], the first proper OpenGL [[compositing window manager]] for the X Window System. Later, in September 2006, the [[Beryl (window manager)|Beryl]] [[compositing window manager]] was released as a fork of the original Compiz. Compiz and Beryl have merged back in April 2007, which resulted in the development of [[Compiz Fusion]].


== Backends ==
== Backends ==
Line 95: Line 95:


=== HOWTO, forums, support ===
=== HOWTO, forums, support ===
* [http://en.opensuse.org/Xgl openSUSE wiki for Xgl]
* [http://web.archive.org/web/20060601060921/http://en.opensuse.org:80/Xgl openSUSE wiki for Xgl]
* Xgl HowTos: [http://www.novell.com/coolsolutions/feature/17174.html Novell], [https://wiki.ubuntu.com/CompositeManager/Xgl Ubuntu], [http://sonique54.free.fr/xgl/xgl.htm Debian Etch], [http://gentoo-wiki.com/HOWTO_XGL Gentoo Linux]
* Xgl HowTos: [http://www.novell.com/coolsolutions/feature/17174.html Novell], [https://wiki.ubuntu.com/CompositeManager/Xgl Ubuntu], [http://sonique54.free.fr/xgl/xgl.htm Debian Etch], [http://gentoo-wiki.com/HOWTO_XGL Gentoo Linux]
* [http://nicofo.tuxfamily.org/dotclear/index.php/2007/02/23/25-automatic-installation-of-xgl-compiz-and-beryl-on-fedora How-to install XGL on '''Fedora''' 5/6/7] — Xgl Beryl and Compiz on Fedora
* [http://nicofo.tuxfamily.org/dotclear/index.php/2007/02/23/25-automatic-installation-of-xgl-compiz-and-beryl-on-fedora How-to install XGL on '''Fedora''' 5/6/7] — Xgl Beryl and Compiz on Fedora


=== Screenshots, screencast, demo video ===
=== Screenshots, screencast, demo video ===
* [http://xgl.opensuse.org/ Novell Xgl announcement including video and screenshots]
* [http://xgl.opensuse.org/ Novell Xgl announcement including video and screenshots]{{dead link|date=July 2016 |bot=InternetArchiveBot |fix-attempted=yes }}
* Novell Open Audio podcast [http://www.novell.com/podcast/Detailpage.jsp?id=55 Xgl with David Reveman] — 7 April 2006, discusses the basics and future of Xgl and Compiz
* Novell Open Audio podcast [http://www.novell.com/podcast/Detailpage.jsp?id=55 Xgl with David Reveman] — 7 April 2006, discusses the basics and future of Xgl and Compiz
* [http://www.linuxedge.org/?q=node/55 Videos of Xgl on SUSE Linux Enterprise Desktop 10]
* [http://www.linuxedge.org/?q=node/55 Videos of Xgl on SUSE Linux Enterprise Desktop 10]
* [http://www.linuxedge.org/?q=node/58 Slides, screenshots and a video with more effects]
* [http://www.linuxedge.org/?q=node/58 Slides, screenshots and a video with more effects]
** [http://www.freedesktop.org/~davidr/xgl-demo1.xvid.avi the video demonstrating Compiz on Xgl]
** [http://www.freedesktop.org/~davidr/xgl-demo1.xvid.avi the video demonstrating Compiz on Xgl]{{dead link|date=July 2016 |bot=InternetArchiveBot |fix-attempted=yes }}
* [http://youtube.com/watch?v=lawkc3jH3ws Another Xgl Video]
* [http://youtube.com/watch?v=lawkc3jH3ws Another Xgl Video]
* [http://www.dailymotion.com/video/xb7sz_mandriva-linux-2007-3d-desktop Mandriva 3D Video]
* [http://www.dailymotion.com/video/xb7sz_mandriva-linux-2007-3d-desktop Mandriva 3D Video]

Revision as of 16:44, 16 July 2016

Xgl
Original author(s)David Reveman
Initial releaseJanuary 2, 2006; 18 years ago (2006-01-02)
TypeDisplay server
Websitewww.freedesktop.org/wiki/Software/Xgl

Xgl is a display server implementation supporting the X Window System protocol designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top of OpenGL via glitz. It supports hardware acceleration of all X, OpenGL and XVideo applications and graphical effects by a compositing window manager such as Compiz or Beryl. The project was started by David Reveman of Novell and first released on January 2, 2006. It was removed[1] from the X.org server in favor of AIGLX on June 12, 2008.

History

Xgl was originally developed on public mailing lists, but for a long time, until January 2, 2006 most[2] development of Xgl was done behind closed doors. On that day the source to Xgl was re-opened to the public,[3][4] and included in freedesktop.org, along with major restructuring to allow a wider range of supported display drivers. X server backends used by Xgl include Xglx and Xegl. In February 2006 the server gained wide publicity after a public display where the Novell desktop team demonstrated a desktop using Xgl with several visual effects such as translucent windows and a rotating 3D desktop.[5][6][7] The effects had first been implemented in a composite manager called glxcompmgr (not to be confused with xcompmgr), now deprecated because several effects could not be adequately implemented without tighter interaction between the window manager and the composite manager. As a solution David Reveman developed Compiz, the first proper OpenGL compositing window manager for the X Window System. Later, in September 2006, the Beryl compositing window manager was released as a fork of the original Compiz. Compiz and Beryl have merged back in April 2007, which resulted in the development of Compiz Fusion.

Backends

OpenGL does not specify how to initialize a display and manipulate drawing contexts. Instead these operations are handled by an API specific to the native windowing system. So far there are two different backend approaches to solving this initialization problem. Most likely the majority of each backend will contain the same code and the differences will primarily be in the initialization portions of the servers.

Xglx

Xglx was the first backend implemented for this architecture. It requires an already existing X server to run on top of and uses GLX to create an OpenGL window which Xgl then uses, similar to Xnest. This mode is only intended to be used for development in the future, as it is redundant to require an X server to run Xgl on top of.

At XDevConf 2006 (the 2006 X development conference), NVIDIA made a presentation arguing that this is the wrong direction to take because the layered server abstracts features of the cards away. This makes driver specific capabilities like support for 3D glasses and dual monitor support much more difficult.[8]

However, delegating initialization to an existing X server allows the developers to immediately focus on server functionality rather than dedicating substantial time to specifics of interfacing with numerous video hardware. At the moment, Xglx does not officially support multiple monitors, although it has been achieved on Ubuntu Dapper / ATI / NVIDIA (twinview).

Xegl

Xegl was said[by whom?] to be the future of Xgl and a long-term goal of X server development.[9] It shares much of the drawing code with the Xglx server, but the initialization of the OpenGL drawable and context management is handled by the EGL API developed by Khronos (EGL is a window system-independent equivalent to the GLX and WGL APIs, which respectively enable OpenGL support in X and Microsoft Windows). The current implementation uses Mesa-solo to provide OpenGL rendering directly to the Linux framebuffer or DRI to the graphics hardware. As of July 2007 Xegl can only be run using Radeon R200 graphics hardware and development is currently stalled.[10] It is likely that it will remain so until the Xglx server has proven itself and the closed source drivers add support for the EGL API, when it should be a transparent replacement for the nested Xglx server.

Rationale

Structuring all rendering on top of OpenGL could potentially simplify video driver development. It removes the artificial separation of 2D and 3D acceleration. This is advantageous as 2D operations are frequently unaccelerated (which is counterintuitive, since 2D is a subset of 3D). [citation needed]

It also removes all driver-dependent code from the X server itself, and allows for accelerated Composite and Render operations independent of the graphics driver.

Competitors

Hardware acceleration of 2D drawing operations has been a common feature of many window systems (including X11) for many years. The novelty of Xgl and similar systems is the use of APIs specifically developed for 3D rendering for accelerating 2D desktop operations. Prior to the adoption of anti-aliased drawing by X11, the use of 3D rendering APIs for 2D desktop rendering was undesirable because such APIs did not make the pixel accurate rendering guarantees that are part of the original X11 protocol definition.

Hardware-accelerated OpenGL window and desktop rendering, limited to using OpenGL for texture composition, has been in use in Mac OS X, in a technology called Quartz Extreme, since Mac OS X v10.2. Quartz 2D Extreme is an enhancement of this feature and more directly comparable to Xgl. Like Xgl, Quartz 2D Extreme brings OpenGL acceleration to all 2D drawing operations (not just desktop compositing) and ships with Mac OS X v10.4, but is disabled by default pending a formal declaration of production-readiness. Core Animation is the extension of this effort for Leopard (Mac OS X v10.5).

Several desktop interfaces based on 3D APIs have been developed, more recently OpenCroquet and Sun Microsystems' Project Looking Glass [1]; these take advantage of 3D acceleration for software built within their own framework, but do not appear to accelerate existing 2D desktop applications rendered within their environment (often via mechanisms like VNC).

Microsoft developed a similar technology based on DirectX, named the DWM, as part of its Windows Vista operating system. This technology was first shown publicly at Microsoft's October 2003 PDC.

Availability

As of May 2006, the Xgl X Server (and related components including the Compiz compositing manager and associated graphical config tools) ships as a non-default in one major Linux distribution, SUSE 10.1, and is included in Frugalware Linux or SUSE Linux Enterprise Desktop 10. Xgl can be set up fairly easily for Ubuntu 6.06 LTS (Dapper Drake) and 6.10 (Edgy Eft) and for Freespire with binary packages from unofficial repositories. Xgl is also available as an overlaid package in Gentoo Linux, and as a PKGBUILD for Arch Linux.

Mandriva Linux 2007 includes official packages to run Compiz, using Xgl and AIGLX. Mandriva provides drak3d, a tool to configure a 3D Desktop in two clicks.

Ubuntu 6.10 "Edgy Eft" and later use AIGLX, not Xgl, by default.

Xgl was removed from X11R7.5 in 2009 due to its being an unmaintained server variant.[11]

See also

References

  1. ^ XGL Version Info
  2. ^ ALGIX, Nvidia, XGL and metacity Archived 2006-03-08 at the Wayback Machine
  3. ^ Latest XGL Code
  4. ^ Novell's XGL Code posted
  5. ^ Novell Public Release XGL Code
  6. ^ SUSE XGL[permanent dead link]
  7. ^ OpenSUSE XGL resources[permanent dead link]
  8. ^ http://download.nvidia.com/developer/presentations/2006/xdevconf/compositing-with-current-framework.pdf
  9. ^ Smirl, Jon (30 August 2005). "The State of Linux Graphics". Retrieved 18 February 2016.
  10. ^ http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=history;h=master;hb=master;f=hw/xgl/egl/xegl.c
  11. ^ http://www.x.org/wiki/Releases/7.5 X.org Foundation Releases/7.5

HOWTO, forums, support

Screenshots, screencast, demo video