For each type of graphics card there is a Device Dependent X (DDX) driver which does initialization, manages the display and performs 2D rendering. XFree86 4.0 introduced a new device driver interface called XAA which should allow XFree86 drivers to be backward compatible with future versions of the X server.

Each 2D driver has a bit of code to bootstrap the 3D / DRI features.

Where does the DDX driver resides?

The DDX drivers reside in a package called xf86-video-foo, where foo is usually the company that produces the hardware, or the hardware brand name, or something related (e.g. xf86-video-intel, xf86-video-ati, xf86-video-nouveau). The open source drivers are developed using ?Git and hosted on git.freedesktop.org, which is accessible via a web interface at http://cgit.freedesktop.org/.

The source code to the part of the DDX which is relevant to DRI and thus 3D acceleration is typically in files called *_dri.[ch].

Possible future developments

With the introduction of ?Kernel Mode Setting, it has become possible to write a generic DDX, called xf86-video-modesetting. This is only an experiment as of this writing (October 2008). The generic DDX would use a Gallium3D backend for hardware acceleration purposes.

At XDC 2009, it was suggested to move many of the "main" DDX back into the X server Git repository.

Todo: Merge/Link this page to something in the main X.org Wiki to avoid redundancy?