Replies: 12 comments
-
Hi! Thanks for filing; this makes sense to me. No ETA on when we can commit to it, though at first read it looks like implementation would be pretty straightforward. We're actually also Ghostty users, though I personally haven't seen much jank yet. I will say that traditionally you'll see some lag when redrawing very large TUIs on very large windows, and we do plan to address that in other ways as well. Few more questions, which will help us measure results a bit:
|
Beta Was this translation helpful? Give feedback.
-
Hi, just a quick response and its 3:30am (I couldn't sleep). This is a link to my ghostty discord message/video: https://discord.com/channels/1005603569187160125/1005603569711452192/1168783411968745482 - I can post that elsewhere in the morning if not accessible. The terminal window isn’t that large even even small term sizes produce the effect. This is on macOS Sonoma (Intel). |
Beta Was this translation helpful? Give feedback.
-
Got it, thank you. Attaching the video here for reference. It looks like the top and bottom are both different builds of Ghostty. Is that correct? Hope you get some sleep! Ghostty_-__I_s_s_smx3-integration.mp4 |
Beta Was this translation helpful? Give feedback.
-
I do have a patch implementing synchronized output. I've never followed up on it, as so far I had not seen a terminal where it would make a difference, but if ghostty benefits from this, I'll happily open a PR. |
Beta Was this translation helpful? Give feedback.
-
@meowgorithm the bottom version was WezTerm, with Ghostty at the top - which as Mitchel pointed out, still shows some tearing but not as much as Ghostty - mostly cause Ghostty is much more responsive. |
Beta Was this translation helpful? Give feedback.
-
@muesli Would you mind posting that patch or is it already pushed somewhere? I observed similar issues in Alacritty on Linux, which apparently should support synchronized output and I would be very interested to see if this helps. |
Beta Was this translation helpful? Give feedback.
-
@muesli any links to the patch? I am currently using this version |
Beta Was this translation helpful? Give feedback.
-
Hey, @Kyren223! Can you try with the latest version of Bubble Tea (v1.3.0)? There have been some major rendering performance improvements in v1.2.0 onward which have solved this sort of thing for a lot of people. Mode 2026 is a feature we'd like to include, but there's no ETA yet. I think for the vast majority of cases the bottleneck is actually in the rendering, not vsync. Also, the next pre-release of Bubble Tea v2, which we expect to release fairly soon, will include another overhaul to the renderer which we've seen speed up rendering and lower rendering bandwidth exponentially. |
Beta Was this translation helpful? Give feedback.
-
@meowgorithm are there any breaking changes from 1.1.1 to 1.3.0? or things that may potentially change functionality? I am pretty far ahead in development and wouldn't want to start migrating and changing a bunch of things. I won't be upgrading to v2, I tried migrating a while ago but it has too many breaking changes/issues currently. If v1.3.0 fixes it then great otherwise I'd love to see this feature getting prioritized (with a patch in v1), I might be willing to contribute to this myself as tearing makes the app feel way worse. |
Beta Was this translation helpful? Give feedback.
-
Nope, there are no breaking changes in the v1 branch (we take that pretty seriously). There's no patch that would fix this less than the internal tuning to the renderer introduced in v1.2.0. Also, for what it's worth, the next release of Bubble Tea v2 will look more like v1 in terms of the general API but yes, it's indeed still in alpha. |
Beta Was this translation helpful? Give feedback.
-
I've just started upgrading, it seems to fix the issues, at least from a quick test, Thanks! It also upgraded lipgloss which went from 0.13.0 -> 1.0.0 so it has a bunch of breaking changes I am working on fixing now. The main thing about v2 for me was the signature change for the update method, we have talked about it in discord some time ago. Also I have a question I'd like to ask you (or another maintaner), it's unrelated to this issue, do you mind if I DM you on discord? |
Beta Was this translation helpful? Give feedback.
-
If you don't mind, mention me on Discord so others who might know the answer can chime in too. Separately, I'm going to convert this issue into a discussion (for further discussion). Once we're ready to go ahead and add support for mode 2026 we'll convert this back to an issue. |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem? Please describe.
Recently I've been beta testing the new Ghostty terminal (https://mitchellh.com/ghostty), whose super fast performance has started revealing various refresh/tearing issues in other applications.
When running the Dagger (dagger.io) CI tool locally, and more so using experimental UI, I noticed A LOT of screen flicker, after discussing this on both the Ghostty and Dagger discords, I was pointed here.
Ghostty supports the Synchronized Output spec (https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036, inspired from iTerm) which aims to provide a contract between terminals and applications to reduce screen tearing and apparent UI flickering.
Describe the solution you'd like
I'm not a bubbletea user myself, but a user of tools using bubbletea, but I'd love to see the library adopt support for Synchronised Output and makes many users a lot less... tearful.
Beta Was this translation helpful? Give feedback.
All reactions