Version 7 (modified by 6 years ago) (diff) | ,
---|
Client Rendering
The choice of drawing backend has an influence on the performance, the encodings the client can support, etc.
Python / GTK Client
The main supported client is written in Python + gtk, and supports three rendering modes:
PixmapBacking
- a standard pixmap based backing, gtk2 only.CairoBacking
- uses cairo surfaces for backing, required for gtk3 support.GLPixmapBacking
- usesOpenGL
for backing, allows us to speedup rendering by usingOpenGL
for the colourspace conversion step needed with x264 and vpx encodings.
The GL backend should be used for non-transient windows when the encoding is set to x264 or vpx.
Java Client
The (unsupported) Java client has backends for:
- AWT
- Swing
- GTK-Java
In all cases, only "jpeg" and "png" encodings are supported.
Android Client
The (unsupported) Android client has the same limitations as the Java client with which it shares most of the code.
OpenGL Notes
Some drivers are blacklisted for OpenGL
support, for example nouveau
on Linux, OpenGL
status messages should be printed out when using the command line tool to attach to a session (unless the configuration file or command line options specifically disabled it).
The --opengl=yes|no|auto
option can be used to override the automatic detection of supported drivers.
You can also find the OpenGL
driver information in the Features
pane of the Session Info
dialog from the system tray menu.
To test/diagnose your system support for OpenGL
, run:
- on Posix:
python ./xpra/gl/gl_check.py
- on MS Windows:
OpenGL_check.exe
The output will show the driver, vendor and the status of various required extensions. Related tickets:
- #147 - original feature ticket
- #150 -
OpenGL
usage bugs - #226 - OSX build issues
- #227 - MS Windows specific issues
- #229 - bug: hard crash
- #314 -
VirtualBox
bug (crash VM) - #321 - problem with small rgb updates
- #328 - codec split
- #367 - minor UI tweak
- #365 - future optimization
- #372 - Linux client crash