
Accelerated Indirect GLX ("AIGLX") is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project founded by
Red Hat and the
Fedora
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
community, led by
Kristian Høgsberg, to allow accelerated indirect
GLX rendering capabilities to the
X.Org Server 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
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
compositing window managers to function with hardware acceleration.
Rationale
There are two ways in which 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
Xgl is an obsolete 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. It supports hardware acceleration of all X, OpenGL an ...
, 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 X server with a small extension rather than requiring a full Xgl server. This is also an advantage over
DRI which bypasses the compositing engine even while providing hardware acceleration.
Deployment
The AIGLX project was merged into X.Org and has been available with X.Org 7.1.
AIGLX needed driver support to run. Specifically, it depended on the
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
extension.
Relationship to Xgl
Although the AIGLX project has features similar to
Xgl
Xgl is an obsolete 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. It supports hardware acceleration of all X, OpenGL an ...
, it was not intended to be a competing product. According t
the Fedora Project Wiki the project was founded in part because Xgl was written during its final stages "behind closed doors." This lack of peer-review drew criticism claiming to be the root of flaws in the software. An agreement was reached to share the source code between the two projects under the premise that doing so would prevent compatibility conflicts. Xgl was removed from the X Server on June 12, 2008.
XGL Version Info
/ref>
History
File:Linux graphics drivers 2D.svg, 2D drivers inside of the X server
File:Linux graphics drivers Utah GLX.svg, Indirect rendering over GLX, using Utah GLX
File:Linux graphics drivers DRI early.svg, early Direct Rendering Infrastructure
The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use ...
File:Linux graphics drivers DRI current.svg, Finally all access goes through the Direct Rendering Manager
The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations ...
File:Linux graphics drivers DRI Wayland.svg, In Linux kernel 3.12 ''render nodes'' were merged and the KMS was split off. Wayland implements direct rendering over EGL
See also
* CGL – the equivalent Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
interface to OpenGL
* EGL – the equivalent Wayland interface to OpenGL ES
OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-ac ...
and OpenVG
OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfac ...
(Wayland is also being mainly developed by Kristian Høgsberg)
* GLX – the equivalent X11 interface to OpenGL
References
External links
Fedora Project Wiki AIGLX Article
— contains early demonstration videos in the free Ogg Theora
Theora is a free lossy video compression format. It is developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg container. ...
format.
{{XWinSys
Free software projects
Freedesktop.org
OpenGL