Glossary
- DDX: Device Dependent X. The part of X that interacts with the hardware. There have been many of these over the years:
xfree86
, kdrive
, xwin
(for Windows), darwin
(for OS X), xgl, vfb
, xnest
, and so forth. In the X server code, each directory under hw corresponds to one DDX. One DDX may have one or more device drivers. In the xfree86
DDX, each driver is a separate loadable module; in most of the other DDXes, each driver is compiled to its own server binary. Contrast: DIX.
- DIX: Device Independent X. The part of X that interacts with clients and implements software rendering. Basically everything in the server except for the
hw/
directory. The event delivery is part of the DIX.
- DMX: Distributed Multihead X, which allows combining several backend X servers into a single virtual X server.
- DRI: Direct Rendering Infrastructure. A way for X clients to send commands directly to the graphics card. Primarily used to make GLX go fast, but also involved in accelerating XvMC. All the open drivers, and many of the closed drivers, use the DRI to accelerate GLX.
- EGL: Embedded-System Graphics Library. The interface between rendering APIs such as OpenGL ES and the underlying native platform window system, such as X.
- EXA: Acceleration architecture with no well-defined acronym. Based on the kdrive acceleration architecture (KAA) but with some additional features and cleanups, and designed to be used within the
xfree86
DDX.
- git master: A term to refer to the master branch in the X server's git repository (see http://cgit.freedesktop.org). The master branch is the default when you get the X server sources, and it is where most of the development happens.
- GLX: OpenGL extension for X. Provides a way to do OpenGL drawing into a window managed by the X server. Almost always available in software. The open drivers use the DRI to accelerate GLX.
- KAA: kdrive acceleration architecture. Used in the
kdrive
DDX to accelerate core X drawing and Render. Much simpler than XAA, but with fewer restrictions on the use of offscreen memory, which is important for effectively accelerating Render.
- MI: machine independent. Routines that should run on pretty much any hardware
- OpenGL: Open Graphics Library. The standard cross-platform API for 2D and 3D rendering. OpenGL needs a binding layer to the window system to actually display anything; relevant ones to X are GLX and EGL.
- Render: An extension to the X protocol that exposes the Porter-Duff image compositing model. Unlike the core X drawing requests, the Render extension is capable of doing alpha blending. Primarily used right now to implement antialiased fonts, but is also used by the
xcompmgr
demo to implement drop shadows and translucency.
- XAA: XFree86 Acceleration Architecture. Used in the
xfree86
DDX to accelerate core X drawing requests and Render. Not really suitable for modern desktop usage anymore. Intended to be replaced by EXA in the xfree86
DDX, or by the XGL DDX.
- XGL: X on OpenGL. A DDX that uses an OpenGL stack to do its rendering. The XGL DDX has several drivers: Xglx to display on a GLX surface, a la Xnest; Xegl, to display an native EGL screen; and potentially also Xwgl and Xagl to display on win32 and OSX windows. Xgl was removed from git master on the 12 June 2008 after having been orphaned for years.
Another, larger but more X Protocol oriented glossary can be found at http://www.rahul.net/kenton/xglossary.html