dmohr
dmohr

Reputation: 21

OpenGL (v >=3) application on remote machine

Is there a way to start an application with OpenGL >= 3 on a remote machine? Local and remote machine run on Linux.

More precisely, I have the following problem:

I have an application that uses Qt for GUI stuff and OpenGL for 3D rendering. I want to start this application on several remote machines because the program does some very time consuming computation.

Thus, I created a version of my program that does not raise a window. I use QGuiApplication, QOffscreenSurface, and a framebuffer object as rendertarget.

BUT: When I start the application on a remote machine (ssh -Y remotemachine01 myapp) I only have OpenGL version 2.1.2. When I start the application locally (on the same machine, I have opengl 4.4). I suppose the X forwarding is the problem.

So I need a way to avoid X forwarding.

Upvotes: 2

Views: 1068

Answers (1)

datenwolf
datenwolf

Reputation: 162164

Right now there's no clean solution, sorry.

GLX (the OpenGL extension to X11 which does the forwarding stuff) is only specified up to OpenGL-2.1, hence your inability to forward a OpenGL-3 context. This is actually a ridiculous situation, because the "OpenGL-3 way" is much better suited for indirected rendering, than old fashioned OpenGL-2.1 and earlier. Khronos really needs to get their act together and specify GLX-3.

Your best bet would be either to fall back to a software renderer on the remote side and some form of X compression. Or use Xpra backed by on GPU X11 server; however that only works for only a single user at a time.

In the not too far future the upcomming Linux graphics driver models will allow for remote GPU rendering execution by multiple users sharing graphics resources. But we're not there yet.

Upvotes: 1

Related Questions