From 80c0c07250d22f69d3fa05cb1700302d66180eb8 Mon Sep 17 00:00:00 2001 From: Can Celik Date: Mon, 28 Sep 2026 16:19:42 +0300 Subject: perf: send scrolling pane output as row shifts and skip blank cells (#4711) * perf: send scrolling pane output as row shifts and skip blank cells * fix: keep expanded scroll patches disjoint for the fast presentation path --- src/protocol/surface_delta.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/protocol/surface_delta.rs') diff --git a/src/protocol/surface_delta.rs b/src/protocol/surface_delta.rs index 8f94633b..b0abe4da 100644 --- a/src/protocol/surface_delta.rs +++ b/src/protocol/surface_delta.rs @@ -224,7 +224,7 @@ mod tests { } fn reconstruct(last: &PaneSurfaceFrame, next: &PaneSurfaceFrame) -> ServerMessage { - let mut decoder = crate::protocol::surface_reuse::Decoder::new(true); + let mut decoder = crate::protocol::surface_reuse::Decoder::new(true, false); decoder .decode(ServerMessage::PaneSurface(last.clone())) .unwrap(); @@ -384,7 +384,7 @@ mod tests { 8 => corrupt.surface.projection_revision = 0, _ => unreachable!(), } - let mut decoder = crate::protocol::surface_reuse::Decoder::new(true); + let mut decoder = crate::protocol::surface_reuse::Decoder::new(true, false); decoder .decode(ServerMessage::PaneSurface(last.clone())) .unwrap(); @@ -409,7 +409,7 @@ mod tests { let mut next = last.clone(); next.surface_revision += 1; next.frame.cells[0].symbol = "a".into(); - let mut decoder = crate::protocol::surface_reuse::Decoder::new(true); + let mut decoder = crate::protocol::surface_reuse::Decoder::new(true, false); decoder.decode(ServerMessage::PaneSurface(last)).unwrap(); decoder .decode(ServerMessage::PaneSurfacePatch( @@ -512,7 +512,7 @@ mod tests { .decode(ServerMessage::PaneSurface(last.clone())) .unwrap(); assert!(legacy.decode(update.clone()).is_err()); - let mut decoder = crate::protocol::surface_reuse::Decoder::new(true); + let mut decoder = crate::protocol::surface_reuse::Decoder::new(true, false); decoder.decode(ServerMessage::PaneSurface(last)).unwrap(); let ServerMessage::EndpointControl { data, .. } = &update else { panic!("delta"); -- cgit v1.2.3