EXA

Last updated
The XAA/EXA/UXA/SNA APIs are for the 2D graphics drivers inside the X server. Note, that modern software uses direct rendering. Linux graphics drivers 2D.svg
The XAA/EXA/UXA/SNA APIs are for the 2D graphics drivers inside the X server. Note, that modern software uses direct rendering.
Glamor obsoletes DDX, here with XWayland. The Linux Graphics Stack and glamor.svg
Glamor obsoletes DDX, here with XWayland.

In computing, EXA is a graphics acceleration architecture of the X.Org Server (see also X Window System) designed to replace XAA (the XFree86 Acceleration Architecture) [1] and to make the XRender extension more usable, with only minor changes needed to adapt obsolete XFree86 video drivers written to use XAA; it was designed by Zack Rusin and announced at LinuxTag 2005 [2] and first released with X.Org Server version 6.9/7.0.

Computing Activity that uses computers

Computing is any activity that uses computers to manage, process, and communicate information for various purposes. It includes development of both hardware and software. Computing is a critical, integral component of modern industrial technology. Major computing disciplines include computer engineering, software engineering, computer science, information systems, and information technology.

X.Org Server is the free and open-source implementation of the display server for the X Window System stewarded by the X.Org Foundation.

X Window System windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

Contents

History

Historically, a distinction has been made between 2D and 3D acceleration. 2D acceleration was provided by the venerable 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, 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 entered into the desktop. This distinction has become the source of a lot of bugs, and performance problems.

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 such as configuring the mode setting of the display. DRM was first developed as the kernel space component of the X Server's Direct Rendering Infrastructure, but since then it has been used by other graphic stack alternatives such as Wayland.

A compositing window manager, or compositor, is a window manager that provides applications with an off-screen buffer for each window. The window manager composites the window buffers into an image representing the screen and writes the result into the display memory.

EXA was introduced as a stopgap measure, to provide better integration with XRender 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.

X Rendering Extension

The X Rendering Extension is an extension to the X11 core protocol to implement image compositing in the X server, to allow an efficient display of transparent images.

The solution was to move to hardware acceleration with 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.

OpenGL application programming interface for rendering 2D and 3D vector graphics

Open Graphics Library (OpenGL) 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 hardware-accelerated rendering.

EXA was adapted from KAA, the KDrive Acceleration Architecture, from the experimental Freedesktop.org Xserver. Per the initial mailing list announcement, [3] the goals are:

freedesktop.org (fd.o) is a project to work on interoperability and shared base technology for free software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. It was founded by Havoc Pennington from Red Hat in March 2000. The project's servers are hosted by Portland State University, which in turn are sponsored by HP, Intel and Google.

  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. [4]

UXA is a reimplementation of the EXA API developed by Intel, using the Graphics Execution Manager. [5]

The Radeon free and open-source device driver supports 2D acceleration through EXA and Glamor. [6]

Glamor is supposed to obsolete all previous attempts. [7]

Acronym

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

See also

Related Research Articles

XFree86 implementation of the X Window System

XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It was developed by the XFree86 Project, Inc. The lead developer was David Dawes. The last released version was 4.8.0, released December 2008. The last XFree86 CVS commit was made on May 18, 2009; the project was confirmed dormant in December 2011.

GLX is an extension to the X Window System core protocol providing an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. It enables programs wishing to use OpenGL to do so within a window provided by the X Window System. GLX distinguishes two "states": indirect state and direct state.

Keith Packard is a software developer, best known for his work on the X Window System.

Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source software implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.

Xgl display server

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 and XVideo applications and graphical effects by a compositing window manager such as Compiz or Beryl. The project was started by David Reveman of Novell and first released on January 2, 2006. It was removed from the X.org server in favor of AIGLX on June 12, 2008.

Free and open-source graphics device driver

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

X-Video Motion Compensation (XvMC), is an extension of the X video extension (Xv) for the X Window System. The XvMC API allows video programs to offload portions of the video decoding process to the GPU video-hardware. In theory this process should also reduce bus bandwidth requirements. Currently, the supported portions to be offloaded by XvMC onto the GPU are motion compensation and inverse discrete cosine transform (iDCT) for MPEG-2 video. XvMC also supports offloading decoding of mo comp, iDCT, and VLD for not only MPEG-2 but also MPEG-4 ASP video on VIA Unichrome hardware.

nouveau (software) Open source software driver for nVidia GPU

nouveau is a free and open-source graphics device driver for Nvidia video cards and the Tegra family of SoCs written by independent software engineers, with minor help from Nvidia employees.

Unified Video Decoder (UVD), previously called Universal Video Decoder, is the name given to AMD's dedicated video decoding ASIC. There are multiple versions implementing a multitude of video codecs, such as H.264 and VC-1.

The Evergreen series is a family of GPUs developed by Advanced Micro Devices for its Radeon line under the ATI brand name. It was employed in Radeon HD 5000 graphics card series and competed directly with Nvidia's GeForce 400 Series.

AMD Radeon Software

AMD Radeon Software is a device driver and utility software package for Advanced Micro Devices's graphics cards and APUs. It is built using the Qt toolkit and runs on Microsoft Windows and Linux, 32- and 64-bit x86 processors.

The Socket FS1 is for notebooks using AMD APU processors codenamed Llano, Trinity and Richland.

AMD's Socket FT3 or BGA-769 targets mobile devices and was designed for APUs codenamed Kabini and Temash, Beema and Mullins.

The Socket FT1 or BGA413 is a CPU socket released in January 2011 from AMD for its APUs codenamed Desna, Ontario, Zacate and Hondo. The uber name is "Brazos".

The Socket FP2 or µBGA-827 is a CPU socket for notebooks that was released in May 2012 by AMD with its APU processors codenamed Trinity and Richland.

The Socket FP3 or µBGA906 is a CPU socket for laptops that was released in June 2014 by AMD with its mobility APU products codenamed Kaveri.

AMD Radeon Rx 300 series series of video cards

The Radeon R5/R7/R9 300 series is a series of Radeon graphics cards made by Advanced Micro Devices (AMD). All of the GPUs of the series are produced in 28 nm format and use the Graphics Core Next (GCN) micro-architecture.

References

  1. Summer coding Archived 2005-11-18 at the Wayback Machine (Zack Rusin blog entry, 3 June 2005)
  2. Acceleration Architecture (initial LinuxTag presentation by Zack Rusin)
  3. New acceleration architecture (announcement on Xorg mailing list, Zack Rusin, 25 June 2005)
  4. 1 2 Jesse Barnes (2006-03-09). "Adding EXA support to your X.Org video driver" . Retrieved 2010-05-18.
  5. UMA Acceleration Architecture
  6. "Radeon Feature Matrix". freedesktop.org .
  7. "What is Glamor?". freedesktop.org .
  8. "Glossary". X.Org Foundation. Retrieved 29 April 2015.
  9. New Acceleration Architecture for X.org (dot.kde.org, 28 June 2005)