Xpra: Ticket #1424: html5: faster network layer, input devices, etc
Follow up from #1341.
Video / paint:
- either fix broadway, or get native video decoding to play properly without buffering too much
process_interval
should not be hardcoded?
Network layer:
onmessage
should not copy bytes at a time (see ticket:1341#comment:12)
- less wasteful process_xxxx_queue" timers scheduling
process_receive_queue
should not use recursion
Input devices:
- throttle tablet input events / #1390
Tue, 28 Feb 2017 13:13:57 GMT - Antoine Martin: attachment set
- attachment
set to test-slow-send.patch
make it easier to test slow network and packet aggregation in client receiver code
Tue, 28 Feb 2017 13:15:19 GMT - Antoine Martin: attachment set
- attachment
set to html5-zerocopy.patch
implement zero copy in network layer - only aggregate chunks if we have to, do it using fast set method
Tue, 28 Feb 2017 15:32:30 GMT - Antoine Martin: attachment set
- attachment
set to html5-timers-managed.patch
try to manage the timers and only use them as needed - actually makes things slower
Tue, 28 Feb 2017 15:48:40 GMT - Antoine Martin: attachment set
- attachment
set to html5-timers-managed-v2.patch
alternative implementation of managed timers
Tue, 28 Feb 2017 16:07:21 GMT - Antoine Martin: status changed
- status
changed from new to assigned
- r15183 merges the zero copy code (and removes some unused variables, more removed in r15185)
- r15184: don't queue draws, r15187: lower timer delay
We could also modify process_receive_queue
to only parse the "packet size", "packet flags" and "padding" when we get the full 8-byte header - small saving which would make the code harder to read. meh.
With these changes, testing with glxspheres at high res, the throughput and framerate are increased - but really not by much. And this is even more wasteful than before (running the timers at full speed), so r15188 switches to "on-demand" timers. (also a bit slower?)
Big question: how can we validate those changes better? We need reliable performance data to compare before and after, preferably using a real-world use case (not glxgears / glxspheres).. As some of these changes may actually make things worse.
Sun, 05 Mar 2017 17:46:59 GMT - Antoine Martin: attachment set
- attachment
set to html5-clipboard.patch
two-way clipboard
Thu, 09 Mar 2017 07:00:19 GMT - Antoine Martin:
- moving clipboard to its own ticket: #1461
- we try to clamp the windows to the browser's window area, but allow the user to move part of the window "off-screen" if they wish: r15241 - but there's a bug in the "draggable window" code, which is reporting coordinates out of range... and they get more and more out of range as we clamp the window, something is not getting updated somewhere
Fri, 10 Mar 2017 06:59:39 GMT - Antoine Martin: owner, status, summary changed
- owner
changed from Antoine Martin to alas
- status
changed from assigned to new
- summary
changed from html5: use video, faster network layer, input devices, etc to html5: faster network layer, input devices, etc
@afarr: since we don't have a reliable way of measuring performance, I'm not sure there's anything here for you to test - feel free to close as FYI. (just bear in mind that the scrolling paint code still looks buggy with the html5 client: #1432?)
Sun, 12 Mar 2017 08:32:47 GMT - Antoine Martin:
- r15275 fixes scroll paint (r15277 for v1.0.x)
- r15276 adds "paint box" debugging, enabled with debug mode (same code and colors as #760 "XPRA_OPENGL_PAINT_BOX")
Wed, 21 Jun 2017 19:51:59 GMT - J. Max Mena: status changed; resolution set
- status
changed from new to closed
- resolution
set to fixed
Noted and closing.
Sat, 23 Jan 2021 05:23:56 GMT - migration script:
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1424