Set max_fps to 120 by default instead of 60
Is your feature request related to a problem? Please describe. I recently reviewed the Ghostty terminal emulator, a couple of days ago, and my only "complaint" we could say about WezTerm is that it feels more laggy, choppy, and delay-i compared to Ghostty, I've been using WezTerm like that for a month, and also when I compared it to Kitty that was my only "complaint" or let's call it feedback.
Once done with my YouTube, which can be found here someone was kind enough to let me know in the comments that WezTerm was capped at 60FPS but setting it to 120FPS made it better, I had searched for settings I could change in the past to make this better, but had no luck, so yesterday I searched for FPS and found this max_fps parameter, which seems insignificant, so I pumped it to 120 and Voilá, that did it.
All the complaints I had about WezTerm are gone, and I feel it's now as fast as Ghostty and Kitty
Describe the solution you'd like
max_fps = 120 to be the default
If not possible, I'd like to understand the reasons behind the decision, as I've read multiple other comments that they experience the same "issue" with WezTerm, it's "slower" than kitty, when in fact it's not
Additional context Here's my other video in which I reviewed WezTerm like a month ago My take yesterday on the Ghostty video was not fair, because WezTerm is as fast, so I'll release a follow up video soon
I love WezTerm, having this small feature would make it perfect for a lot of people, and would like to understand why it's not the default
As to why it's not the default, there are displays with only 60 fps. Setting it to 120 fps by default would consume much more power on those systems for rendering extra frames.
However, I think a good solution is that the default could auto detect the frame rate of the display.
I use an external monitor, it's an asus PA278CV, and it's a 60Hz monitor, nothing fancy, do Hz relate to FPS? (sorry but I have no idea about video stuff at all) My point is, even if my monitor is 60Hz, setting WezTerm to 120 FPS makes it run way smoother and the difference feels like night and day
60HZ does in fact mean 60fps.
Hertz is a unit to measure one (cycle, event, frame, whatever) per second.
120FPS on 60HZ should be the exact same as 60FPS.
I looked up your display and it says it runs at 75HZ. If you run 60FPS on a 75HZ, you will necessarily get some inconsistent and slightly jittery frames.
Try seeing if you can see the difference between 120FPS and 75FPS. If anything, 75FPS on your monitor should be even smoother than 120FPS.
Appreciate you taking the time to explain, and you're right, I thought my monitor was 60Hz, so maybe those additional 15Hz are the ones making the difference, I'm out at the moment, but will try setting it up for 75Hz when I'm back in the next days.
- I just tested this, set max_fps to 75, as my monitor is 75Hz, but it's still choppy, laggy, and breaky, but if I set max_fps to 120 it feels smoother, and I don't know why, as my monitor is 75Hz
- So I don't feel a difference by settings max_fps to 60 or 75, but I do feel a difference from 75 to 120
- Something else worth noting, is that even though my monitor is 75Hz, due to the resolution I use it's set to 60Hz, as the only way I could get 75Hz is by using what seems like a "native" resolution but that is too small for me
- for testing, I set it to that native resolution and I set max_fps to 75 or 120 I don't feel a difference, its choppy either way and the resolution is too small for me that I cannot really tell a difference
❯ system_profiler SPDisplaysDataType
Graphics/Displays:
Apple M1:
Chipset Model: Apple M1
Type: GPU
Bus: Built-In
Total Number of Cores: 8
Vendor: Apple (0x106b)
Metal Support: Metal 3
Displays:
PA278CV:
Resolution: 3200 x 1800 (QHD+ - Wide Quad Extended Graphics Array Plus)
UI Looks like: 1600 x 900 @ 60.00Hz
Main Display: Yes
Mirror: Off
Online: Yes
Rotation: Supported
https://blurbusters.com/faq/benefits-of-frame-rate-above-refresh-rate/#:~:text=Running%20at%20frame%20rates%20much,%2Dbuffered%20modes%2C%20etc.
60HZ does in fact mean 60fps.
Hertz is a unit to measure one (cycle, event, frame, whatever) per second.
120FPS on 60HZ should be the exact same as 60FPS.
I looked up your display and it says it runs at 75HZ. If you run 60FPS on a 75HZ, you will necessarily get some inconsistent and slightly jittery frames.
Try seeing if you can see the difference between 120FPS and 75FPS. If anything, 75FPS on your monitor should be even smoother than 120FPS.
Just to clarify something hertz is the refresh rate of the screen and its not the same as fps. This is more of a gaming topic than some would expect. when you have an app that runs at a much higher FPS than your screens Hz rate what will happen is a lower input latency and way less screen tearing(waaay smoother ) since there should always be a Frame ready when your screen needs it.
Anyone who has played any comp video game (CS, league, starcraft) will now this and notice it pretty easily.
This issue should be addressed not from a power consumption perspective but from a performance perspective. If your terminal looks choppy you wont be using it for long.
You guys should default to 120 or screens refresh rate (whatever is higher) and give users a disclaimer bout it so people don't get a bad first impression
I almost just dismissed WezTerm completely because of the 60fps cap, because I am using a 240Hz Monitor and Ghostty felt so much smoother. I set the max_fps to 240 and now it's buttery smooth as expected.