"Currently, X can make use of 3 types of hardware access:
indirect access, DRI1 and DRI2. I covered how and when each of them
appeared. Here, I'll give more detailed explanations.
"In order to not reprogram each and every driver every time X
changes, an ABI was created (then superseded) to allow X to
communicate with every DDX driver in the same way.
"To perform an operation, say, draw an ellipse, fill it with a
colour, X issues a command under XAA (originally, now it's more
often EXA/UXA) format, to the DDX driver; said driver translates
the command in a way the hardware can understand."