Screen tearing on any game

Hello! I've recently wiped my drive and installed Zorin OS 18 Core onto my main computer. Everything's been really smooth, the GPU drivers were installed and everything seemed fine, until I downloaded Steam and launched a game using Proton. I had a lot of screen tearing issues, I even tried enabling V-sync but it just made it even worse by adding more!! The only solution I found to this is to use Wayland, but it was really glitchy so I switched back.

I also tried some native Linux games, and they had the same issue. Screen tearing, V-sync made it worse.

My specs:
i5-8600
GT 1030
32GB DDR4

Driver: nvidia-driver-580 (proprietary)

Is Steam installed as Flatpak or .deb? If .deb: Is it from the Zorin Repo's or from Steam directly? Did You tried a different Nvidia Driver? Is Fractional Scaling active?

I installed Steam in Software from Zorin's repository. I haven't tried a different Nvidia driver yet, and fractional scaling is disabled. Do I try a driver that is marked as tested? (nvidia-driver-535 is the only one which appears tested for me)

Maybe try the Version from Steam directly:

The 535 would be a Startpoint. Maybe try it with installing over the Terminal. To do that, first uninstall the current Driver with:

sudo apt purge nvidia* libnvidia*

Then type

sudo apt autoremove

to remove File Rests. But take a Look at the List of the to be removed files before You delete them. Then to install the Nvidia Driver type:

sudo apt install nvidia-driver-535 nvidia-dkms-535

Switch to Xorg and compare if Wayland or Xorg runs better with it. Repeat these Steps to try different Driver Versions. Simply replace the Driver Number.

I reinstalled Steam, then I downgraded my drivers to 535 and I still experience screen tearing related issues. Again, Wayland does fix this, but there are annoying downsides: windows have a glitching border around them when putting them in full screen, Steam's app being extremely slow and stuttery, some apps/games' UI just doesn't render, etc.

I also tried 570 and 470. They didn't make a difference either. I could try Nouveau, but chances are slim it'll work any better since it hasn't been updated for quite a while from what I can see, and two proprietary drivers are usually better these days as I've read online.

In which port is the cable plugged into? What you describe sounds like either Prime Offloading on the Intel UHD 630 GPU or the UHD 630 is handling the entirety of compositing.

You can also check with:

xrandr --listproviders

Look to see if Intel is 0 and Nvidia is 1.

If the Intel is doing the scan out, while Nvidia does the rendering, you can see a lot of tearing.

Wayland will cover up the issue, rather than solve it - and as you point out, com es with other glitches.

So, in your Nvidia settings, ensure the following:

  • Enable Force Full Composition Pipeline
  • Apply to the active display
  • Save to X configuration

Keep Vsync off, for now. I think it made things worse because it was being applied to the wrong GPU.

The cable is plugged into the GPU on my main monitor. I got the following output from the command, Intel is not even present:

Providers: number : 2
Provider 0: id: 0x1b7 cap: 0x1, Source Output crtcs: 2 outputs: 2 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x1f9 cap: 0x6, Sink Output, Source Offload crtcs: 3 outputs: 6 associated providers: 1 name:modesetting

I also tried enabling Force Full Composition Pipeline but games now really struggle to run in some areas, unlike earlier. It did remove the screen tearing though. Would an AMD GPU solve these issues? I will search for an option if it would.

This is your Intel.

And that it is modesetting tells us that the above is likely accurate - Nvidia is Hybrid PRime Offloading, it handles rendering, while Intel is handling the Scan Out.

Is Prime Syncing active?

xrandr --verbose | grep -i "PRIME Synchronization"

If it is 0, then it is disabled.

And if so, you need to enable DRM, which can be done with a kernel parameter:

DO Not use nomodeset, but instead use nvidia-drm.modeset=1.
It should look like
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"
when you save the file.

Be sure to run sudo update-grub before rebooting to test.
After reboot, disable Force Full Composition Pipeline and keep Vysnc disabled, and test.

Most likely, yes and admittedly, a Nvidia 1060 could stand an upgrade. It is too old for modern games.
If you are using a base system, minimal gaming and all are older games - primary use is browsing the web, documents and work - then I would think the 1060 should be fine.
If using Graphics intensive work, Graphical design work, modern games - then the 1060 is too far out of support. Ignoring tearing; it would perform poorly and drop a lot.

Yes, I got 1 when checking for Prime Syncing. I applied the modeset parameter and it worked, it got rid of the screen tearing in most games and disabled Prime Syncing (I verified afterwards). I did notice my secondary monitor doesn't get signal anymore though, since it was plugged into the mobo. Is there a way to make it so the iGPU still works, but seperately?

One more question: do you know a graphics card that is suitable for a 300W PSU? I'm using a refurb office computer, and the case most likely cannot fit a bigger power supply, and the GTX 1060 requires atleast 400W minimum.

The parameter enables Prime syncing, which I think you need... Did you manually disable it, after?

Oh my bad, I thought I was supposed to apply the parameter if I have 1, not 0. :sweat_smile:

Do I revert the changes I made? Now the command that checks for it outputs nothing.

There would be the Question how long the Card could be, but maybe a Sapphire Pulse 9060, something like this.