#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: |
Description
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
etc.
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
Status: | new → assigned |
---|
comment:2 Changed 4 years ago by
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:4 Changed 3 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:5 Changed 16 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2043
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.