Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

html5: faster network layer, input devices, etc #1424

Closed
totaam opened this issue Jan 31, 2017 · 10 comments
Closed

html5: faster network layer, input devices, etc #1424

totaam opened this issue Jan 31, 2017 · 10 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Jan 31, 2017

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:

Input devices:

@totaam
Copy link
Collaborator Author

totaam commented Feb 28, 2017

2017-02-28 13:13:57: antoine uploaded file test-slow-send.patch (0.6 KiB)

make it easier to test slow network and packet aggregation in client receiver code

@totaam
Copy link
Collaborator Author

totaam commented Feb 28, 2017

2017-02-28 13:15:20: antoine uploaded file html5-zerocopy.patch (7.9 KiB)

implement zero copy in network layer - only aggregate chunks if we have to, do it using fast set method

@totaam
Copy link
Collaborator Author

totaam commented Feb 28, 2017

2017-02-28 15:32:31: antoine uploaded file html5-timers-managed.patch (2.9 KiB)

try to manage the timers and only use them as needed - actually makes things slower

@totaam
Copy link
Collaborator Author

totaam commented Feb 28, 2017

2017-02-28 15:48:40: antoine uploaded file html5-timers-managed-v2.patch (1.9 KiB)

alternative implementation of managed timers

@totaam
Copy link
Collaborator Author

totaam commented Feb 28, 2017

2017-02-28 16:07:21: antoine changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Feb 28, 2017

  • 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.

@totaam
Copy link
Collaborator Author

totaam commented Mar 5, 2017

2017-03-05 17:46:59: antoine uploaded file html5-clipboard.patch (10.3 KiB)

two-way clipboard

@totaam
Copy link
Collaborator Author

totaam commented Mar 9, 2017

  • 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

@totaam
Copy link
Collaborator Author

totaam commented Mar 10, 2017

@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?)

@totaam
Copy link
Collaborator Author

totaam commented Mar 12, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant