xpra icon
Bug tracker and wiki

Changes between Initial Version and Version 1 of Ticket #1432


Ignore:
Timestamp:
02/07/17 10:26:15 (3 years ago)
Author:
Antoine Martin
Comment:

Keeping a simple queue of pending paint events would probably be enough:

  • add to the queue instead of actually painting whenever we have pending paints
  • process all elements in that queue (play catch up) when we have processed all the paint events for a given flush group

We just keep track of the pending flush numbers in an associative array. A flush value of 0 (or undefined) indicates the end of the current group. Or another way: if the flush value increases, we are receiving the start of a new paint group. At that point, we cannot add new entries to the associative array until it is empty.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1432

    • Property Status changed from new to assigned
  • Ticket #1432 – Description

    initial v1  
    11Split from #1426. Maybe scrolling should be disabled in v1.x html5 clients, otherwise they will show display corruption when connecting to v2.x servers that provide the "scroll" encoding. (v1.x servers require video - which is not enabled by default)
    22
    3 Maybe the "flush" screen update attribute can be used as some kind of barrier: we can decode and paint the updates in parallel as they come in, but we should not start decoding a new group of screen updates until the current group has made it to the canvas. (this is only per-window, and there are no constraints on the paint ordering of screen updates within the same flush group)
     3The "flush" screen update attribute can be used as some kind of barrier: we can decode and paint the updates in parallel as they come in, but we should not start decoding a new group of screen updates until the current group has made it to the canvas. (this is only per-window, and there are no constraints on the paint ordering of screen updates within the same flush group)
    44
    55Ideally, we could start decoding the new screen updates, but just avoid updating the canvas. But that's likely to be much more difficult to implement.