Xpra: Ticket #1320: lossless scrolling

Follow up from #1232: we could remove the need for auto-refresh packets when we do scrolling and the original data is lossless. The same rectangle transformations could be applied to the list of regions needed a refresh.

Fri, 08 Feb 2019 06:00:49 GMT - Antoine Martin: status, milestone changed

Thu, 21 Mar 2019 09:04:37 GMT - Antoine Martin: attachment set

work in progress patch

Thu, 21 Mar 2019 09:09:45 GMT - Antoine Martin:


Those fixes combined with the patch above and scrolling already works a lot better than I expected. Giving smooth lossless scrolling in most cases.

Still TODO:

One unintended benefit of this ticket is that we should be able to see bugs in the scroll paint code more easily because those would not get refreshed. So far so good.

Fri, 22 Mar 2019 08:10:35 GMT - Antoine Martin: owner, status changed


It works very well.


For testing, I had to force the quality lower to ensure that the non-scroll areas would get sent using a lossy encoding and later refreshed correctly (ie: jpeg or webp in lossy mode is what we want). To make sure that the server doesn't choose rgb for those, I configured my client to not use rgb at all: --encodings=webp,png,jpeg,h264

To be able to see what is being sent to the client:

I can scroll up and down frantically using a browser as a client application and I never see any visual artifacts. And it's smooth too.

@encodedEntropy: this is a major improvement over the previous version of the scrolling code.

Thu, 01 Aug 2019 12:02:39 GMT - Smo: owner changed

Wed, 07 Aug 2019 14:33:38 GMT - Smo: owner changed

Tested with server and client 3.0-r23413


xpra --bind-tcp= --start=xterm --no-daemon -d compress,refresh,scroll start :15


XPRA_OPENGL_PAINT_BOX=1 xpra --encodings=webp,png,jpeg,h264 attach tcp:localhost:14000

Also tested with google-chrome and the html5 client.

In both cases the scrolling was working as expected and was extremely smooth. Very good!

Thu, 08 Aug 2019 05:39:29 GMT - Antoine Martin: status changed; resolution set

@smo: why override the encodings? Not having rgb in that list is going to hurt performance, why bother?

Sat, 23 Jan 2021 05:21:02 GMT - migration script:

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