xpra icon
Bug tracker and wiki

Version 5 (modified by Antoine Martin, 4 years ago) (diff)

--

http://xpra.org/icons/opengl.png

OpenGL Applications

You can run OpenGL applications in an xpra session in a number of ways:

  • by running the xpra session directly on a "real" X11 server using an accelerated display driver - this is hard to setup and undocumented: you need to use the xvfb switch to start an accelerated X11 server
  • by shadowing an existing accelerated X11 server (sub-optimal)
  • by using VirtualGL


This is not related at all to the OpenGL client rendering: you can connect with any client you want, accelerated or not.

VirtualGL setup

Usually, you can just vglrun your application and things will "just work". That is the case for simple application like glxgears / glxspheres.

Other applications may require more complicated workarounds, see the extensive VirtualGL documentation for details, in particular 12: Using VirtualGL with setuid/setgid Executables.

Caveat: for some unknown reason, you may need to use /etc/ld.so.preload instead of LD_PRELOAD to make some suid applications work through xpra. (#898) Temporary solution:

$ mv /etc/ld.so.preload /etc/ld.so.preload.saved >& null
$ echo "/usr/lib64/VirtualGL/libdlfaker.so /usr/lib64/VirtualGL/libgefaker.so /usr/lib64/VirtualGL/librrfaker.so" > /etc/ld.so.preload
$ vglrun yourapp
$ rm /etc/ld.so.preload
$ mv /etc/ld.so.preload.saved /etc/ld.so.preload >& null

If you application is suid, you may also need to chmod it.

OpenGL Performance

Some rough figures and compatibility tests.

Running GpuTest 0.7.0, on a Fedora 22 system with a GeForce GTX 760/PCIe/SSE2, kernel 4.0.5, nvidia driver 346.59 at 1024x720 resolution:

Platform Test
FurMark? TessMark? X8 PixMark? JuliaFP32 PixMark? Volplosion
Points FPS Points FPS Points FPS Points FPS
Bare Metal 4283 71 87143 1453 29994 498 2969 49
vglrun 3769 62 8842 147 10621 177 2696 44
vmplayer Windows 7 Ultimate 64-bit 1736 28 failed 3459 57 failed

Note: VirtualBox 4.3.x failed to launch any of the tests and is not included here.