XAA
De eerste gedeelde laag voor 2D-versnelling in XFree86: de driver vulde een tabel in met wat de kaart kon, en XAA deed de rest in software.
Vóór XFree86 3.3 in 1997 schreef elke grafische driver zijn eigen versnelling, en de meeste schreven er geen. Harm Hanemaayer bouwde de XFree86 Acceleration Architecture om daar verandering in te brengen: de driver registreert hardwareroutines voor een reeks primitieven – rechthoeken vullen, kopieën van scherm naar scherm, monochrome patronen omzetten naar kleur voor tekst, lijnen tekenen – en XAA weeft die in de tekencode van de server, met een softwarematige terugval voor al het andere. Mark Vojkovich herschreef het geheel voor XFree86 4.0 in 2000, en een decennium lang tekende elke ATI-, Matrox- en S3-kaart zo zijn vensters onder Linux.
Het probleem was dat de lijst met primitieven de blitter van een kaart uit 1995 weerspiegelde. Toen XRender kwam met alfablending en gladgestreken tekst, was er geen hardwarepad en viel compositing terug op software, waardoor bureaubladen haperden op kaarten die veel meer konden. Nieuwere kaarten hadden bovendien al snel alleen nog 3D-engines over om aan te sturen. EXA nam het in 2005 over, en XAA werd in 2012 uit de X.Org-server verwijderd.