xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.

We have moved

This wiki has been moved to https://github.com/Xpra-org/xpra/blob/master/docs/README.md and https://github.com/Xpra-org/xpra/wiki

Archived copy:


See also wiki/Encodings, which has its own tuning guidelines.


Using the default settings, the system will do its best to accommodate any type of application, no matter what the network conditions are. Because those heuristics cover a wide range of possibilities, they may not always be optimal (ie: local connections over mmap behave very differently from a remote connection over 3G or wifi: #2037).

It is often possible to obtain better performance and user experience by tuning the system for its environment and user demands.

Some related pointers:

Quality and Speed

These two settings are the easiest to access: they have command line options and can be modified at runtime through the system tray menu.

  • (min-)quality: higher quality will use more bandwidth
  • (min-)speed: higher speed will take less CPU time to compress but this will also use more bandwidth
  • video-scaling: this reduces CPU and bandwidth, but this also lowers the quality (only meant to be used for video - this is a lot less noticeable for video)

Application Tuning

The key settings that affect application performance are the ones that allow the server to make the distinction between the window contents that can be compressed with lossy picture formats (images, video) and those that cannot (text and content with sharp lines).

These hints can be specified using configuration files for matching various window attributes(#1950), or matching more global desktop application categories (#1956). Applications can also set a window property directly to override this (#2023).

The hints are used to select the picture encoding most appropriate for the type of content to be compressed (#1952), though applications may choose to bypass this logic and set the picture encoding explicitly (#2086) and / or set the quality and speed directly (#2077). The hints are also used to tune speed / quality / framerate (#2061, #1135), or to disable video mode (#2100).

The hints are also passed on to the picture encoders themselves for their own internal tuning (#1699, #2061, #1257, #800).

To add better tuning for new applications, collect as much data as possible about the behaviour of the application and create a new ticket. Typically: xwininfo -tree -root, xprop for all the windows, xpra info, etc..

Video Region

Video compression offers major bandwidth savings and performance improvements over regular picture compression, but these benefits come at a cost: if the region to encode as video is not detected properly then the non-video areas will suffer from: visual degradation, delays, slow auto-refresh, etc It is therefore essential to correctly detect which part of a window needs to be encoded using video compression. Screen updates using video compression are also the only areas that support AV-sync (#835).

The heuristics will try very hard to identify the video region correctly (#410, #967), using any hints it can use to improve its chances of success (ie: #2113).

But if at all possible, it is best to use an API to set the video region explicitly (#1060, #1401) and to set exclusion zones so we can ignore the window scrollbars (#1295).

See also: #2022, #2094, #1951, #999, #1014, #596

Last modified 17 months ago Last modified on 02/06/21 14:03:08