Split out from #87, where it was reported alongside the vertical tab strip work. It is not a side-dock problem, so it gets its own issue.
What was reported
@sosokun sees a 1-5 s freeze when switching between tabs, most visibly at 0:20-0:24 of the recording below, switching from pxm1 to sys-el9. Shorter stalls happen on other switches too.
https://github.com/user-attachments/assets/f7672947-7086-4ec0-9423-4ce35f72adb7
What we already know
Not specific to the side dock.
The reporter confirmed the same delays with every tab on the top strip, so the vertical strip work
(#87) is not the cause and this outlives it. All tabs are live SSH sessions, not local shells.
Reported on v0.10.0 nightly (cfaedc8).
Reporter environment:
|
|
| OS |
CachyOS Linux Rolling (x86_64), kernel 7.1.3-2-cachyos |
| Display |
Wayland, KDE |
| Renderer |
Vulkan, NVIDIA GeForce RTX 4080 SUPER |
Leading theory (unconfirmed)
A terminal buffer reflow on reveal.
A background tab is not resized while it is hidden, so if the window geometry changed in the meantime, making it visible reflows its entire scrollback in one go, which can take a while on a large buffer. That would explain why the stall scales with the specific tab rather than being uniform. This is a theory, not a diagnosis. It has not been reproduced locally.
What would settle it
The Performance HUD (Settings > Advanced > Performance HUD) measures the terminal frame time, and the reveal-time re-layout is inside what it measures. So a screenshot of the HUD taken during or right after a slow switch splits the problem in two: a huge frame (hundreds of ms to seconds) exactly on the switch means the cost is the terminal re-layout, and the fix has a precise target; the HUD staying low while the app still hangs rules the terminal out entirely and moves the search elsewhere (compositor, surface reconfigure, the iced layout pass). Deliberately not guess-fixing this before the measurement exists: both branches lead to completely different code, and the wrong guess would add complexity to a path that is already correct.
Also useful, if easy to check
Does it happen with the window untouched since launch, or only after a resize / sidebar toggle / layout change? Is the slow tab always one with a lot of scrollback or a long-running session? Any tab, or consistently the same one?
Split out from #87, where it was reported alongside the vertical tab strip work. It is not a side-dock problem, so it gets its own issue.
What was reported
@sosokun sees a 1-5 s freeze when switching between tabs, most visibly at 0:20-0:24 of the recording below, switching from
pxm1tosys-el9. Shorter stalls happen on other switches too.https://github.com/user-attachments/assets/f7672947-7086-4ec0-9423-4ce35f72adb7
What we already know
Not specific to the side dock.
The reporter confirmed the same delays with every tab on the top strip, so the vertical strip work
(#87) is not the cause and this outlives it. All tabs are live SSH sessions, not local shells.
Reported on
v0.10.0nightly (cfaedc8).Reporter environment:
Leading theory (unconfirmed)
A terminal buffer reflow on reveal.
A background tab is not resized while it is hidden, so if the window geometry changed in the meantime, making it visible reflows its entire scrollback in one go, which can take a while on a large buffer. That would explain why the stall scales with the specific tab rather than being uniform. This is a theory, not a diagnosis. It has not been reproduced locally.
What would settle it
The Performance HUD (Settings > Advanced > Performance HUD) measures the terminal frame time, and the reveal-time re-layout is inside what it measures. So a screenshot of the HUD taken during or right after a slow switch splits the problem in two: a huge frame (hundreds of ms to seconds) exactly on the switch means the cost is the terminal re-layout, and the fix has a precise target; the HUD staying low while the app still hangs rules the terminal out entirely and moves the search elsewhere (compositor, surface reconfigure, the iced layout pass). Deliberately not guess-fixing this before the measurement exists: both branches lead to completely different code, and the wrong guess would add complexity to a path that is already correct.
Also useful, if easy to check
Does it happen with the window untouched since launch, or only after a resize / sidebar toggle / layout change? Is the slow tab always one with a lot of scrollback or a long-running session? Any tab, or consistently the same one?