kwin-lowlatency icon indicating copy to clipboard operation
kwin-lowlatency copied to clipboard

Multiple monitors with different refresh rates

Open rokups opened this issue 5 years ago • 8 comments

I am very excited about this project. Upstream kwin does bad job when it deals with multiple monitors of different refresh rates. They get locked down to lowest available refresh rate. Do you plan to solve this and allow each monitor run at it's own refresh rate? I found that Option "TearFree" "true" option somewhat remedies the situation but it is not perfect. There still is some stuttering, albeit almost inperceivable.

rokups avatar May 08 '19 06:05 rokups

In a future it may be possible to do this, but the problem is that I feel this will require a major rewrite of the rendering/sync code to be able to handle multiple monitors. Furthermore, if I recall correctly most graphics cards only support synchronizing to a single monitor (which is why e.g. NVIDIA has an environment variable called __GL_SYNC_DISPLAY_DEVICE to set this monitor). It is likely I am wrong, however.

But I will be considering this for an upcoming version.

tildearrow avatar May 08 '19 08:05 tildearrow

Sounds like this would get real ugly. What if i have 144hz and 60hz monitor, would it be any simpler to run one of them at 120hz and another on 60hz and have them in sync while 60hz monitor would skip every other frame?

rokups avatar May 08 '19 09:05 rokups

It wouldn't be that simpler. Even if your other display runs at half the framerate there still are minor random timing differences that may cause lots of stuttering for the 60Hz display in some cases.

Right now I will be pretty busy but I am going to take a look at how I can solve this when it's night for me.

tildearrow avatar May 08 '19 17:05 tildearrow

Found an additional bug with multiple refreshrate monitors!

Left - 144hz

Right - 75hz

Using MaxFPS=144 & RefreshRate=144 in ~/.config/kwinrc (as some apps such as Firefox were still locked to 75(?)hz without it.)

With kwin-lowlatency (AUR 5.15.5-1): https://streamable.com/tqelw

With normal kwin (kwin-5.15.4-1): https://streamable.com/2ynsa

Fullscreening Discord (from the AUR) seems to lock both monitors down to 75hz only when using kwin-lowlatency

Tony556 avatar May 09 '19 22:05 Tony556

So I just began testing KWin-lowlatency under a multi-monitor setup and just found another bug: if unredirection is on, and an application is full-screen in a monitor, the compositor severely slows down for the other monitors.

tildearrow avatar May 11 '19 03:05 tildearrow

Additional note, @tildearrow, is that Discord itself seems to always run at 60(?)fps. I'm not sure if that is part of the bug you and I are experiencing or not (and I doubt the Discord framelock outside of fullscreen is a bug with your implementation).

Tony556 avatar May 11 '19 04:05 Tony556

So I just began testing KWin-lowlatency under a multi-monitor setup and just found another bug: if unredirection is on, and an application is full-screen in a monitor, the compositor severely slows down for the other monitors.

I just noticed the same issue with my setup and came across this issue. I am using three monitors, all run on 60 Hz. If one of them has a full screen app running, the others seem to lock to 15 fps.

Is there a more specific issue I can refer to in case more info is needed?

svenmauch avatar May 19 '20 10:05 svenmauch

Additional note, @tildearrow, is that Discord itself seems to always run at 60(?)fps. I'm not sure if that is part of the bug you and I are experiencing or not (and I doubt the Discord framelock outside of fullscreen is a bug with your implementation).

This is actually an issue on Chromium. Chromium is locked to 60fps on multi-monitor setups, somehow, and Discord uses Electron, which uses Chromium.

Kodehawa avatar Jun 28 '20 20:06 Kodehawa