{{{#!div class="box" [[Image(http://xpra.org/icons/opengl.png)]] = OpenGL Applications = You can run [https://www.opengl.org/ OpenGL] applications in an xpra session in a number of ways: * by default the [/wiki/Xdummy] display server supports software opengl - but proprietary graphics drivers may interfere with this ([https://github.com/NVIDIA/libglvnd glvnd] should eventually solve this issue), and it will not use any GPU acceleration * by using [http://www.virtualgl.org/ VirtualGL], which delegates OpenGL acceleration to a real GPU - see below * by running the xpra session directly on a "real" X11 server using a standard accelerated display driver - this is hard to setup and undocumented: you need to use the {{{xvfb}}} switch to start an accelerated X11 server (modified xorg.conf), or use the {{{--use-display}}} switch to bind to an existing one * by [/wiki/ShadowServer shadowing] an existing accelerated X11 server (sub-optimal, slow) * Using Xwayland and a wayland compositor. In X11 you can use weston as compositor. Start weston, open terminal in it, and start xpra server with xvfb switch to use Xwayland: {{{ xpra start :20 --xvfb "/usr/bin/Xwayland -rootless -noreset" }}} [[BR]] This is not related at all to the [/wiki/ClientRendering/OpenGL OpenGL client rendering]: you can connect with any client you want, accelerated or not. }}} {{{#!div class="box" == VirtualGL setup == Usually, you can just {{{vglrun}}} your application and things will "just work". That is the case for simple applications like {{{glxgears}}} / {{{glxspheres}}}. You can also ensure that all your client applications are launched using vglrun by using the {{{exec-wrapper}}} option in your [/wiki/Configuration configuration file]. Note: applications launched in this way are tied to two displays: the one they run on which started by xpra and the one that provides the opengl acceleration, if either one of those displays is stopped then the application will crash. ---- Other applications may require more complicated workarounds, see the extensive [http://svn.code.sf.net/p/virtualgl/code/tags/2.4.1/doc/index.html VirtualGL documentation] for details, in particular [http://svn.code.sf.net/p/virtualgl/code/tags/2.4.1/doc/index.html#hd0012 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. }}} {{{#!div class="box" == OpenGL Performance == Some performance measurements can be found here: [/wiki/Usage/OpenGL/Performance]. }}}