

Incomputing,EXA is a graphics acceleration architecture of theX.Org Server (see alsoX Window System) designed to replace XAA (theXFree86 Acceleration Architecture)[1] and to make theXRender extension more usable, with only minor changes needed to adapt obsoleteXFree86 video drivers written to use XAA; it was designed byZack Rusin and announced atLinuxTag 2005[2] and first released with X.Org Server version 6.9/7.0.
Historically, a distinction has been made between 2D and 3D acceleration. 2D acceleration was provided by the venerableXFree86 Acceleration Architecture, XAA, which made the video card's 2D hardware acceleration available to the X server.
The 3D acceleration set was provided via theDirect Rendering Manager, which worked by mapping 3D rendered pictures on top of the 2D picture. This had some buggy corner cases, but more or less worked, untilcompositing 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 withXRender 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 withOpenGL 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, theKDrive Acceleration Architecture, from the experimentalFreedesktop.orgXserver. Per the initial mailing list announcement,[3] the goals are:
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.[4]
UXA is a reimplementation of the EXA API developed by Intel, using theGraphics Execution Manager.[5]
TheRadeon free and open-source device driver supports 2D acceleration through EXA andGlamor.[6]
Glamor is supposed to obsolete all previous attempts.[7]
According to the X.Org web site[8]EXA is an"acceleration architecture with no well-defined acronym." Dot.kde.org called it "Eyecandy Acceleration Architecture".[9] The driver modification guide[4] calls it "EXcellent Architecture or Ex-kaa aXeleration Architecture or whatever."