EXA
Encyclopedia
In computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...

, EXA is a graphics acceleration architecture of the X.Org Server
X.Org Server
X.Org Server refers to the X server release packages stewarded by the X.Org Foundation,which is hosted by freedesktop.org, and grants...

 (see also X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

) designed to replace XAA
XFree86 Acceleration Architecture
In the X Window System, XFree86 Acceleration Architecture is a driver architecture to make a video card's 2D hardware acceleration available to the X server. It was written by Harm Hanemaayer in 1996 and first released in XFree86 version 3.3. It was completely rewritten for XFree86 4.0.Most...

 (the XFree86 Acceleration Architecture
XFree86 Acceleration Architecture
In the X Window System, XFree86 Acceleration Architecture is a driver architecture to make a video card's 2D hardware acceleration available to the X server. It was written by Harm Hanemaayer in 1996 and first released in XFree86 version 3.3. It was completely rewritten for XFree86 4.0.Most...

) and to make the XRender
XRender
The X Rendering Extension is an X Window System extension to implement Porter-Duff image compositing in the X server, to allow efficient display of transparent images.- History :...

 extension more usable, with only minor changes needed to adapt XFree86
XFree86
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and is now available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It is developed by the...

 video drivers written to use XAA; it was designed by Zack Rusin and announced at LinuxTag
LinuxTag
LinuxTag is a Free Software expo with an emphasis on Linux , held every summer in Germany. It is relatively large, claiming that it is the largest expo of this kind in Europe, drawing visitors from many countries....

 2005 and first released with X.Org Server version 6.9/7.0.

History

Historically, a distinction has been made between 2D and 3D acceleration. 2D acceleration was provided by the venerable XFree86 Acceleration Architecture
XFree86 Acceleration Architecture
In the X Window System, XFree86 Acceleration Architecture is a driver architecture to make a video card's 2D hardware acceleration available to the X server. It was written by Harm Hanemaayer in 1996 and first released in XFree86 version 3.3. It was completely rewritten for XFree86 4.0.Most...

, which made the video card's 2D hardware acceleration available to the X server.

The 3D acceleration set was provided via the Direct Rendering Manager
Direct Rendering Manager
The Direct Rendering Manager is a component of the Direct Rendering Infrastructure, a system to provide efficient video acceleration on Unix-like operating systems, e.g...

, which worked by mapping 3D rendered pictures on top of the 2D picture. This had some buggy corner cases, but more or less worked, until compositing
Compositing window manager
A compositing window manager is a type of window manager. A window manager is software that draws a graphical user interface on a computer display – it positions windows, draws additional elements on windows , and controls how windows interact with each other, and with the rest of the desktop...

 entered into the desktop. This distinction has become the source of a lot of bugs, and performance problems.

EXA was introduced as a stopgap measure, to provide better integration with XRender
XRender
The X Rendering Extension is an X Window System extension to implement Porter-Duff image compositing in the X server, to allow efficient display of transparent images.- History :...

 than XAA did, improving the X.Org Server 2D performance. In practice, while this proved quite advantageous in some respects, it also exhibited a number of corner cases and regressions.

The solution was to move to hardware acceleration with OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 for both 2D and 3D graphics with 2D graphics becoming just a subset of 3D rendering. Switching entirely over is unfortunately not so simple and not without some major obstacles.

EXA was adapted from KAA, the KDrive
KDrive
KDrive is a small X Window System server implementation created by Keith Packard. Unlike the X.Org Server, KDrive was not based on XFree86 code...

 Acceleration Architecture, from the experimental Freedesktop.org
Freedesktop.org
freedesktop.org is a project to work on interoperability and shared base technology for free software desktop environments for the X Window System on Linux and other Unix-like operating systems. It was founded by Havoc Pennington from Red Hat in March 2000.The organisation focuses on the user....

 Xserver
KDrive
KDrive is a small X Window System server implementation created by Keith Packard. Unlike the X.Org Server, KDrive was not based on XFree86 code...

. Per the initial mailing list announcement, the goals are:
  1. Properly accelerate XRender
  2. Be as simple as possible.


Many XAA drivers had EXA support added for X11R6.9/7.0 and support continues to be added to more drivers. Making this transition as easy as possible was an important design consideration.

UXA
UXA
In computing, UXA is the reimplementation of the EXA graphics acceleration architecture of the X.Org Server developed by Intel. Its major difference with EXA is the use of GEM, replacing Translation Table Maps...

 is a reimplementation of the EXA API developed by Intel, using the Graphics Execution Manager
Graphics Execution Manager
The Graphics Execution Manager is a computer software system developed by Intel to do memory management for device drivers for graphics chipsets....

.

Acronym

According to the XorgGlossary, EXA is an "acceleration architecture with no well-defined acronym." Dot.kde.org called it "Eyecandy Acceleration Architecture". The driver modification guide calls it "EXcellent Architecture or Ex-kaa aXeleration Architecture or whatever."

External links

  • ExaStatus (X.Org)
  • EXA (Carl Worth's EXA development blog posts)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK