diff options
author | Christian Duerr <contact@christianduerr.com> | 2021-01-25 22:23:08 +0100 |
---|---|---|
committer | Christian Duerr <contact@christianduerr.com> | 2021-02-24 16:16:38 +0000 |
commit | 9575aed68197ba783e50b922a6c3f9a78b8c7048 (patch) | |
tree | 5978f62ca3d0744864e483b00baff21e6f1c63d1 /alacritty_terminal/Cargo.toml | |
parent | 64abd7fb43febc53e27e63411a1eb06c633302bb (diff) | |
download | alacritty-9575aed68197ba783e50b922a6c3f9a78b8c7048.tar.gz alacritty-9575aed68197ba783e50b922a6c3f9a78b8c7048.zip |
Add support for synchronized updates
This implements support for temporarily freezing the terminal grid to
prevent rendering of incomplete frames.
This can be triggered using the escapes `DCS = 1 s` (start) and
`DCS = 2 s` (end).
The synchronization is implemented by forwarding all received PTY bytes
to a 2 MiB buffer. This should allow updating the entire grid even if it
is fairly dense. Unfortunately this also means that another branch is
necessary in Alacritty's parser which does have a slight performance
impact.
In a previous version the freezing was implemented by caching the
renderable grid state whenever a synchronized update is started. While
this strategy makes it possible to implement this without any
performance impact without synchronized updates, a significant
performance overhead is introduced whenever a synchronized update is
started. Since this can happen thousands of times per frame, it is not a
feasible solution.
While it would be possible to render at most one synchronized update per
frame, it is possible that another synchronized update comes in at any
time and stays active for an extended period. As a result the state
visible before the long synchronization would be the first received
update per frame, not the last, which could lead to the user missing
important information during the long freezing interval.
Fixes #598.
Diffstat (limited to 'alacritty_terminal/Cargo.toml')
-rw-r--r-- | alacritty_terminal/Cargo.toml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/alacritty_terminal/Cargo.toml b/alacritty_terminal/Cargo.toml index 41b8b1f8..9fae1557 100644 --- a/alacritty_terminal/Cargo.toml +++ b/alacritty_terminal/Cargo.toml @@ -25,10 +25,10 @@ log = "0.4" unicode-width = "0.1" base64 = "0.12.0" regex-automata = "0.1.9" -dirs = "2.0.2" +dirs = "3.0.1" [target.'cfg(unix)'.dependencies] -nix = "0.18.0" +nix = "0.19.0" signal-hook = { version = "0.1", features = ["mio-support"] } [target.'cfg(windows)'.dependencies] |