Remote Connection – How to Efficiently Use 3D via SSH

openglremotessh

I have one weak PC (client) but with acceptable 3D performance, and one strong PC (server) which should be capable of running an application using OpenGL twice, i.e. once locally and once remotely for the client. Currently, I ssh -X into it, but the client's console output states software rendering is used and I only get 3 frames per second (fps). Actually, ssh's encryption is not necessary since this is on a LAN, but it's what I already know for remote applications…

So, how can the client performance be increased? My ideas are

  • use hardware acceleration, but the server's or the client's one and how?
  • use something different than ssh

I know, in full resolution and without sophisticated compression a 100 Mbit/s LAN won't make more fps, but it's a windowed application of ca. 800×450, so theoretically up to 12 fps (at 24 bits/pixel) should be possible using uncompressed graphical data. And maybe something better is possible using the client's own GPU or some smart compression.

edit Turns out what I want is basically a local version of what e.g. onlive and gaikai offers. Is there something like this for Linux (and possibly free)?

edit2 VirtualGL looks like the best solution (though currently not working for me), but I wonder if it is possible to do hardware rendering on the client, too

Best Answer

You could check out VirtualGL together with TurboVNC should provide you with 20fps @ 1280x1024 on 100 Mbit (see wikipedia).

Do note that it might not work with all applications, it depends on how they use OpenGL.