Renderização direta remota para GLX (OpenGL)

7

Estou tentando executar um aplicativo OpenGL 2.1+ sobre SSH.

[meu computador] --- conexão ssh --- [máquina remota] (aplicação)

Eu uso o encaminhamento do X para executar este aplicativo e, com isso em mente, acho que há algumas maneiras de esse aplicativo fazer gráficos 3D:

  1. Usando o LIBGL_ALWAYS_INDIRECT, o hardware gráfico no meu computador pode ser usado. De acordo com esta postagem , isso geralmente é limitado à versão 1.4 do OpenGL.
  2. Usando a renderização do software Mesa na máquina remota. Isso suporta versões superiores do OpenGL, mas usa a CPU.

No entanto, no meu caso, a máquina remota tem uma placa gráfica decente. Então, ao invés de renderizar software , eu estava pensando se poderia fazer hardware renderizar remotamente.

Além disso, se houver outra maneira de usar a placa gráfica da minha máquina, também seria ótimo.

    
por Paul 26.10.2016 / 13:45

2 respostas

3

A escolha não é necessariamente entre renderização indireta e renderização de software, mas mais precisamente entre renderização direta e indireta. A renderização direta será feita no cliente X (a máquina remota), e 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 usar a renderização direta (e aceitar a sobrecarga de transmissão da imagem rasterizada pela rede).

Se a sua aplicação não puder viver com o OpenGL 1.4, a renderização direta é sua única opção.

    
por 26.10.2016 / 14:15
2

Eu costumava ter a 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 in e ajuste DISPLAY para: 0). Para o seu caso, faz mais sentido separar o xserver offscreen. Não me lembro se é possível iniciar o xserver remotamente no modo offscreen, mas com drivers GPU carregados. O projeto VirtualGL parece prometer que ele suporta exatamente o que você está procurando. Eu nunca tentei, mas o site parece promissor.

link

Outras alternativas são vnc e xdmcp. Eles permitem acesso a um ambiente de desktop remoto completo.

    
por 26.10.2016 / 15:25

Tags