Jump to content

AIGLX

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 87.88.98.241 (talk) at 14:52, 18 February 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Compiz running on Fedora Core 6 with AIGLX.

Accelerated Indirect GLX ("AIGLX") is an open source project founded by Red Hat and the Fedora Linux 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 Fusion) to function with hardware acceleration.

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 method, used by AIGLX, is indirect in that the drawing commands are sent to the X server and then the X server 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 bypasses the Xgl server (so it cannot be accelerated), while with AIGLX everything is allowed to be composed.

Deployments

The AIGLX project has been merged into X.Org and is available as of X.Org 7.1. Currently, Mandriva Linux 2007, Fedora 7, 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. SabayonLinux 3.3 LiveCD/LiveDVD ships with AIGLX available from the boot prompt. AIGLX is also available on openSUSE 10.2, using the packages available in the xorg72 branch of the openSUSE Build Repository.

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).

Relationship to Xgl

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

AIGLX with major graphics drivers

ATI

AIGLX has long been supported as part of X.Org's official Radeon driver, for older radeons. fglrx 8.42, the proprietary driver from ATI, supports AIGLX. There are reports of instability and problems from users using the latest Compiz and X.Org versions, but it's not clear if the problem is related to the driver, or the Compiz or X.Org release. If you don't have a stable system using compiz + ati proprietary driver, wait for a next driver release.[1]

Intel

AIGLX has long been supported as part of X.Org's official Intel driver,since Intel provides open source drivers it is easy to integrade them.

NVIDIA

NVIDIA has long supported AIGLX through its own GL and GLX architecture, as it does not use the standard Direct Rendering Infrastructure architecture.[citation needed]

See also

References