Renderização direta remota para GLX (OpenGL)

Renderização direta remota para GLX (OpenGL)

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:

  1. 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.
  2. 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.

informação relacionada