2

I have a GeForce RTX 2070 SUPER, running Arch with GNOME on my computer.

I do recall having screen-tearing before the recent nvidia driver updates (specifically from 450.66-21 to 450.66-22 on Arch), but activating Full Composition Pipeline was able to fix it. However, upon updating, the screen tearing came back. Upgrading to nvidia-455 did not fix any of the screen-tearing. Throughout this entire process Full Composition Pipeline was active, and was able to reduce some screen-tearing, but not all of it all the time.

With no kernel modesetting and no additional options to my xorg.conf besides Full Composition Pipeline, there is no screen-tearing, but there are suspend problems. I see a blank screen immediately after awakening that hangs for a second or two before the screen loads. Such a suspend problem did not occur before the above nvidia driver updates. After the screen loads, some applications (e.g. anki and vscode) have black artifacts and other graphical issues. For example, in anki, the entire screen is black while in vscode, I see some black rectangles off to the side and the text for the terminal prompt disappears. Changing workspaces gets rid of the blank anki screen while hovering over the artifacts and reopening the in-application terminal fixes vscode issues. Nevertheless, this is an extremely annoying issue that also affects some GNOME themes I tried to apply. I suspect this same issue affects other applications.

I spent up to an hour and half researching the problem on the web and trying different solutions, but to no avail.

Modesetting (e.g. nvidia-drm.modeset=1) without TripleBuffering and IndirectGLXProtocol options in xorg.conf results in no suspend problems, but significant screen-tearing

Turning TripleBuffering on and/or turning IndirectGLXProtocol off results in the above suspend problems but no screen-tearing (with and without kernel modesetting).

As you can see, I am either left with having screen-tearing but no suspend problems or no screen-tearing and suspend problems. Downgrading just the nvidia packages to a version before the driver update that broke my setup breaks lightdm. Downgrading to a mirror on September 17 (before the driver update) is doable, but not ideal as I would rather have software updates with graphical inconveniences than a computer stuck in time.

I am not entirely sure this is an issue with the nvidia driver specifically, but given the above events, I believe it is quite plausible.

Please tell me if you are experiencing the same issues. I would like to know what solutions you have tried as well.

4
  • Please ask here as well: forums.developer.nvidia.com/c/gpu-unix-graphics/linux/148 Commented Sep 25, 2020 at 2:30
  • Thanks, but this question's acceptable in this forum right? I'm a relatively new StackExchange user, so I'm not sure what's the norm around here. Commented Sep 25, 2020 at 2:53
  • It's perfectly acceptable but you'll more likely get help at the specialized NVIDIA linux forum vs. a generic Unix/Linux forum where your question will disappear from the front page in less than a few hours. Commented Sep 25, 2020 at 3:08
  • Thanks! I have posts of this on the GEFORCE and Nvidia Developer forums now. Commented Sep 25, 2020 at 3:11

1 Answer 1

1

I solved the problem!

The good folks on Arch Linux forums identified the screen tearing inconsistencies I had with race conditions during the boot process. If the nvidia module loads properly, then I don't have screen tearing. But if it doesn't, then the computer reverts to some other driver (I'm pretty sure nouveau), and screen tearing occurs. To fix that, I make sure nvidia modules are always loaded properly by adding the nvidia modules to the MODULES list in /etc/mkinitcpio.conf like this:

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

I also learned that the suspend graphical problems I faced are caused by nvidia disposing of what it thinks to be "unnecessary" video memory during a suspend. To fix this, I loaded the nvidia module with an experimental option by adding this line to my /etc/modprobe.d/nvidia.conf:

options nvidia NVreg_PreserveVideoMemoryAllocations=1

Finally, I rebuilt the initramfs image with sudo mkinitcpio -p linux and rebooted. nvidia now consistently loads during boot (I can tell because no more screentearing!), and all graphical issues for anki and vscode have disappeared.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .