LINUX.ORG.RU

IndirectGLX + software openGL rendering - не работает на современных линуксах

 , , , ,


2

2

Народ, возникла следующая проблема:

у меня есть необходимость запускать X приложения на машинах, на которых нет запущенного X сервера. Т.е. эта та пресловутая сетевая прозрачность X протокола. Это часть работает хорошо и полностью устраивает, но иногда этим приложением нужно отрисовать что-то используя openGL. Это не игры, а инженерная графика, и в принципе производительность устраивала, даже учитывая что все это отрисовывалось программно, без 3д ускорения.

Т.е. схема такая:

узел, где запускается приложение (node) ----> сервер с Xorg (server)

и сервер и узел - это линукс машины x86_64. на сервере вообще нет видео карты, Xserver там использует драйвер xorgxrdp, далее картинка уходит в xrdp и клиенту на винде по rdp протоколу.

эта схема работала хорошо до версии (включая) Xorg 1.19.3, т.е. X клиенты могли отображать 3д через openGL на X сервере используя протокол GLX. Кроме того эта схема работает, если в качестве сервера используем windows машину с запущенным X сервером например стареньким Xming - причем в этом случае мы можем даже ускорять openGL через драйвер wgl и видеокарту хоста.

но потом система на сервере обновилась (драму можно прочитать тут CentOS 7 - недоступность промежуточных подрелизов) и отвалилась openGL графика.

Это выражается в том, что любое приложение которое хочет вывести графику через openGL - выводит в это место черный квадрат.

Эта проблема присутствует на следующих системах которые я протестировал: CentOS 7.6, fedora - 27,28,29, ubuntu 18.4,18.10, debian 9, на всех этих системах Xorg новее чем 1.19.3.

Cистемы на которых все работает: CentOS до 7.4 включительно (7.5 не проверял), openSuse 42.3 и на wnindows/Xming и другие x серверы для виндовс.

Как эту проблему смоделировать, без дополнительных ПК или виртуальных машин:

  1. убедиться, что IndirectGLX разрешен, в последних версиях Xorg его по умолчанию выключили. Т.е. если glxinfo -i выводит ошибку - то IGLX выключен. Что-бы включить - либо в командную строку Xorg добавляем +iglx, либо бросаем drop-in файл в /etc/X11/xorg.con.d/ с произвольным именем, например 10-iglx.conf с содержанием:
    Section "ServerFlags"
        Option "IndirectGLX" "on"
    EndSection
    
  2. запускаем любое приложение использующее openGL, например glx gears, следующим образом:
    $ LIBGL_ALWAYS_INDIRECT=1 LIBGL_ALWAYS_SOFTWARE=1 glxgears 
    
    в итоге видим черный квадрат на проблемных системах.

    естественно речь не идет о системах с пропиетарным драйвером nVidia, там libGL другой и вся система по другому работает

так же на проблемных системах команда

$ xdpyinfo
в списке расширений не показывает расширение SGI-GLX, которое присутствует на тех системах где работает.

ну и glxinfo -i на проблемных системах выводит пустые строки на против OpenGL, ниже часть вывода:

$ glxinfo - i
<...>
OpenGL vendor string:
OpenGL renderer string:
OpenGL version string:
OpenGL extentions:
[тут всего 4 расширения]
<...>

Соответственно вопрос - знает ли кто как это поправить? Куда писать про проблему - в багтрекер Xorg, mesa, coentos?

★★

У Ubuntu 16.04 https://packages.ubuntu.com/xenial-updates/xserver-xorg-core

Потому можно её использовать, у неё теперь 10-летняя поддержка, главное — не ставить HWE компоненты, они новее и бекпортированны. Попробую проверить эти предположения на виртуалке.

Vsevolod-linuxoid ★★★★★ ()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

понятно,что можно развернуть это на легаси решении и в принципе я так и собираюсь сделать, но мне кажется что ситуация не нормальная.

либо что-то не правильно настроено, либо это серъезная бага.

Проблема что за последнее время графический стэк так поменялся на линуксе, что непонятно как это сейчас должно работать. В инетрнете много информации которая уже устарела. И найти что-то актуальное в этом информационном шуме - очень тяжело.

Пробовал писать в канал #xorg на freenode, но там вообще никакой реакции. На этот канал отправляют с x.org за поддержкой пользователей.

vyv ★★ ()

С проприетарным драйвером NVIDIA по-моему работает же? Используйте его, 100% приложений разрабатываются с прицелом на него.

anonymous ()
Ответ на: комментарий от anonymous

nVidia драйвер - это хорошо, но не вписывается в схему а) на сервере нет видеокарты - это вообще виртуальная машина б) даже если карта там будет, то завернуть картинку в rdp вряд ли получится, тут уже скорее нужно что-то VirtualGL + turboVNC

vyv ★★ ()
Ответ на: комментарий от Khnazile

IndirectGLX судя по всему сломан капитально. Ни с программной отрисовкой ни с аппаратной (смотрел на intel i915 и amdgpu) не работает :(

Печально, потому как на Xorg 1.19.3 работает как швейцарские часы, не говоря уже о более старых версиях...

Похоже, что-бы не чинить это они и выключили его по умолчанию (

vyv ★★ ()
Ответ на: комментарий от mironov_ivan

Поставьте там палец вверх, напишите какой-нибудь коммент

У меня уже есть один аккаунт на freedesktop.org, но логин и пароль от него не подходят к их gitlab. Регистрировать еще один я не собираюсь, уж извините.

Khnazile ★★★★ ()
Последнее исправление: Khnazile (всего исправлений: 1)
Ответ на: комментарий от mironov_ivan

Ты прав, мне действительно насрать, т.к. это даже не мой баг, я просто про него знал, т.к. иногда читаю списки рассылки.
Но даже если тебе не насрать, ты можешь хоть каждую неделю и трейсы с разных компьютеров прицеплять, и патчи прицеплять, но это тебе никак не поможет. В старой багзилле есть целая куча багов, по которым в ветках разработчиков были исправления, но в апстрим они так и не попали по различным причинам.

Khnazile ★★★★ ()

Пусть лучше virgl мне починят, а то вендодрайвер вроде как работает, а приложения нет. Можно даже вулкан запилить, это же интересно? Сколько уже этих студней было, куда-то они уже на первом этапе сливаются, сразу после первых результатов.

Правда эта фича наверное обратная тому, что хочет ТС, но пусть уже хоть что-нибудь сделают. Чёртов вулкан, если бы не это дерьмо, наверняка сейчас было бы больше софта. Ненавижу все эти канониклы с гномами, перетягивающие одеялко.

anonymous ()
Ответ на: комментарий от anonymous

Чёртов вейланд конечно, по вулкану претензии несколько не по адресу. Дрова кривое гуано, с этим не поспоришь. Мне кажется это следствие того что все деньги в мобильном рынке и иот, оставшееся приходится на венду. Всем насрать на десктопы.

anonymous ()

знает ли кто как это поправить?

К сожалению, тут нужно либо копать самому, либо искать человека, который будет целенаправленно копать. Вряд ли большое количество людей с этим багом столкнутся, поэтому его приоритет всегда будет маленьким. Сам по себе он не починится.

Куда писать про проблему - в багтрекер Xorg, mesa, coentos?

Судя по тому, что у меня упал X.Org, дело не в Mesa. Возможно, там тоже проблема, но в любом случае иксы падать от такого не должны. Поэтому — в багтрекер X.Org. Ну и заодно в багтрекер дистрибутива с указанием ссылки на баг в X.Org.

i-rinat ★★★★★ ()