AIGLX

From Wikipedia, the free encyclopedia

Compiz running on Fedora Core 6 with AIGLX.
Enlarge
Compiz running on Fedora Core 6 with AIGLX.

Accelerated Indirect GLX ("AIGLX") is an open source project founded by the X.Org Foundation and the Fedora Core community to allow accelerated indirect GLX rendering capabilities to X.org and DRI drivers. This allows remote X clients to get fully hardware accelerated rendering over the GLX protocol; coincidentally, this development was required for OpenGL compositing window managers (such as Compiz or Beryl) to function with hardware acceleration.

Contents

[edit] Rationale

There are two ways that a windowing system can allow an OpenGL implementation to talk to the graphics card.

The first is to specify the OpenGL command stream in a portable network-neutral manner using a client/server implementation similar to the X11 drawing routines. This is the indirect route as the drawing commands are sent to the X server and then the xserver sends them along to the graphics card.

The second way, which is at the base of Xgl, is to open a window and then allow the OpenGL library to send commands directly to the graphics card. Accelerating the indirect OpenGL path is orthogonal to how the X server itself is implemented, but it has the side effect of allowing the OpenGL command stream to be more easily captured and redirected to a texture. This allows Compiz and other compositing window managers to be built on top of a traditional server with a small GLX extension rather than requiring a full Xgl server. Another advantage is that DRI bypass Xgl server (so it could not be accelerated), while with AIGLX everything is allowed to be composed.

[edit] Deployments

The AIGLX project has been merged into X.Org and is available as of X.Org 7.1. Currently, Mandriva 2007, Fedora Core 6, Ubuntu 6.10 (Edgy Eft), and Gentoo have the ability to run AIGLX out of the box, and installation repositories are available for older versions of the distributions. Sabayon Linux 3.0 livecd/livedvd ships with AIGLX available from the boot prompt.

AIGLX needs driver support to run. Specifically, it depends on the texture_from_pixmap OpenGL extension, which is supported on embedded Intel i810 through i965 graphics cards & ATI Radeon cards up to X800 series through free drivers in X.org and NVIDIA graphics card through NVIDIA's proprietary 9xxx series drivers (although with these drivers, compositing managers do not require AIGLX proper — only X.Org 7.1).

[edit] Relationship to Xgl

Although the AIGLX project has features similar to Xgl, it is not a competing product. The project, according to the Fedora Project Wiki, was founded because Xgl was written during its final stages "behind closed doors". This disallowed peer-review of the system, which goes against the open source philosophy, and there are critics of the Xgl architecture who state that because of the lack of peer-review, the system has too many flaws to be useful. It is stated, however, that both the AIGLX and Xgl projects will swap code and work in a partnership to ensure compatibility and improvements in both systems.

[edit] AIGLX on nVIDIA Graphics Cards

There has recently been many questions and much confusion over AIGLX on nVIDIA graphics cards. For window managers like Beryl, AIGLX or Xgl are often stated as a requirement. With the newest nVIDIA drivers, the OpenGL calls are supported in the driver itself, with no need for X.org (version 7 and newer) to provide the indirect rendering facility. Some attribute[1] the rapid implementation of this to nVIDIA's vested interest in having such an implementation first, without consideration for the quality of the design.

[edit] See also

[edit] External links

[edit] References