Screen flashes when logging in after installing the NVIDIA driver

After installing the NVIDIA driver from the Solus repos, I noticed that after every reboot, my screen flashes before the desktop environment is loaded. The issue does not exist when using the nouveau driver (I tried uninstalling the NVIDIA driver and with nouveau, only a black screen appears between the login process and the loading of the DE). When I reinstalled the NVIDIA driver, the screen flashed again as before.

I used nvidia-settings to create my /etc/X11/xorg.conf file, and I can see that the refresh rate of 144 Hz works, but the issue still persists.

I’m attaching a gif that shows the screen flash and the nvidia-bug-report.log file.

System info:
Solus with up-to-date packages
GTX 1080 Ti
Ryzen 1700X
144 Hz G-Sync monitor
Driver 440.82

solus-login

nvidia-bug-report.log (1.8 MB)

Two things come to my mind. First, the monitor’s advertised preferred mode is @60Hz, the xorg.conf switches it to @144Hz so this might come from the monitor, you could check if nouveau leaves it @60Hz on desktop. Second, you could check if enabling drm kms mitigates flashing by setting the kernel parameter
nvidia-drm.modeset=1

1 Like

Thanks for your answer. I’ll try it out

Okay, so setting the kernel parameter didn’t help.

But regarding your first point, I just tested on nouveau, and the refresh rate on the login screen was set to 60 Hz. In my DE, the refresh rate was still set to 144 Hz. I think that’s the reason there’s a black screen in between (monitor changing modes). So I set it to 60 Hz in the DE, and there’s a smooth transition. Now I wonder how to get it working with NVIDIA’s driver on 144 Hz.

Rather remove the metamode setting from xorg.conf or delete it altogether, then use the DE’s monitor manager to switch to 144Hz.

The problem with this is that without the xorg.conf, the login manager doesn’t run at 144 Hz and the screen still flashes.

I’ve also tried the line greeter-setup-script=xrandr --output DP-4 --mode 2560x1440 --rate 144 in the lightdm config, and while it worked, the flashing also happened.

Don’t know if this could be related to some internal g-sync setup, is it possible to disable g-sync in the monitor for testing?

1 Like

I actually think the monitor is the culprit… Unfortunately, it doesn’t allow disabling G-Sync through the OSD (with DisplayPort it defaults to “G-Sync mode”). I tried disabling G-Sync in nvidia-settings, but that obviously doesn’t help.

What I also tried was enabling “ForceCompositionPipeline” in nvidia-settings. I noticed that when I applied that setting in the GUI, the screen flashed just like at login for a second and then went back to normal. With this option enabled (and G-Sync disabled) there was no flashing when logging in. However, right after the greeter session ended, the DE didn’t load properly and I had to drop into a TTY to disable it again.

Do you know why it doesn’t boot properly with that option enabled? (I also disabled “Allow G-Sync”)

I believe the flashing actually occurs because the monitor switches modes or something…

Anyway, I think I’m going to leave it at that. Thanks for your assistance, I really appreciate it.