xpra icon
Bug tracker and wiki

Version 16 (modified by Antoine Martin, 6 years ago) (diff)

--

Client Rendering

The wiki/Clients support different rendering modes, here are the most commonly used implementations.
The choice of drawing backend has an influence on the performance, the encodings the client can support, etc.

Python / GTK Clients

The GTK clients support some of these rendering implementations:

  • PixmapBacking - a standard gdk pixmap based backing, GTK2 only. Used as fallback when OpenGL is not available.
  • CairoBacking - uses cairo surfaces for backing, required for GTK3 support. Can be used with GTK2 (rarely tested)
  • GLPixmapBacking - uses OpenGL for backing, allows us to speedup rendering by using OpenGL for the colourspace conversion step needed with x264 and vpx encodings.


As of v0.11.x, the OpenGL backend should be used for most non-transient windows.


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.

OpenGL 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
  • #385 - Improvements: scaling / RGB
  • #468 - OpenGL rendering bug due to alpha channel
  • #478 - flickering