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

GUACAMOLE-377: Address performance regression related to migration to guac_display. #1045

Open
wants to merge 3 commits into
base: staging/1.6.0
Choose a base branch
from

Conversation

mike-jumper
Copy link
Contributor

This partly reverts the changes introduced by d6db8fa (#681), restoring the previous client-side frame handling.

The new asynchronous flush mechanism leveraging requestAnimationFrame() does not perform as well as the old synchronous flush. This appears to be due to delays in when the browser actually allows the frame to proceed, which cause the client to lag behind.

A future change that could improve things further might be to process graphical changes in a WebWorker when available.

The asynchronous flush mechanism leveraging requestAnimationFrame() does
not perform as well as the old synchronous flush. This appears to be due
to delays in when the browser actually allows the frame to proceed,
causing the client to lag behind.

The old synchronous flush mechanism does not suffer from such issues.
@mike-jumper mike-jumper changed the title GUACAMOLE-377: Revert to synchronous flush (asynchronous is slower). GUACAMOLE-377: Address performance regression related to migration to guac_display. Jan 29, 2025
@mike-jumper
Copy link
Contributor Author

mike-jumper commented Jan 29, 2025

I've added some additional changes here that should significantly help with latency. By using the new ImageDecoder object where available (essentially any browser except on iOS), we can decode image streams as they are received without having to wait for the whole image contents to become available.

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

Successfully merging this pull request may close these issues.

1 participant