xpra icon
Bug tracker and wiki

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

Opened 4 years ago

Closed 4 years ago

Last modified 16 months ago

#2043 closed defect (fixed)

distinguish real damage events from refresh requests

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 2.5
Component: server Version: 2.4.x
Keywords: Cc:


At the moment, we only skip calls to damage() that are tagged as polling events by the gtk shadow server base class.

And this is only used:

  • by the rfb server for basic rate control: skipping events if the encoding queue is busy
  • for not recording damage events statistics

Problem is that there are many other places where we can generate damage calls:

  • refresh which is already tagged
  • window map and configure events


The damage events list is used for some heuristics, but clients may send many configure events (ie: when moving a window), which can completely skew the data we rely on.

Change History (5)

comment:1 Changed 4 years ago by Antoine Martin

Status: newassigned

r21014 skips recording damage events for shadow servers, but this is the wrong place and assumes that shadow servers don't get damage events - which is true for now, but this may change.

comment:2 Changed 4 years ago by Antoine Martin

There are also tricky issues with shadow servers and video region detection, see r21019 backport. Well hidden in there: we happen to avoid downscaling shadow screens as a very fortunate side effect!

For some things we want to know how many times we go through the damage function, for others we only care about real screen updates triggered by changes on screen.
Shadow servers are a special case: we poll and trigger refreshes, but we still want to use video encoders, and for the full window area...

comment:3 Changed 4 years ago by Antoine Martin

This would help with #2044

comment:4 Changed 4 years ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

See also #2049.


  • r21038: don't count auto-refresh and polling damage events
  • r21050: only actual damage events will be recorded as damage statistics

comment:5 Changed 16 months ago by migration script

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2043

Note: See TracTickets for help on using tickets.