Lately, I started experiencing screen tearing. It’s workable, but annoying as hell.
At first, it felt like those mostly happened when I used my browser (Firefox), so I turned off Performance Optimizations and tried Chrome, but with no luck. I noticed that tearings happen when I use editor and my console as well.
I downgraded my Kernel, but with no luck either.
Biggest change I had in a system, is that I started using Ghostty and since that’s always running with Quake Terminal, I assumed that this might a cultprit. But switching back to Kitty didn’t help.
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-linux 2024.05.06 true PCI
video-vesa 2017.03.12 true PCI
Screen tearing appears when your graphic card of the host machine falls out of sync with the monitor connected. Simply put, this happens because of the mismatch frame rate.
So I’d say check your frame-/refresh between your laptop and it’s screen. Another quote from the site:
Cap the refresh rate
If your monitor does not support the refresh rate coming out from the game, cap the refresh rate so that the image won’t exceed the limit that your monitor can handle. You may find the settings in your game console, the game app, or your computer settings. Use third-party software: There are many third-party software applications available that can cap your refresh rate, such as Nvidia Inspector, and AMD Radeon Software. These tools allow you to cap your refresh rate to a specific value. Use in-game settings: Many modern games have built-in options to cap your refresh rate. Check the video settings of your game to see if this option is available. Set up V-sync: V-sync (Vertical Synchronization) is a setting that synchronizes your GPU’s frame rate with your monitor’s refresh rate, preventing screen tearing. Enabling V-sync will cap your frame rate to your monitor’s refresh rate.
I double-checked that my laptop screen supports 90hz refresh rate and gave 60hz a try. I still saw some tearing happening.
But your comment did make me think, that fractional scaling might be the cause of this issue - I have scaled down from 150% to 125% and so far haven’t experienced any tearing.
With the change of scaling factor to 125% i’m seeing way less tearing, but it’s still there. Unfortunately, completely turning this off is unusable for me – 100% and 200% are too small or too big.
But it does feel like fractional scaling is the source of a problem.
Aw … it was hopeful.
Then again, if your desktop was working one might suspect vesa wasnt getting in the way at all.
This is not as complete as the usual inxis.
Maybe some things would be revealed then (like boot options);
inxi -Farz
This kernel is EOL and while still in the Stable/Testing Branch, will be dropped soon.
You might try the next LTS kernel 6.12, or the previous one 6.6.
I dont use it myself so any finer points may not be in my tool set, but it is noticeable that gnome constantly changes quicker than the extensions people almost universally use to beat into into a desirable shape. You might try disabling all extensions to check.
I can’t go to 6.6, because this kernel doesn’t play well with some of my hardware. But I enabled 6.12, this is the one I downgraded from.
That’s a great tip actually, I assumed that some extensions could be causing this and tried to disable some of them, without much luck. But I haven’t thought about disabling all of them.
There is a nice setting that does that (and remember all extensions that have been enabled)
gsettings set org.gnome.shell disable-user-extensions true
And another nice setting to turn those back on
gsettings set org.gnome.shell disable-user-extensions false
So far, haven’t seen any issues (running for an hour), but lets see if that the case with longer use.
It has been a while. I completely wiped off my system and tried KDE instead of GNOME (and love it).
But tearing is still here. I started to worry that it might be a hardware or monitor related, but I haven’t experienced this anywhere outside of Manjaro (I tried running Windows from live-cd).
As it turns out, if I switch to x11 – all tearing is gone. But with x11 double monitor setup doesn’t work great and fractional scaling is off for some software.
Tried all sort off Kernel’s, turning off extensions, changing refresh rate, changing screen sizes. Issue is not isolated to any particular software either, it happens with all the software I use.
I assume, that this issue is somehow related with wayland, but can’t find a solution. Might require some kernel parameters that I’m missing?
I’m literally running a fresh installation of Manjaro KDE now, so, pretty sure, that it’s not something I messed up with my fat fingers.
So with TearFree option on and the refresh rate set to 60 hz – screen tearing disappears on Wayland as well. It’s funny this happens, because on x11 90hz refresh rate works just fine.
It seems like Wayland doesn’t detect the proper refresh rate of my monitor.
xrandr --props 1 ✘
Screen 0: minimum 16 x 16, current 2944 x 1840, maximum 32767 x 32767
eDP-1 connected primary 2944x1840+0+0 (normal left inverted right x axis y axis) 312mm x 195mm
RANDR Emulation: 1
non-desktop: 0
supported: 0, 1
2944x1840 59.98*+
2048x1536 59.95
1920x1440 59.97
1600x1200 59.87
1440x1080 59.99
1400x1050 59.98
1280x1024 59.89
1280x960 59.94
1152x864 59.96
1024x768 59.92
800x600 59.86
640x480 59.38
320x240 59.52
2560x1600 59.99
1920x1200 59.88
1680x1050 59.95
1440x900 59.89
1280x800 59.81