Новости X.org - DRM2, DRI3 (DRI-Next), EGL, отказ от GLX

После прошедшей конференции XDC2012, организованной SUSE, на которой присутствовали и наши друзья по Fedora Project, разработчики X.org начали работу над довольно радикальными нововведениями, о которых хотелось бы рассказать.

Для начала, инженер NVIDIA, Andy Ritger предложил изменить ABI OpenGL в Linux, и его предложение было встречено с большим энтузиазмом. Оно стандартизирует разделение на Vendor-independent и Vendor-dependent части OpenGL, что позволит легче устанавливать различные реализации OpenGL параллельно. Сейчас любая реализация обязана предоставлять библиотеку с заранее заданным названием - %{_libdir}/libGL.so.1, что естественным образом приводит к различным конфликтам при апдейтах - представляю, сколько головной боли это создает инженерам NVIDIA с их проприетарным блобом.

Это предложение естественным образом перетекло в обсуждение того, как бы попроще перейти с GLX на EGL? Инфраструктурная проблема с GLX в том, что на самой популярной Linux-платформе, т.е. Android, она лишняя. Там нужен OpenGL ES (а его проще всего реализовывать через EGL) и никогда не будет никакого GLX, т.к. не используется X-сервер. Wayland также изначально работает с EGL, а не с GLX. Это приводит к тому, что разработчикам нужно поддерживать и GLX, и EGL, что становится все тяжелее. Техническая-же проблема с ним в том, что он требует "indirect rendering" (т.е. выполняться будет с помощью X-сервера), а эта функциональность будет вскоре удалена в пользу "direct rendering" с помощью DRI. Инженеры Intel уже рекомендуют ориентироваться на возможности EGL, а не GLX. Популярный проприетарный вариант Unix от Apple так-же не предоставляет GLX, зато в нем есть EGL (EAGL). Интересно, что оказалось очень легко переходить (например с OpenGL ES) на EGL, что и сделали разработчики KDE. Они начали перевод KWin с GLX на EGL, и уже готовы продемонстрировать результат. Пока в KWin по умолчанию будет GLX, но это уже серьезный шаг вперед, в т.ч.и к полной независимости от X-сервера (читай, к переходу KDE на Wayland).

Помимо этого был обсужден DRI3 / DRI-Next, в котором наконец-то будут внесены улучшения безопасности, исправления синхронизации (в т.ч. касающиеся и Wayland) и переход на использование DMA-BUF. Предложенное более года назад DRI2Video (которое выкинет в мусорку еще один первобытный костыль для X11, XVideo), скорее всего тоже пойдет в DRI3.

И в последнюю очередь, но, конечно, не последним по значимости, хотелось бы отметить предложенный стандарт DRM2 - в нем основное внимание уделили вопросу безопасности, и уже начали поступать патчи, реализующие предложенное. Проблема с текущим DRM в том, что любой локальный пользователь имеет доступ разделяемым буферам всех X-серверов в системе, даже не имея прав доступа к самим серверам (что фатально для Multi-Seat конфигураций, например). Как и всегда - прилепили к порочной архитектуре костыль, который оказалось непросто исправить. Ожидается, что с переходом на kmscon и с помощью SELinux эта лазейка будет закрыта окончательно.

Что-то давно не было новостей об OpenCL, что немного разочаровывает. Будем ждать.

И напоследок - фотка. Эти великие люди не ноют по форумам, а предпочитают программировать, и об ошибках сообщают в bug-tracker, а не в твиттер:



Найди себя, %username%.