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

Use buffer age to perform partial rendering #5863

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

kchibisov
Copy link
Member

@kchibisov kchibisov commented Feb 7, 2022

This commit makes uses of buffer age extension and recent
alacritty_terminal damage tracking to perform partial redraws on
platforms supporting GLX_EXT_buffer_age and EGL_EXT_buffer_age.

The alacritty_terminal damage tracking was enhanced in a way that it
reports damage only up to occ, so partial redraws during scrolling
are possible.

Fixes #5843.

--
List of known issues

[ ] Search and hints are broken
[ ] Message bar is broken
[ ] Clearing isn't optimal
[ ] debug.highlight_damage is broken
[ ] Glutin patch isn't upstreamed yet
[ ] Glyphs which draw outside of their boundaries are not properly updated
[ ] Config reload should invalidate damage.

This commit makes uses of buffer age extension and recent
alacritty_terminal damage tracking to perform partial redraws on
platforms supporting `GLX_EXT_buffer_age` and `EGL_EXT_buffer_age`.

The alacritty_terminal damage tracking was enhanced in a way that it
reports damage only up to `occ`, so partial redraws during scrolling
are possible.

Fixes alacritty#5843.
@kchibisov
Copy link
Member Author

If folks on Wayland/X11 could test this it'll help a lot.

When testing look for a glitches and if you found them describe what triggers and now they look.

For now I'd say that there're some related to clearing in edge cases, since it's not yet optimized. But most things should work and the latency is decreased dramatically.

@kchibisov
Copy link
Member Author

@perfbot

@perfbot
Copy link

perfbot commented Feb 8, 2022

results

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

Successfully merging this pull request may close these issues.

Perform partial rendering when possible
2 participants