>>я не очень понял, с чем связаны такие сложности с реализацией A(ccelarated)I(ndirect)GLX,
>>которое появилось значительно позднее DRI.
>
>А с тем, что в течении длительного времени X-сервер не имел доступа
>к OpenGL, ему просто некуда было слать десериализованные OpenGL-команды. Сервер только
>создавал некую низкоуровневую подстилку, позволяющую клиенту, через OpenGL обращаться к GPU В каком смысле? По крайней мере в X-API долгое время (задолго до того, как в Xorg реализовали AIGLX) были команды представляющие из себя кальку с OpenGL команд. Т.е. видимо предполагалось, что клиент напрямую использует эти команды, а как они отрисовываются на сревере (с аппаратным ускорением или без) не его, вообще говоря, дело. Я был очень удивлен, что на самом деле аппаратное ускорение этих команд при работе через сеть появилось только после внедрения AIGLX. Что же тогда клиент слал серверу через сокет (в смысле до появления AIGLX)? Готовые картинки, что-ли?
>и фреймбуферу напрямую. От сервера требовалось, если я правильно понимаю, только
>предоставить информацию, где во фреймбуфере расположено окно, куда выводить, и как
>отсекать вывод. Остальное делал клиент через DRI.
Это очень сильно зависело, работает ли клиент на том же хосте, что и сервер, или всё же через сеть. Например, на XFree (некрофилией я из чисто естествоиспытательских соображений занимаюсь, да) AIGLX нет до сих пор, поэтому при работе через сеть весь рендеринг идёт через программный OpenGL.
>[оверквотинг удален]
>>абстракции, чтобы на нем получить существенное ускорение 3D операций. Или я
>>не прав?
>
>См. выше. Если фреймбуфер (вернее, offscreen-буфер, связанный с окном) расположен в памяти
>видеокарты и доступен GPU, то ничего не мешает нам рисовать в
>него средствами OpenGL. Главное, корректно этот буфер лочить, чтобы клиент с
>сервером не поругались. Собственно, как-то так сейчас и делается у Nvidia,
>в случае включённого композитинга. Ребята из Nvidia просто сделали своего рода
>эмуляцию AIGLX без "Indirect" составляющей, т.е. рендеринг по-прежнему прямой, но в
>offscreen-буфер.