Estou executando um host linux para desenvolvimento de software Qt em um local central.
Com o meu windows box, eu uso o Xming como um servidor X local e massa para conectar-me a esse host linux. Com esta configuração, posso usar todos os programas X (xclock, xterm) e GLX (qtcreator, gxlinfo, glxgears ...) no host do linux.
Minha estação de trabalho principal é um ubuntu 14.04 LTS com uma placa nvidia gfx. Quando eu me conecto ao host linux com o meu sistema ubuntu usando "ssh -p port # -YC my.dev.host.com" Eu também posso usar todos os programas X (xclock, xterm), mas não consigo usar os programas GLX (qtcreator, gxlinfo, glxgears ...).
Até o momento eu aprendi isso porque o servidor X não suporta contextos GLX indiretos por padrão para a versão 1.16 mais nova.
Então, minhas perguntas são: Como habilitar contextos GLX indiretos (servidor X e driver nvidida) na instalação do ubuntu 14.04 LTS para que as coisas funcionem conforme o esperado em um servidor X.
Obrigado por qualquer ajuda!
cmks
Aqui está a saída do glxgears, talvez isso ajude:
[email protected]:~# 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
elibGL error: failed to load driver: swrast
LIBGL_ALWAYS_INDIRECT=1
proíbe o uso de DRI, então não há mensagens de erro. Mas glxgears ainda só mostra um quadroUma maneira alternativa (e independente do gerenciador de exibição) de adicionar as opções é adicionar a seguinte seção ao /etc/X11/xorg.conf:
fonte
lightdm
.Eu estava tendo o mesmo problema ao executar um programa OpenGL personalizado
ssh -X
. A solução acima trabalhou com uma ligeira modificaçãoIsso funcionou com o servidor ubuntu 16.04 executando o kubuntu-desktop com o driver binário NVIDIA GTX 1070 GPU e NVIDIA instalado através do apt.
fonte
Option "IndirectGLX" "on"
. De acordo com isso ,enableIndirectGLX
deve-se avaliar paraTRUE
que oBadValue
erro não seja retornado. O padrão é:FALSE
=-iglx
(na linha de comandos). Assim por diante de qualquer conjunto:+iglx
opção de linha de comando, ouIndirectGLX "on"
ou valor equivalente "truthy"AllowIndirectGLXProtocol
para a mesma coisa. No entanto, seus documentos são um pouco confusos, porque mencionam que oBadValue
erro será retornado com o nome de configuração comoAllowIndirectGLXProtocol = "true"
. Isso é completamente o oposto do que eles dizem mais tarde "The NVIDIA GLX implementation will prohibit creation of indirect GLX contexts if AllowIndirectGLXProtocol option is set to False.
" Então é confuso, e talvez os documentos estejam errados?