[winswitch] xpra 0.6.1 -- feedback

Dmitry Smirnov onlyjob at member.fsf.org
Sat Sep 15 12:51:00 BST 2012


On Sat, 15 Sep 2012 15:11:20 Antoine Martin wrote:
> > Thank you for your work. I hope you don't mind some feedback:
> No, quite the opposite, I welcome it!

Thank you. :)


> > First of all I think changing default encoding from PNG wasn't such a
> > good idea. By default visual quality is now degraded comparing to
> > previous versions.
> 
> It shouldn't be. x264 (and to a lesser extent vpx) offer almost lossless
> visual quality, with much higher compression.

Well my eyes are not lying. :)  Perhaps "almost" is not good enough for me.

> 
> > (I know I can override in config but I would prefer high quality
> > defaults). Personally I feel very uncomfortable with new defaults.
> 
> Can you specify the application, and link characteristics?
> How do I get this lower visual quality you experienced?

Any application, but most notably it can be seen with text. I use iceweasel 
(a.k.a. Firefox) or kmail or any text application -- text looks blurry in all 
of them, like if I have a dirty monitor. There are artefacts similar to low-
qiality jpeg compression around letters. Looks like sometimes when window is 
not refreshed for some time (no scrolling or other activity) text quality 
improves a little for some time until I select text or scroll etc.

This is very noticeable on thin black lines on white background. 
I'm surprised you didn't see it. I attached a screenshot do demonstrate the 
problem.

Connection is local 1GB Ethernet.


> Note: there was a bug in the 0.6.0 server which caused quality to
> degrade (and not recover quickly enough), this is one of the reasons for
> the 0.6.1 release.
> (upgrading the client alone would not be enough to fix this issue)
> 
> This undocumented debugging trick can dump all the encoding quality and
> batch delay calculation messages to the server log: start your server with:
> XPRA_DEBUG_LATENCY=1 xpra start ...

I did that with "xpra upgrade" -- see some samples from log below.


> > Of course first thing I tried is to change encoding as soon as I
> > connected to 0.6.1 instance using 0.6.1 as client. When I've chosen
> > "vpx" as compression, xpra (client) crashed as soon as I moved mouse
> > over remote application.
> 
> > Reconnecting to server wasn't possible. Server log had only one error:
> > 	[swscaler @ 0x3eca5e0] 1x1 -> 1x1 is invalid scaling dimension
> 
> Hah, there is some code to avoid windows that small with x264 (it only
> handles even dimensions), looks like vpx needs a similar workaround for
> a different reason (YUV to RGB conversion with swscale seems to not
> support very small dimensions), so here is the fix:
> https://www.xpra.org/trac/changeset/1543
> I cannot find the minimum dimensions specified anywhere, so I've used
> the same restrictions as x264: avoid 1 pixel wide or high dimensions.
> (will backport to old branches too)
 
Thank you for the patch. I applied to both server and client but server 
crashed in exactly the same way with the same error logged.
Anything else I can do to help?


Regards,
Dmitry.

