XAA
A primeira camada compartilhada de aceleração 2D do XFree86: o driver preenchia uma tabela do que a placa sabia fazer, e o XAA cuidava do resto em software.
Antes do XFree86 3.3, em 1997, cada driver gráfico escrevia sua própria aceleração, e a maioria não escrevia nenhuma. Harm Hanemaayer criou a XFree86 Acceleration Architecture para mudar isso: o driver registra rotinas de hardware para um conjunto de primitivas – preencher retângulos, copiar de tela para tela, expandir padrões monocromáticos em cor para texto, traçar linhas – e o XAA as integra ao código de desenho do servidor, com um recurso de software para todo o resto. Mark Vojkovich reescreveu tudo para o XFree86 4.0, em 2000, e durante uma década foi assim que toda placa ATI, Matrox e S3 desenhava janelas no Linux.
O problema era que a lista de primitivas espelhava o blitter de uma placa de 1995. Quando o XRender chegou, com mistura alfa e texto suavizado, não havia caminho em hardware, então a composição caía para o software, e os desktops engasgavam em placas capazes de muito mais. As placas mais novas, além disso, logo passaram a ter apenas motores 3D para acionar. O EXA assumiu em 2005, e o XAA foi retirado do servidor X.Org em 2012.