# EXA

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/EXA
> Markdown URL: https://mediated.wiki/source/EXA.md
> Source: https://en.wikipedia.org/wiki/EXA
> Source revision: 1184559903
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{About|the computer architecture|other uses|Exa (disambiguation)}}
{{short description|Graphics acceleration architecture}}
[[File:Linux graphics drivers 2D.svg|thumb|The XAA/EXA/UXA/SNA APIs are for the 2D graphics drivers inside the [X server](/source/display_server). Note, that modern software uses [direct rendering](/source/Direct_Rendering_Manager).]]
[[File:The Linux Graphics Stack and glamor.svg|thumb|[Glamor](/source/Glamor_(software)) obsoletes [DDX](/source/Device_Dependent_X), here with [XWayland](/source/XWayland).]]
In [computing](/source/computing), '''EXA''' is a graphics acceleration architecture of the [X.Org Server](/source/X.Org_Server) (see also [X Window System](/source/X_Window_System)) designed to replace XAA (the [XFree86 Acceleration Architecture](/source/XFree86_Acceleration_Architecture))<ref>{{usurped|1=[https://web.archive.org/web/20051118095054/http://www.kdedevelopers.org/node/1122 Summer coding]}} (Zack Rusin [blog](/source/blog) entry, 3 June 2005)</ref> and to make the [XRender](/source/X_Rendering_Extension) extension more usable, with only minor changes needed to adapt obsolete [XFree86](/source/XFree86) video drivers written to use XAA; it was designed by [Zack Rusin](/source/Zack_Rusin) and announced at [LinuxTag](/source/LinuxTag) 2005<ref>[http://wiki.x.org/wiki/LinuxTagMeeting2005Zack Acceleration Architecture] (initial LinuxTag presentation by Zack Rusin)</ref> 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](/source/XFree86_Acceleration_Architecture), XAA, 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](/source/Direct_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, until [compositing](/source/compositing_window_manager) 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](/source/X_Rendering_Extension) 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](/source/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](/source/KDrive) Acceleration Architecture, from the experimental [Freedesktop.org](/source/Freedesktop.org) [Xserver](/source/KDrive). Per the initial mailing list announcement,<ref>[http://lists.freedesktop.org/archives/xorg/2005-June/008321.html New acceleration architecture] (announcement on Xorg mailing list, Zack Rusin, 25 June 2005)</ref> the goals are:

# Properly accelerate XRender
# 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.<ref name="exa-driver.txt">{{cite web|url=https://gitlab.freedesktop.org/xorg/xserver/blob/master/hw/xfree86/doc/exa-driver.txt|title=Adding EXA support to your X.Org video driver|author=Jesse Barnes|accessdate=2010-05-18|date=2006-03-09}}</ref>

[UXA](/source/UXA) is a reimplementation of the EXA API developed by Intel, using the [Graphics Execution Manager](/source/Graphics_Execution_Manager).<ref>[http://keithp.com/blogs/UMA_Acceleration_Architecture/ UMA Acceleration Architecture]</ref>

The [Radeon free and open-source device driver](/source/Free_and_open-source_graphics_device_driver) supports 2D acceleration through EXA and [Glamor](/source/Glamor_(software)).<ref>{{cite web |url=http://xorg.freedesktop.org/wiki/RadeonFeature/ |title=Radeon Feature Matrix |work=[freedesktop.org](/source/freedesktop.org)}}</ref>

[Glamor](/source/Glamor_(software)) is supposed to obsolete all previous attempts.<ref>{{cite web |url=http://www.freedesktop.org/wiki/Software/Glamor/ |title=What is Glamor? |work=[freedesktop.org](/source/freedesktop.org)}}</ref>

==Acronym==
According to the X.Org web site<ref>{{cite web|title=Glossary|url=http://www.x.org/wiki/Development/Documentation/Glossary/|publisher=X.Org Foundation|accessdate=29 April 2015}}</ref> ''EXA'' is an ''"acceleration architecture with no well-defined acronym."'' Dot.kde.org called it "Eyecandy Acceleration Architecture".<ref>[http://dot.kde.org/2005/06/28/new-acceleration-architecture-xorg New Acceleration Architecture for X.org] (dot.kde.org, 28 June 2005)</ref> The driver modification guide<ref name="exa-driver.txt"/> calls it "EXcellent Architecture or Ex-kaa aXeleration Architecture or whatever."

==See also==
* [Direct Rendering Infrastructure](/source/Direct_Rendering_Infrastructure) (DRI)
* [Mesa 3D](/source/Mesa_3D)
* [EGL](/source/EGL_(API))
* [Glamor](/source/Glamor_(software))
* [SNA](/source/SNA_(computer_graphics))

==References==
<references/>

==External links==
*[http://xorg.freedesktop.org/wiki/ExaStatus ExaStatus] (X.Org)
*[http://cworth.org/tag/exa/ EXA] (Carl Worth's EXA development blog posts)

{{DEFAULTSORT:Exa}}
Category:X-based libraries

---
Adapted from the Wikipedia article [EXA](https://en.wikipedia.org/wiki/EXA) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/EXA?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