##############
2012-09-15 21:37:21,286 video encoder speed factors: min_damage_latency=0.05, 
target_damage_latency=0.06, batch.delay=7.46, dam_lat=0.39, dec_lat=0.02, 
target=39, new_speed=34
2012-09-15 21:37:21,286 video encoder quality factors: packets_bl=1.0, 
batch_q=2.68, latency_q=0.77, target=77, new_quality=66
2012-09-15 21:37:21,286 update_batch_delay: wid=0, last updated 170.75 ms ago, 
decay=1.0, change factor=-4.9%, delay min=5.7, avg=7.2, max=10.7, cur=7.4, w. 
average=6.4, tot wgt=16.2, hist_w=8.1, new delay=7.0
 ('damage processing latency: avg=0.039, recent=0.105, target=0.052, aim=0.8, 
aimed avg factor=2.285, div=1.0, s=<built-in function sqrt>', 1.51, 0.71)
 ('damage send latency: avg=0.044, recent=0.113, target=0.076, aim=0.8, aimed 
avg factor=1.944, div=1.0, s=<built-in function sqrt>', 1.39, 0.62)
 ('network send speed: avg=195351, recent=120187 (KBytes/s), 
div=9.87646281417', 1.39, 0.14)
 ('client decode speed: avg=34.8, recent=34.5 (MPixels/s)', 1.0, 0.0)
 ('delay not updated for 169.4 ms (skipped 4 times - highest latency is 
113.4)', 0.0, 0.0)
 ('client latency: avg=0.037, recent=0.039, target=0.005, aim=0.8, aimed avg 
factor=1.559, div=1.0, s=<built-in function sqrt>', 1.24, 1.99)
 ('damage packet queue size: avg=0.109, recent=0.011, target=1.0, aim=0.25, 
aimed avg factor=0.007, div=1.0, s=<built-in function sqrt>', 0.08, 0.95)
 ('damage packet queue pixels: avg=0.0, recent=0.0, target=1.0, aim=0.25, 
aimed avg factor=0.0, div=894720, s=<built-in function sqrt>', 0.0, 1.0)
 ('damage data queue: avg=0.063, recent=0.006, target=1.0, aim=0.25, aimed avg 
factor=0.003, div=1.0, s=<function logp at 0x7f3923d05578>', 0.0, 0.99)
2012-09-15 21:37:21,286 video encoder speed factors: min_damage_latency=0.05, 
target_damage_latency=0.05, batch.delay=7.08, dam_lat=0.65, dec_lat=0.02, 
target=65, new_speed=43
2012-09-15 21:37:21,286 video encoder quality factors: packets_bl=1.0, 
batch_q=2.82, latency_q=0.5, target=50, new_quality=65
2012-09-15 21:37:21,286 update_batch_delay: wid=0, last updated 64.0 ms ago, 
decay=1.0, change factor=-2.5%, delay min=5.7, avg=7.1, max=10.7, cur=7.0, w. 
average=6.6, tot wgt=19.5, hist_w=9.7, new delay=6.9
 ('damage processing latency: avg=0.043, recent=0.108, target=0.052, aim=0.8, 
aimed avg factor=2.173, div=1.0, s=<built-in function sqrt>', 1.47, 0.68)
 ('damage send latency: avg=0.047, recent=0.114, target=0.076, aim=0.8, aimed 
avg factor=1.851, div=1.0, s=<built-in function sqrt>', 1.36, 0.6)
 ('network send speed: avg=163578, recent=94808 (KBytes/s), 
div=9.53467132886', 1.44, 0.15)
 ('client decode speed: avg=34.9, recent=34.8 (MPixels/s)', 1.0, 0.0)
 ('delay not updated for 62.7 ms (skipped 1 times - highest latency is 
114.6)', 0.0, 0.0)
 ('client latency: avg=0.036, recent=0.037, target=0.005, aim=0.8, aimed avg 
factor=1.453, div=1.0, s=<built-in function sqrt>', 1.2, 1.81)
 ('damage packet queue size: avg=0.107, recent=0.01, target=1.0, aim=0.25, 
aimed avg factor=0.006, div=1.0, s=<built-in function sqrt>', 0.07, 0.96)
 ('damage packet queue pixels: avg=0.0, recent=0.0, target=1.0, aim=0.25, 
aimed avg factor=0.0, div=894720, s=<built-in function sqrt>', 0.0, 1.0)
 ('damage data queue: avg=0.06, recent=0.004, target=1.0, aim=0.25, aimed avg 
factor=0.002, div=1.0, s=<function logp at 0x7f3923d05578>', 0.0, 0.99)
2012-09-15 21:37:21,286 video encoder speed factors: min_damage_latency=0.05, 
target_damage_latency=0.05, batch.delay=6.91, dam_lat=0.72, dec_lat=0.02, 
target=72, new_speed=51
2012-09-15 21:37:21,286 video encoder quality factors: packets_bl=1.0, 
batch_q=2.89, latency_q=0.53, target=53, new_quality=64
2012-09-15 21:37:21,286 update_batch_delay: wid=0, last updated 1531.75 ms 
ago, decay=1.0, change factor=6.6%, delay min=5.7, avg=7.0, max=10.7, cur=5.8, 
w. average=6.6, tot wgt=20.7, hist_w=10.3, new delay=6.1
 ('damage processing latency: avg=0.015, recent=0.028, target=0.065, aim=0.8, 
aimed avg factor=1.201, div=1.0, s=<built-in function sqrt>', 1.09, 0.31)
 ('damage send latency: avg=0.017, recent=0.03, target=0.091, aim=0.8, aimed 
avg factor=0.947, div=1.0, s=<built-in function sqrt>', 0.97, 0.16)
 ('network send speed: avg=219612, recent=149175 (KBytes/s), 
div=10.1878876417', 1.3, 0.12)
 ('client decode speed: avg=17.2, recent=12.5 (MPixels/s)', 1.24, 0.24)
 ('delay not updated for 1530.3 ms (skipped 38 times - highest latency is 
30.1)', 0.0, 0.0)
 ('client latency: avg=0.036, recent=0.033, target=0.005, aim=0.8, aimed avg 
factor=1.313, div=1.0, s=<built-in function sqrt>', 1.14, 1.52)
 ('damage packet queue size: avg=0.099, recent=0.006, target=1.0, aim=0.25, 
aimed avg factor=0.003, div=1.0, s=<built-in function sqrt>', 0.06, 0.96)
 ('damage packet queue pixels: avg=0.0, recent=0.0, target=1.0, aim=0.25, 
aimed avg factor=0.0, div=1160488, s=<built-in function sqrt>', 0.0, 1.0)
 ('damage data queue: avg=0.059, recent=0.004, target=1.0, aim=0.25, aimed avg 
factor=0.002, div=1.0, s=<function logp at 0x7f3923d05578>', 0.0, 0.99)
2012-09-15 21:37:21,286 video encoder speed factors: min_damage_latency=0.06, 
target_damage_latency=0.07, batch.delay=6.18, dam_lat=0.21, dec_lat=0.05, 
target=21, new_speed=20
2012-09-15 21:37:21,286 video encoder quality factors: packets_bl=1.0, 
batch_q=3.23, latency_q=0.6, target=60, new_quality=84
2012-09-15 21:37:21,287 update_batch_delay: wid=0, last updated 63.64 ms ago, 
decay=1.0, change factor=-2.4%, delay min=5.7, avg=6.9, max=10.7, cur=6.1, w. 
average=6.5, tot wgt=22.0, hist_w=11.0, new delay=6.0
 ('damage processing latency: avg=0.014, recent=0.006, target=0.065, aim=0.8, 
aimed avg factor=0.272, div=1.0, s=<built-in function sqrt>', 0.52, 0.69)
 ('damage send latency: avg=0.015, recent=0.006, target=0.091, aim=0.8, aimed 
avg factor=0.22, div=1.0, s=<built-in function sqrt>', 0.46, 0.72)
 ('network send speed: avg=220731, recent=149838 (KBytes/s), 
div=10.1942764793', 1.3, 0.12)
 ('client decode speed: avg=17.2, recent=12.6 (MPixels/s)', 1.24, 0.24)
 ('delay not updated for 62.6 ms (skipped 1 times - highest latency is 15.8)', 
0.0, 0.0)
 ('client latency: avg=0.035, recent=0.028, target=0.005, aim=0.8, aimed avg 
factor=1.146, div=1.0, s=<built-in function sqrt>', 1.07, 1.06)
 ('damage packet queue size: avg=0.098, recent=0.006, target=1.0, aim=0.25, 
aimed avg factor=0.003, div=1.0, s=<built-in function sqrt>', 0.06, 0.96)
 ('damage packet queue pixels: avg=0.0, recent=0.0, target=1.0, aim=0.25, 
aimed avg factor=0.0, div=1160488, s=<built-in function sqrt>', 0.0, 1.0)
 ('damage data queue: avg=0.058, recent=0.003, target=1.0, aim=0.25, aimed avg 
factor=0.002, div=1.0, s=<function logp at 0x7f3923d05578>', 0.0, 0.99)
2012-09-15 21:37:21,287 video encoder speed factors: min_damage_latency=0.06, 
target_damage_latency=0.07, batch.delay=6.03, dam_lat=0.19, dec_lat=0.05, 
target=19, new_speed=20
2012-09-15 21:37:21,287 video encoder quality factors: packets_bl=1.0, 
batch_q=3.31, latency_q=0.69, target=69, new_quality=82
2012-09-15 21:37:21,287 update_batch_delay: wid=0, last updated 160.24 ms ago, 
decay=1.0, change factor=-11.0%, delay min=5.7, avg=6.8, max=10.7, cur=6.9, w. 
average=6.4, tot wgt=25.6, hist_w=12.8, new delay=6.1
 ('damage processing latency: avg=0.039, recent=0.068, target=0.052, aim=0.8, 
aimed avg factor=1.473, div=1.0, s=<built-in function sqrt>', 1.21, 0.46)
 ('damage send latency: avg=0.043, recent=0.072, target=0.076, aim=0.8, aimed 
avg factor=1.252, div=1.0, s=<built-in function sqrt>', 1.11, 0.34)
 ('network send speed: avg=257766, recent=245588 (KBytes/s), 
div=10.906633034', 1.03, 0.09)
 ('client decode speed: avg=34.9, recent=34.8 (MPixels/s)', 1.0, 0.0)
 ('delay not updated for 158.9 ms (skipped 3 times - highest latency is 
72.7)', 0.0, 0.0)
 ('client latency: avg=0.034, recent=0.025, target=0.005, aim=0.8, aimed avg 
factor=1.015, div=1.0, s=<built-in function sqrt>', 1.0, 0.35)
 ('damage packet queue size: avg=0.093, recent=0.004, target=1.0, aim=0.25, 
aimed avg factor=0.002, div=1.0, s=<built-in function sqrt>', 0.05, 0.97)
 ('damage packet queue pixels: avg=0.0, recent=0.0, target=1.0, aim=0.25, 
aimed avg factor=0.0, div=894720, s=<built-in function sqrt>', 0.0, 1.0)
 ('damage data queue: avg=0.055, recent=0.002, target=1.0, aim=0.25, aimed avg 
factor=0.001, div=1.0, s=<function logp at 0x7f3923d05578>', 0.0, 0.99)
2012-09-15 21:37:21,287 video encoder speed factors: min_damage_latency=0.05, 
target_damage_latency=0.05, batch.delay=6.15, dam_lat=0.67, dec_lat=0.02, 
target=67, new_speed=56
2012-09-15 21:37:21,287 video encoder quality factors: packets_bl=1.0, 
batch_q=3.25, latency_q=0.79, target=79, new_quality=65
2012-09-15 21:37:21,287 update_batch_delay: wid=0, last updated 49.03 ms ago, 
decay=1.0, change factor=-3.1%, delay min=5.7, avg=6.7, max=10.2, cur=6.0, w. 
average=6.4, tot wgt=29.2, hist_w=14.6, new delay=5.8
 ('damage processing latency: avg=0.012, recent=0.002, target=0.065, aim=0.8, 
aimed avg factor=0.134, div=1.0, s=<built-in function sqrt>', 0.36, 0.79)
 ('damage send latency: avg=0.013, recent=0.004, target=0.091, aim=0.8, aimed 
avg factor=0.148, div=1.0, s=<built-in function sqrt>', 0.38, 0.78)
 ('network send speed: avg=221556, recent=150346 (KBytes/s), 
div=10.1991576671', 1.3, 0.12)
 ('client decode speed: avg=17.3, recent=12.7 (MPixels/s)', 1.23, 0.23)
 ('delay not updated for 47.4 ms (skipped 1 times - highest latency is 13.9)', 
0.0, 0.0)
 ('client latency: avg=0.033, recent=0.02, target=0.005, aim=0.8, aimed avg 
factor=0.83, div=1.0, s=<built-in function sqrt>', 0.91, 1.19)
 ('damage packet queue size: avg=0.091, recent=0.004, target=1.0, aim=0.25, 
aimed avg factor=0.002, div=1.0, s=<built-in function sqrt>', 0.05, 0.97)
 ('damage packet queue pixels: avg=0.0, recent=0.0, target=1.0, aim=0.25, 
aimed avg factor=0.0, div=1160488, s=<built-in function sqrt>', 0.0, 1.0)
 ('damage data queue: avg=0.053, recent=0.002, target=1.0, aim=0.25, aimed avg 
factor=0.001, div=1.0, s=<function logp at 0x7f3923d05578>', 0.0, 0.99)



More information about the shifter-users mailing list