Есть простейший пример, иллюстрирующий убогость dri. Кстати, эта убогость и в винде есть.
В современных gpu есть вполне нормальные mmu, причем в радеонах их несколько, от 4х в слабых чипах по 16 в топах и si. Тупо несколько mmu, которые работают параллельно. Обычно их все не юзают(на радеонах только vm0 в открытых дровах), но всё можно сделать круче.
Короче, Я предлагаю отказаться от понятия буфера, текстуры и т.д. оставить торчать из ведра вызовы для резервирования памяти на видяхе и remapа. Текстуры можно эмулировать в userspace, а remap вручную позволит избавиться от ttm в ядре, гнусного костыля gem, и флипать doublebuffered текстуры не целиком, а тайлами: очень поможет в плане кпд всяким wayland и dri2, ибо не надо будет перерисовывать все окно изза мелкого обновления
В общем, сама концепция буферов убога. Можно резко упростить dri, и сделать его более гибким.
А вы спорите про то, что лучше : x или wayland. А реформы нужны глубжее, чем смена протокола