One way to have the cake and eat it too is to upgrade to a high-refresh rate display. No tearing + less latency + smoother display. Although it's diminishing returns even 60Hz -> 144Hz+ will make a lot of difference. On a 240Hz display, vsync penalty is just 4ms.
Also if you are using a miniLED M-class MBP, its pixel response is abysmal.
I've been running uncomposited X for years to reduce latency, but after getting a dual 120 Hz monitor setup, I might finally consider Wayland! This is good advice.
Too bad vscode doesn't support higher refresh rates. It's locked to 60 for some reason I haven't been able to grasp.
Yep, have been planning to upgrade to a 240hz+ OLED for awhile! I find the typing input latency on my M1 MacBook Pro to be pretty abysmal when using the built-in retina display and no external monitor — I almost feel like I can only get work done when I have it plugged into my external monitor in clamshell mode and disable vsync.
This is one of those things where if your applications are written using native frameworks the difference is minimal, and you get the benefit of an actual smooth experience. Meanwhile if the app is a "custom lightweight framework", you're likely just burning CPU cycles.
Desktop programs should only repaint when they need to. So you are only actually rendering the programs at hundreds of hertz when something is animated.
Comments
One way to have the cake and eat it too is to upgrade to a high-refresh rate display. No tearing + less latency + smoother display. Although it's diminishing returns even 60Hz -> 144Hz+ will make a lot of difference. On a 240Hz display, vsync penalty is just 4ms.
Also if you are using a miniLED M-class MBP, its pixel response is abysmal.
I've been running uncomposited X for years to reduce latency, but after getting a dual 120 Hz monitor setup, I might finally consider Wayland! This is good advice.
Too bad vscode doesn't support higher refresh rates. It's locked to 60 for some reason I haven't been able to grasp.
Since vscode is an electron app, have you tried opening it with
$ open -a open -a Visual\ Studio\ Code --args --disable-gpu-vsync --disable-smooth-scrolling --disable-frame-rate-limit
Yes, that doesn't help unfortunately. There is a github issue with a long discussion, and none of the tips have seemed to help.
https://github.com/microsoft/vscode/issues/65142
Yep, have been planning to upgrade to a 240hz+ OLED for awhile! I find the typing input latency on my M1 MacBook Pro to be pretty abysmal when using the built-in retina display and no external monitor — I almost feel like I can only get work done when I have it plugged into my external monitor in clamshell mode and disable vsync.
"abysmal"?? Literally the first time I've seen someone negatively mention latency on a recent Macbook
Pixel response time is something like 30ms on MacBook Pro. So the 120hz screen can feel more like 30hz.
I'm happy to report I have no idea what you're talking about and find the typing on the Macbook the best computer experience I ever had :D
I'll be careful not to use higher refresh rates devices though, that could show me what you're talking about :)
It just seems so wasteful to run desktop and office programs at hundreds of hertz…
This is one of those things where if your applications are written using native frameworks the difference is minimal, and you get the benefit of an actual smooth experience. Meanwhile if the app is a "custom lightweight framework", you're likely just burning CPU cycles.
How so? Anything under 1000Hz has obvious delays: https://youtu.be/vOvQCPLkPt4?si=oXDiV9gagyZdnkkM
Desktop programs should only repaint when they need to. So you are only actually rendering the programs at hundreds of hertz when something is animated.