From ba5a254e111fffac69f82f076df75fcead452811 Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Tue, 28 Oct 2025 16:05:58 +0100 Subject: [PATCH] fix(topola-egui): Always clamp `dt` to `i.predicted_dt` `egui` clamps its `i.stable_dt` to `i.predicted_dt` only when egui requested a repaint during the last frame. I however sometimes experience severe stuttering, which means that this detection method is insufficient to ensure smoothness. So, let's clamp `dt` to `i.predicted_dt` and see if this helps. --- crates/topola-egui/src/viewport.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/topola-egui/src/viewport.rs b/crates/topola-egui/src/viewport.rs index 253d495..74abfcd 100644 --- a/crates/topola-egui/src/viewport.rs +++ b/crates/topola-egui/src/viewport.rs @@ -55,7 +55,13 @@ impl Viewport { menu_bar.multilayer_autoroute_options.planar.principal_layer, ), pointer_pos: latest_point, - dt: ctx.input(|i| i.stable_dt), + dt: ctx.input(|i| { + if i.stable_dt <= i.predicted_dt { + i.stable_dt + } else { + i.predicted_dt + } + }), }; workspace.advance_state_by_dt(