![Renderização direta remota para GLX (OpenGL)](https://rvso.com/image/97251/Renderiza%C3%A7%C3%A3o%20direta%20remota%20para%20GLX%20(OpenGL).png)
Estou tentando executar um aplicativo OpenGL 2.1+ por SSH.
[meu computador] --- conexão ssh --- [máquina remota] (aplicativo)
Eu uso o encaminhamento X para executar este aplicativo e, com isso em mente, acho que existem algumas maneiras de esse aplicativo fazer gráficos 3D:
- Usando LIBGL_ALWAYS_INDIRECT, o hardware gráfico do meu computador pode ser usado. De acordo comesta postagemisso geralmente é limitado ao OpenGL versão 1.4.
- Usando a renderização do software Mesa na máquina remota. Suporta versões superiores do OpenGL, mas usa a CPU.
No entanto, no meu caso, a máquina remota possui uma placa gráfica decente. Então, em vez deProgramasrenderização, eu queria saber se isso poderia fazerhardwarerenderizando remotamente.
Além disso, se houver outra maneira de usar a placa gráfica da minha máquina, isso também seria ótimo.
Responder1
A escolha não é necessariamente entre renderização indireta e renderização por software, mas mais precisamente entre renderização direta e indireta. A renderização direta será feita no cliente X (a máquina remota) e, em seguida, os resultados da renderização serão transferidos para o servidor X para exibição. A renderização indireta transmitirá comandos GL para o servidor X, onde esses comandos serão renderizados usando o hardware do servidor. Como você deseja usar o hardware 3D na máquina remota, você deve optar pela renderização direta (e aceitar a sobrecarga de transmissão da imagem raster renderizada pela rede).
Se seu aplicativo não consegue conviver com o OpenGL 1.4, a renderização direta é sua única opção.
Responder2
Eu costumava ter configuração remota ssh para executar o driver opengl corrigido. Mas isso envolveu alguns hacks, como sequestrar um servidor X remoto para renderização (login na máquina remota, ssh e definir DISPLAY como: 0). Para o seu caso, faz mais sentido separar o xserver fora da tela. Não me lembro se é possível iniciar o xserver remotamente no modo offscreen, mas com drivers de GPU carregados. O projeto VirtualGL parece prometer que suporta exatamente o que você procura. Nunca experimentei, mas o site parece promissor.
http://www.virtualgl.org/About/Introduction
Outras alternativas são vnc e xdmcp. Eles permitem acesso a um ambiente de desktop remoto completo.