LINUX.ORG.RU

GLX отваливается на интеловских дровах

 ,


0

1
$ glxinfo
name of display: :0
Error: couldn't find RGB GLX visual or fbconfig

$ /usr/sbin/lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)

Xorg.0.log: https://pastebin.com/f31qU17g

make.conf: https://pastebin.com/XcmZWhbw

Интересные места из лога:

[    29.652] (II) Loading sub module "glamoregl"
[    29.652] (II) LoadModule: "glamoregl"
[    29.652] (II) Loading /usr/lib64/xorg/modules/libglamoregl.so
[    29.652] (II) Module glamoregl: vendor="X.Org Foundation"
[    29.652]    compiled for 1.19.6, module version = 1.0.0
[    29.652]    ABI class: X.Org ANSI C Emulation, version 0.4
[    29.652] (II) glamor: OpenGL accelerated X.org driver based.
[    29.654] (II) glamor: EGL version 1.4 (DRI2):
[    29.654] EGL_MESA_drm_image required.
[    29.654] (EE) modeset(G0): glamor initialization failed
[    29.728] (II) AIGLX: Screen 0 is not DRI2 capable
[    29.728] (EE) AIGLX: reverting to software rendering
[    29.728] (EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed (/usr/lib64/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
[    29.728] (EE) GLX: could not load software renderer
[    29.728] (II) GLX: no usable GL providers found for screen 0 

На самом деле есть ещё чип от нвидии, но я не добавлял ни нуво, ни блоб в VIDEO_CARDS. Ручное добавление glamore в USE, как советуют тута, не приводит ни к каким пересборкам. Копипастинг xorg-овского конфига из той же секции тоже не шибко помогает - я так подозреваю, что обе операции проделываются автоматически при отсутствии в конфигах.

Как это вообще фиксить?

В целом оконный менеджер запускается, браузер работает, даже mpv видосики проигрывает, но невозможность покрутить glxgears ощущается примерно как шило в заднице.

(если честно, я понятия не имею, что такое GLX, AIGLX, glamore и как это всё работает и связывается друг с другом, я просто хочу покрутить шестерёнки в glxgears и успокоиться, почему ничего не работает, мне страшно, тут какие-то ошибки, помогите, пожалуйста)


Ответ на: комментарий от ZenitharChampion
$ equery b /usr/lib64/xorg/modules/extensions/libglx.so 
 * Searching for /usr/lib64/xorg/modules/extensions/libglx.so ... 
x11-base/xorg-server-1.19.6 (/usr/lib64/xorg/modules/extensions/libglx.so)

Я, конечно, всё понимаю, но этого я не понимаю. Если ты прав и это нвидиевская реализация, то что она делает в xorg-server?

Кстати, у xorg-server флаг glamore установлен.

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

eselect opengl list

xorg-x11 и ни строчкой больше

просмотр файлов в /etc/X11

чё, прям всех?

$ tree /etc/X11/
/etc/X11/
├── chooser.sh
├── Sessions
│   ├── i3wm
│   └── Xsession
├── startDM.sh
├── xinit
│   ├── xinitrc
│   ├── xinitrc.d
│   │   ├── 00-xhost
│   │   └── 80-dbus
│   └── xserverrc
└── xorg.conf.d
    ├── 01keyboard.conf
    ├── 02touchpad.conf
    └── 20opengl.conf
хотя вон тот один файлик в конце, 20opengl.conf, вызывает у меня подозрения, т.к. был в xorg.conf.d изначально и, судя по названию, как-то связан с opengl

содержимое:

Section "Files"
EndSection

Конфиг ядра тоже бы не помешал

genkernel all

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

А покажи ещё
eselect mesa list

У меня ещё такая штука есть:
cat /etc/X11/xorg.conf.d/20-intel.conf
Section «Device»
Identifier «Intel Graphics»
Driver «intel»
Option «AccelMethod» «sna»
Option «TearFree» «true»
Option «DRI» «3»
EndSection

20opengl.conf тоже пустой

Ну и glxinfo | grep glx
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:

И шестерёнки крутятся
211 frames in 5.0 seconds = 42.025 FPS
Голый интел без энвидиа.

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

У тебя драйвер intel, а на вики говорят, что самый модный - это modesetting, который ставится по умолчанию. Для modesetting не нужно xf86-video-intel ставить, который типа почти что deprecated, для него вся магия содержится в xorg-server (я подозреваю, что это именно пресловутый libglx.so).

Неужели самый модный одновременно самый нерабочий? Надо будет i915 попробовать в VIDEO_CARDS. Но это не решение.

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

А вот eselect mesa list уже поинтереснее.

$ eselect mesa list
i915 (Intel 915, 945)
i965 (Intel GMA 965, G/Q3x, G/Q4x, HD)
r300 (Radeon R300-R500)
r600 (Radeon R600-R700, Evergreen, Northern Islands)
sw (Software renderer)
Откуда тут радеоны?

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

Неужели самый модный одновременно самый нерабочий?

Не знаю. Когда я его пробовал был или не рабочий, или я косорукий. Но это было давно.

imul ★★★★★ ()

Значит, так. Решение оказалось на редкость костыльным и скорее интуитивным, нежели аналитическим. Дело в том, что есть такой каталог /usr/lib64/mesa, в котором лежат четыре файлика:

i965_dri.so  kms_swrast_dri.so  swrast_dri.so  swrastg_dri.so
В соседнем каталоге /usr/lib64/dri лежат два симлинка, угадайте куда:
kms_swrast_dri.so  swrastg_dri.so
Решилась проблема очень просто: я создал два недостающих симлинка. Брат ожил, шестерёнки закрутились.

Я не знаю, как так получилось, была ли у кого-нибудь такая проблема и виноват ли в этом ~amd64, но у меня вдруг появилось твёрдое желание поймать человека, который недопилил эти несчастные два симлинка, в тёмном переулке и сделать с ним что-нибудь плохое.

Пойду-ка я на багтрекер. Кто-нибудь знает, как по-англицки «костыль»?

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

Решилась проблема очень просто

Это явно не решение проблемы, должен работать драйвер i915, а не софтовый растеризатор (swrast).

Твоя проблема, скорее всего, вот в этом: «EGL_MESA_drm_image required». Судя по названию, это расширение EGL, предложенное Mesa. Скорее всего, оно реализовано в свободных драйверах (у меня на intel это расширение есть в списке поддерживаемых). А вот в проприетарных — наврядли. Если учесть то, что у тебя ещё NVIDIA есть, есть немалый шанс, что используется что-то из драйверов для них. И это мешает.

Кто-нибудь знает, как по-англицки «костыль»?

kludge

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

А как вообще понять, что у меня работает? Я только грепать вывод glxinfo умею, так там вроде intel собственной персоной:

$ glxinfo | grep "OpenGL vendor"
OpenGL vendor string: Intel Open Source Technology Center

Нвидию я вообще не ставил и даже не пытался. У меня на текущий момент ни блоб, ни нуво не стоит, я ж написал в оп-посте.

Касательно EGL_MESA_что-то-там - да, я гуглил, но нашёл два-три упоминания в мейлинг листах, согласно которым эту фигню можно смело игнорить.

Хотя вот что любопытно: судя по логу иксов после костылинга, этот самый glamore у меня пытается проинициализироваться дважды, причём первый раз в составе modesetting-а, и у него это получается, а второй раз - уже в составе некоего fb (вероятно, то, что собой представляет нвидия без дров), и на этот раз его эта EGL_MESA_что-то-там уже вырубает.

Кстати, вот и сам лог: https://pastebin.com/h4Q541j5

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

Driver «intel»

Он уже deprecated и вообще, все на DDX перешли.

Meyer ★★★★★ ()
Ответ на: комментарий от i-rinat

Нет, я всё-таки уверен, что это баг, потому что я недавно свитчнулся с профиля портежей 17.0 на экспериментальный 17.1, а процедура перехода почти целиком состояла из каких-то автоматизированных операций с симлинками. Подожду, что на багтрекере ответят.

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

Недавно был переход на какой-то более хитрый способ сосуществования разных реализаций, предложенный NVIDIA, glvnd. Возможно, с ним что-то пошло не так, или не опакетили нужное.

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.