Desktop stutters and window decorations

Hi guys,

Ever since I installed Manjaro and Nvidia proprietary drivers on my desktop PC, my whole desktop stutters every time a new window is opened, whether it's from opening an app or a dialog box, similar to the description in this locked post:

I tried many solutions in many posts in this forum, Arch Wiki, and elsewhere, such as:

  • Checking "Enable Composition Pipeline" in the Nvidia X Server Settings
  • Using kwin-lowlatency (which I'm running now by the way)
  • Modifying /etc/X11/xorg.conf and /etc/profile.d/kwin.sh as described in this post

Unfortunately, none of those above seem to address the stuttering.

But a couple weeks ago, I discovered that using any window decoration that came with Manjaro KDE (Breeze, Oxygen, or Plastik) reduced the stutters by a lot, so I thought that any Aurorae window decoration, regardless of how they're installed, makes the stuttering worse.

I also noticed that toggling "Enable Composition Pipeline" off and back on seems to eliminate the cursor stutter every time a new window opens, but it did nothing to the desktop stutters. But the next time I log in to Plasma, the cursor stutters come back, so I had to do this every time I log in.

Does anyone experience this annoyance with any variant of kwin or know how to eliminate them completely?

I'm using version 440 of the propiretary Nvidia driver and Plasma 5.18 on a GTX 1060 6GB. My current window decoration is Materia Dark, which is based on Aurorae and was installed from the community repository.

Here is my inxi -Fxzc0 output:

Have you tried changing all the settings for the compositor in the system settings utility. A log out or restart is usually required to have the settings changes be applied.

I already did. Setting the rendering backend to Xrender in kwin isn't an option for me because that doesn't use GPU acceleration and blur doesn't work with that backend. Even none of the additional options exclusive to kwin-lowlatency such as min/max latency reduction reduced the stuttering.

Have you tried creating a new user account running strictly the default theming to see if the issue is present.

1 Like

Not saying this is not an option but i would avoid it. Since you have an nvidia GPU, maybe try this:

1 Like

I've already applied all of those settings in xorg.conf and kwin.sh, and the stutters still doesn't seem to go away. The kwin.sh tweaks, however, did eliminate tearing, which is a totally different thing I'm no longer worried about.

In the meantime, I decided to try out breeze-enhanced-git from the AUR yesterday, which I find it more of a workaround than a solution. Since it's obviously based on Breeze, the stuttering frequency appears to be the same (less than using any Aurorae theme) as if I were to use the built-in vanilla Breeze window decoration.

I just tried this, and out of the box the same exact behavior happens. I had to move my cursor around every time I open any app, and I can still notice its jittery motion during those moments.

Might want to add also this option, right under those you added:

Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

See if helps.

1 Like

That doesn't seem to work. I see no change with the stutters even after adding the above line and logging out and back in.

Needs a reboot. Is about a change in Xorg ...

1 Like

I just rebooted with the option applied. It did nothing to mitigate the whole desktop stuttering, but the cursor stutters seems to have disappeared on its own. Since I'm using Breeze Enhanced for my window decoration theme, I had to switch back to the Aurorae-based Materia Dark theme to see if the stutters got reduced, and it appears that there's no change in that department.


Out of curiosity, I decided to look into journalctl logs and found lots of errors similar to the following, all of which are from around the same time the stutters occurred:

kwin_x11[1188]: file:///usr/share/kwin/aurorae/MenuButton.qml:22: TypeError: Cannot read property 'closeOnDoubleClickOnMenu' of null
kwin_x11[1188]: QPainter::begin: Paint device returned engine == 0, type: 3
kwin_x11[1188]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 33804, resource id: 39868243, major code: 2 (ChangeWindowAttributes), minor code: 0

The XCB error message seems to occur less frequently when I use Breeze (Enhanced). It also turns out that someone already mentioned about those messages in this forum years ago:

Another topic said those messages appear every time they close a window:

So, I guess that those XCB error messages seem to be irrelevant to the stutters I'm getting, but maybe those Aurorae errors spamming my journalctl logs could be behind the more noticeable stutters when using those kinds of window decorations.

Does anyone have any suggestions based on this?

Just an update: I rebooted my PC yesterday and apparently the cursor stutters have returned, and there's still no change to the desktop stutters. I feel like I'm already at a loss here.

What we were talking about? :slight_smile:

Enabling Force Full Composition Pipeline via xorg.conf:

Right, and what about my first link with the triplebuffer and kwin.sh ? Are still applied ?
Mind you, with this settings you should not have any issues. So, there is something else going on there

They have been already applied way before I created this topic. Again, it only solved the tearing problem, not the stutters which is the main topic here.

What i recommended is a cure even for a GT 620 ... So, have you tried to connect your monitor to another port in the GPU ?

Sorry for the long reply back. I tried all available ports on my GPU (3x DisplayPort, 1x HDMI), and none of them made a difference with the stutters. I didn't restart each time I switched ports because I believe that the stutters are more of linked to rendering stuff on screen rather the overall output. So, if the output was causing the stutters in the first place, my cursor would still stutter after toggling any of the Composition Pipeline checkboxes in Nvidia X Server Settings.

Sidenote: My monitor only supports HDMI for digital input (my GTX 1060 doesn't provide analog VGA output), so I've been using a DP-to-HDMI cable to connect the monitor to my PC.

You have to save that config and restart the xorg, aka reboot the system with the new config to take effect.
Please share:
cat /etc/X11/mhwd.d/nvidia.conf
as it seems to me you are doing things the Windows way ... :slight_smile:

Well, you're kind of right because it's true I'm not yet in the ranks of you and other frequent helpers here as an advanced desktop Linux user yet. And what I mean by toggling the checkboxes on and off is this: I (un)check at least one of the two Composition Pipeline checkboxes, click Apply, click Yes on the confirmation dialog that appears, and repeat. I'm aware my language is weird at times, but does that make sense to you now?

Anyway, here is /etc/X11/mhwd.d/nvidia.conf (I haven't touched it yet):

Contents
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 440.44

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
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"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
        Option "NoLogo" "1"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "COMPOSITE" "Enable"
EndSection


Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"

Forum kindly sponsored by