Como usar eficientemente o 3D através de uma conexão remota?

11

Eu tenho um PC fraco (cliente), mas com desempenho 3D aceitável, e um PC strong (servidor) que deve ser capaz de executar um aplicativo usando OpenGL duas vezes, ou seja, uma vez localmente e remotamente para o cliente. Atualmente, eu ssh -X nele, mas a saída do console do cliente informa que a renderização de software é usada e só recebo 3 quadros por segundo (fps). Na verdade, a criptografia do ssh não é necessária, já que isso está em uma LAN, mas é o que eu já sei para aplicativos remotos ...

Então, como o desempenho do cliente pode ser aumentado? Minhas ideias são

  • usa aceleração de hardware, mas o do servidor ou do cliente e como?
  • use algo diferente de ssh

Eu sei, em resolução total e sem compressão sofisticada, uma LAN de 100 Mbit / s não produzirá mais fps, mas é uma aplicação em janela de ca. 800x450, portanto, teoricamente até 12 fps (a 24 bits / pixel) deve ser possível usando dados gráficos descompactados. E talvez algo melhor seja possível usando a própria GPU do cliente ou alguma compactação inteligente.

-

edit O que eu quero é basicamente uma versão local do que, por exemplo Ofertas onlive e gaikai . Existe algo assim para o Linux (e possivelmente livre)?

-

edit2 O VirtualGL parece a melhor solução (embora atualmente não funcione para mim), mas eu me pergunto se é possível fazer renderização de hardware no cliente, também

    
por Tobias Kienzler 30.12.2010 / 10:32

3 respostas

5

Você pode conferir VirtualGL em conjunto com O TurboVNC deve fornecer 20fps @ 1280x1024 com 100 Mbit ( veja a Wikipedia ).

Observe que pode não funcionar com todos os aplicativos, depende de como eles usam o OpenGL.

    
por 30.12.2010 / 12:31
1

Essa é uma pergunta antiga, mas ainda é relevante. Há um manual passo a passo sobre como configurar e solucionar problemas de renderização 3D X11 de aplicativo remoto em hardware local: aceleração de hardware OpenGL através de conexão ssh x11 remota

O cromo B.S.U. jogo é usado no artigo como um exemplo. Ele é executado com 5-8 FPS com renderização de software padrão por meio de conexão SSH, 30 FPS com renderização indireta de hardware e > 30 FPS com conexão TCP X11 não criptografada. Observe que isso funciona apenas para alguns aplicativos.

Breve resumo do artigo

A renderização indireta e as conexões TCP estão desabilitadas na configuração padrão do servidor X11. Os parâmetros +iglx and -listen tcp permitem isso. Há também a variável LIBGL_ALWAYS_INDIRECT=1 que força a renderização indireta no cliente X11.

    
por 09.03.2017 / 23:18
0

Isso pode ser verdade se você tiver dois PCs de mesa. Mas se você tiver um laptop WiFi antigo utilizável em qualquer lugar em casa (por exemplo, o Ti5600 com o Ubuntu 10.04 como seu cliente e um desktop com uma placa GTX junto com um roteador Wi-Fi extra, ter um cliente OpenGL parece uma boa idéia. / p>

O problema é obter um contexto OpenGL remoto (do lado do servidor). Você pode executar ssh -X no seu cliente. Mas se você executar o glxinfo no sistema remoto, você obtém o seu cliente local, o que o coloca de volta onde você começou. Você pode definir sua variável de ambiente DISPLAY para aquele host remoto, e você pode usar essa tela como um segundo monitor, o que ainda não ajuda.

Uma outra solução é escrever seus aplicativos de desktop para que eles possam usar um contexto GLX remoto:

link

    
por 30.12.2010 / 11:05