Unable to increase Kwin refresh rate

I recently switched to Endeavour KDE from Manjaro KDE. Unfortunately, I’ve been struggling to get my monitor setup to properly match my old one in Manjaro, even when using the same config files.

My setup is a primary 3440x1440@100Hz, and a secondary 2560x1440@60Hz (natively 4K but I scale it down). Unfortunately, when both are plugged in and the compositor is enabled, I cannot get the primary monitor to actually display at 100Hz. My GPU is a 960 running the binary drivers as well.

My ~/.config/kwinrc:

[$Version]
update_info=kwin.upd:replace-scalein-with-scale,kwin.upd:port-minimizeanimation-effect-to-js,kwin.upd:port-scale-effect-to-js,kwin.upd:port-dimscreen-effect-to-js,kwin.upd:auto-bordersiz>

[Compositing]
GLCore=true
GLPreferBufferSwap=n
GLTextureFilter=0
HiddenPreviews=5
MaxFPS=100
OpenGLIsUnsafe=false
RefreshRate=100
WindowsBlockCompositing=false
XRenderSmoothScale=false

[Desktops]
Id_1=9bc26d83-ee08-4e17-a89d-b5804471312a
Number=1
Rows=1

[Effect-PresentWindows]
BorderActivateAll=9

[TabBox]
BorderActivate=9
DesktopLayout=org.kde.breeze.desktop
DesktopListLayout=org.kde.breeze.desktop
LayoutName=org.kde.breeze.desktop

[Windows]
ActiveMouseScreen=true
DelayFocusInterval=0
FocusPolicy=FocusFollowsMouse

[org.kde.kdecoration2]
BorderSize=None
BorderSizeAuto=false
ButtonsOnLeft=M
library=org.kde.kwin.aurorae
theme=__aurorae__svg__Arc-OSX-Dark

My /etc/X11/xorg.conf:

  GNU nano 5.6.1                                                                            xorg.conf                                                                                      
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 460.56

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer CZ350CK"
    HorizSync       151.0 - 151.0
    VertRefresh     60.0 - 100.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:11:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-2"
    Option         "metamodes" "DP-0: 3440x1440_100 +2560+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, HDMI-0: 2560x1440 +0+0; DP-0: nvidia-auto-select +0+0; DP-0: 3>
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Using these exact same settings in a Manjaro KDE Live USB, Kwin does get to running at 100Hz. But for whatever reason, this doesn’t translate to Endeavour and I can’t find any mention of what other differences there may be. Any help would be appreciated.

Manjaro detects the hardware and installs drivers with their own script. So there might be something else they are changing.

I had the same issue a while back and the problem was how the monitors were plugged into the GPU. So switching the input ports made the monitor with 144Hz “first”. Suddenly it worked. That’s maybe something Manjaro deals with automatically.

Keep in mind, that X can’t handle different refresh rates on two monitors. So the first monitor will dictate the refresh rate and the second will use it, too, even if it’s not able to properly display it.

So switching the input ports made the monitor with 144Hz “first”. Suddenly it worked.

I did try swapping the outputs for the two monitors earlier on to no avail. But maybe a different set of output ports and input ports may help.

Keep in mind, that X can’t handle different refresh rates on two monitors. So the first monitor will dictate the refresh rate and the second will use it, too, even if it’s not able to properly display it.

Yup, I was able to see that as on my Manjaro setup, the secondary 60Hz monitor would still have some tearing issues. But given it wasn’t used for gaming or anything, it wasn’t as big of a deal.

In case its useful, I did test running compton/picom and no issues right out of the box in terms of refresh rates. Some other issues though so I’d preferably stay on Kwin if possible.

Edit: For anyone looking at this for the same issues, I just ended up switching to Picom and spending the time to get it to my liking. Now my main monitor is a smooth 100Hz and secondary monitor has minimal tearing (more than good enough for that text pages/message/videos that I use that for).