Erro: QOpenGLShader: não foi possível criar o sombreador - durante a execução do ssh

2

Do meu computador:

$ cat /etc/issue && uname -a
Ubuntu 14.04.1 LTS \n \l

Linux abc-pc 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Estou usando o Qt 5.4 e o QtCreator 3.3.0

Eu li essa resposta em relação aos erros do OpenGL , mas não tenho certeza se isso também se aplica a mim.

Os programas funcionam muito bem no meu computador, mas um peer faz ssh do seu próprio computador no meu computador e executa o mesmo programa e os seguintes erros são mostrados em seu computador.

Fazer ssh significa que ele está realmente trabalhando no meu computador, por isso, quando não estou recebendo esses erros, por que ele está?

libGL error: failed to load driver: swrast
Connected to  "xyz"
QOpenGLShader: could not create shader
QOpenGLShaderProgram: could not create shader program
QOpenGLShader: could not create shader
QOpenGLShaderProgram::uniformLocation( imageTexture ): shader program is not linked
QOpenGLShaderProgram: could not create shader program
QOpenGLShader: could not create shader
QOpenGLShader: could not create shader
shader compilation failed: 
""
QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( opacity ): shader program is not linked
QOpenGLShaderProgram: could not create shader program
QOpenGLShader: could not create shader
QOpenGLShader: could not create shader
shader compilation failed: 
""
QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( opacity ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( pixelSize ): shader program is not linked
QOpenGLShaderProgram: could not create shader program
QOpenGLShader: could not create shader
QOpenGLShader: could not create shader
shader compilation failed: 
    
por Aquarius_Girl 27.02.2015 / 09:07

1 resposta

3

Tente se conectar com ssh -X e, em seguida, execute o comando DISPLAY=:0 após o login, antes de iniciar o programa.

Ou seja,

$ ssh -X YOURCOMP
...
$ DISPLAY=:0
$ ./[run gl program]

Em resumo, pode permitir que você acesse os drivers gráficos da máquina remota. Por exemplo, se você acabou de correr glxinfo | grep OpenGL , você não obterá o resultado esperado em ssh , a menos que você faça ssh -X e DISPLAY=:0 (conforme mostrado no primeiro link).

Você pode obter glxinfo de mesa-utils .

Além disso, um bom programa GL para testar é o glxgears , que também é do pacote mesa-utils . Se isso funcionar e o seu programa não funcionar, isso sugere que o problema pode estar relacionado a outra coisa.

    
por 27.02.2015 / 09:27