DRI2
La deuxième génération du rendu direct sous X, qui a donné à chaque fenêtre ses propres tampons et permis enfin aux programmes 3D de cohabiter avec les gestionnaires de fenêtres à composition.
Le DRI d'origine partageait un unique tampon arrière pour tout l'écran et laissait les programmes y dessiner directement sous un verrou global. Sans espoir pour Compiz et consorts, qui voulaient chaque fenêtre comme une image séparée. Kristian Høgsberg, chez Red Hat, a repensé le protocole en 2008, et il est arrivé avec le serveur X 1.6 l'année suivante. Le serveur allouait désormais des tampons privés par fenêtre ; les clients les demandaient avec DRI2GetBuffers et rendaient le résultat avec DRI2SwapBuffers. Le verrou avait disparu.
Les tampons étaient identifiés par des noms globaux GEM, des entiers de 32 bits que tout processus ayant accès au périphérique graphique pouvait deviner et ouvrir. Chaque redimensionnement coûtait en outre un aller-retour au serveur. DRI3 a corrigé les deux défauts.