From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FSL_HELO_HOME autolearn=no autolearn_force=no version=3.4.1 Date: Wed, 31 May 2017 22:23:38 +0200 From: Konstantin Lepikhov To: ALT Linux Devel Mailing List Message-ID: <20170531202338.GA3165@lks.home> Mail-Followup-To: ALT Linux Devel Mailing List MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Operation-System: ALT Linux starter kit (Trientalis) 4.8.0-lks-wks-alt2 User-Agent: Mutt/1.6 (2015-08-30) Subject: [devel] Q: libGL* transition to GLVND X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 May 2017 20:23:43 -0000 Archived-At: List-Archive: List-Post: Привет! Поначалу я это собрал для себя, ну раз оно собралось и заработало, решил спросить нужно ли это в Сизифе. Что такое GLVND? Грубо говоря, это такая библиотека, которая позволяет перенаправлять стандартные вызовы в libGL в vendor-specific библиотеку, которую предоставляет соответствующий пакет. Например, в случае dri/gallium это будет Mesa, а в случае nvidia - блоб от nvidia. Поддерживается функционал libGL, libEGL и GLES, заявлена поддержка wayland. Чем это интересно? Тем, что больше не нужны костыли, которые переключают *GL библиотеки в случае установки vendor-specific и несовместимых с Mesa 3D драйверов. В случае ALTLinux это множество костылей и подпорок которые живут в %_libexec/X11/* и %_sysconfdir/X11/%_lib. Как положительный момент, улучшается поддержка железа и в системе могут одновременно сосушествовать несколько библиотек, что также упрощает поддержку на уровне начальной конфигурации и установки. Еще положительный момент - возможность тестирования библиотек не удаляя или пересобирая системные, т.к. libGL загрузчик не меняется и все вызовы остаются на своих местах. Полное описание процесса [1]. Также полезно ознакомиться в документом [2] от Fedora/RH, где переезд уже случился. На практике потребуется свежая сборка libglvnd, mesa с поддержкой этого хозяйства, и патчинг всего, что перестало работать после переезда. У меня сломался только xdriinfo и он уже починен в RH (сборка отправлена в сизиф, но пока ждет approve от владельца пакета). Еще это все нужно бутстрапить, т.е. собрать libglvnd, пересобрать mesa с bootstrap headers, потом пересбрать mesa с полным набором. В случае mesa я пошел по самому легкому пути, т.е. собрал свежий snapshot из git и включил там glvnd. Как следствие, еще туда же собрался и llvm5. Из текущих проблем: - GPU autodetect в xorg server работает очень странно, надо разбираться кто виноват, патчи от ALTLinux или апстрим. - Нельзя переключить libglx (в случае nvidia это необходимо). - Непонятно, работают ли с этим дрова от AMD (которые AMDGPU PRO). Также я собрал ознакомительный livecd [3] который любой может поставить и посмотреть, как это выглядит на практике без установки всех пакетов в систему. Репозиторий с пакетами [4], исходные коды доступны у меня на git.alt. Рад выслушать любые отзывы и предложения с обоснованиями. Спасибо за внимание! 1. https://github.com/NVIDIA/libglvnd 2. https://fedoraproject.org/wiki/Changes/Vendor_Neutral_libGL 3. http://www.unsafe.ru/lakostis/livecd/current/live-lakostis-20170526-x86_64.iso 4. http://www.unsafe.ru/lakostis/RPMS/ALTLinux/glvnd/ -- WBR et al.