Я использую Linux-хост для разработки программного обеспечения Qt в центральном месте.
С моей коробкой Windows я использую Xming как локальный X-сервер и замазку для подключения к этому linux-хосту. С этой конфигурацией я могу использовать все программы X (xclock, xterm) и GLX (qtcreator, gxlinfo, glxgears ...) на linux-host.
Моя основная рабочая станция - Ubuntu 14.04 LTS с картой nvidia gfx. Когда я подключаюсь к linux-host с моей системой ubuntu, используя "ssh -p port # -YC my.dev.host.com", я также могу использовать все программы X-программ (xclock, xterm), но я не могу использовать программы GLX (qtcreator, gxlinfo, glxgears ...).
Насколько я понял, это связано с тем, что X-сервер по умолчанию не поддерживает косвенный контекст GLX для младшей версии 1.16.
Итак, мои вопросы: как я могу включить косвенные контексты GLX (X-сервер и драйвер nvidida) в моей установке Ubuntu 14.04 LTS, чтобы все работало так, как ожидалось от X-сервера.
Спасибо за любую помощь!
ČMKS
Вот вывод glxgears, может быть, это поможет:
root@my.dev.host.com:~# LIBGL_DEBUG=verbose glxgears
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 35
Current serial number in output stream: 37
libGL error: No matching fbConfigs or visuals found
иlibGL error: failed to load driver: swrast
LIBGL_ALWAYS_INDIRECT=1
запрещает использование DRI, тогда нет сообщений об ошибках. Но glxgears по-прежнему показывает только один кадрАльтернативный (и независимый от диспетчера) способ добавления параметров заключается в добавлении следующего раздела в /etc/X11/xorg.conf:
источник
lightdm
.У меня была такая же проблема при запуске пользовательской программы OpenGL
ssh -X
. Вышеупомянутое решение работало с небольшой модификациейЭто работало с сервером ubuntu 16.04, работающим под управлением kubuntu-desktop, с графическим процессором NVIDIA GTX 1070 и двоичным драйвером NVIDIA, установленным через apt.
источник
Option "IndirectGLX" "on"
. В соответствии с этим ,enableIndirectGLX
необходимо оценить,TRUE
так чтоBadValue
ошибки не возвращаются. По умолчанию:FALSE
=-iglx
(в командной строке). Так что либо из набора:+iglx
опция командной строки, ИЛИIndirectGLX "on"
или эквивалентное «истинное» значениеAllowIndirectGLXProtocol
. Тем не менее, их документы несколько сбивают с толку, потому что они упоминают, чтоBadValue
ошибка будет возвращена с их именем настройки какAllowIndirectGLXProtocol = "true"
. Это полностью противоположно тому, что они говорят позже: «The NVIDIA GLX implementation will prohibit creation of indirect GLX contexts if AllowIndirectGLXProtocol option is set to False.
Так что это сбивает с толку, и, возможно, документы не так?