Performance regression with NVIDIA 390.25

  1. I tried your solution and found this:
  2. I have the 390.25 driver installed
  3. I unchecked the 2 pipeline items in the Nvidia conf file and rebooted
  4. After reboot I started a video and had terrible tearing
  5. I enabled the 2 pipeline items again, rebooted, watched the video and no tearing at all.
  6. I added the two lines you mentioned into but they don’t make a difference so I deleted them again.

No matter what I do, my card needs the pipeline options in the Nvidia conf file to make tearing go away.

For the best results I need:

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

    Option         "AllowIndirectGLXProtocol" "off"
    Option         "TripleBuffer" "on"

in 20-nvidia.conf and

export __GL_YIELD="USLEEP"




I think the same.
We have all more or less set the Nvidia driver in the past for this f***ing video and kde screen tearing.
Today it seems that NVIDIA is FINALLY solved the problem…


Can you try keeping only “metamodes” “nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }” ?


You appear to contradict yourself here.

Have you tried removing all custom options from all locations they are set?


No, because I have tried several steps, with and without the pipeline items, with and without the other 2 in every combination I could think off.
Is there another setting or combination I should try to make it work? Is my card maybe too old for the new driver? I’m just thinking out loud now.


Yes - remove all custom options from all locations they are set. Only then can they be ruled out as a factor.

Just a few posts up @Kevlyn did this and the “issues” went away:


Just to be clear: which options do I need to get rid off? Are there any more than the ones I have been playing with so far?

I started with kevin’s setup and it didn’t work for me.


I don’t know what options you’ve added over the years. You’re the only one who knows that.

As I indicated in my post above, I have no options set at all and it works perfectly well for me.

Are you reading any posts other than the very last one in the thread?


Maybe can you uninstall/install Nvidia driver to start on the basic parameters ?


I uninstalled the 390.25 driver, removed the conf file and rebooted.
The computer booted into the nouveau driver. I watched a movie and I had tearing and no sound.
I then re-installed the 390.25 driver through Manjaro settingsmanager and got a new conf file with this content:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 390.25  (buildmeister@swio-display-x86-rhel47-03)  Wed Jan 24 20:46:04 PST 2018

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"

Section "Files"

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"

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

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

Section "Extensions"
    Option         "Composite" "Enable"

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

Also now I have tearing when watching the movie.
Scrolling this webpage makes the editing field jump all over the place.
What will be my next step? What do I need to change to make things better?


The first step I’d like to try would be moving the config file out of the way entirely so X uses its built-in autodetection of displays. If it doesn’t work (e.g. X no longer loads) it’s easy enough to move the file back into place via a text console.

The part that’s of particular interest is the “Monitor” section (e.g. the VertRefresh is set; if your monitor’s native refresh is e.g. 75Hz this might lead to tearing).

If you have any customisations in your script it will be a good idea to remove those too.


Do you mean or is there a as well?

No, without the conf file and after a reboot I see tearing as well. My monitor is set for 60Hz, that’s all it can do.


Ah, yes, I do.

OK - at least we know it’s not introduced by the custom options. Next step would be to check KDE compositor settings and also try enabling “Sync to VBlank” within the NVIDIA X Server Settings. Let’s keep configuration file changes to a minimum for now.


Sync to Vblank was on all the time.
I have changed the compositor from OpenGL 3.1 to XRender
What to do with the item Tearing prevention (“vsync”) which is set to never?


Hmm… so it may not be an issue driver-side…

I don’t have KDE so you’ll need to do some testing on your end. :wink: But I’d enable VSYNC.


So what is the best way to roll back to the previous nvidia driver? 390.25 is unusable with the performance regressions.


Please read the thread again, then come back and ask a question that’s related to the discussion if you need to.

From the discussion so far it appears that the “regressions” are due to configuration customisations people have made and left in place despite the driver improvements/changes.


I have experimented some more and whatever I did it just didn’t make a big difference, until … I restored the original Nvidia.conf file with the compositionpipeline settings.
In KDE settings I now have Rendering backend set to XRender, Tearing prevention (vsync) set to Full screen repaints and also scrolling in Chromium is much better now. I would even say it is good now.
This is the screen section in the conf file:

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24

Only, and sorry to do this but I can’t stress this enough, only with the 2 pipeline items included, the tearing is gone. Other changes in KDE settings made the screen more robust during scrolling a long webpage but I do need the two items in the nvidia conf file.


This is fine - we’ve now gone through the full gamut of possible settings in a reasonably systematic way. And, if you’re in a situation where the system is usable again, all the better. :slight_smile:

With future driver updates it’s going to be worth trying these again to see which are still necessary, especially if it doesn’t affect everyone in the same way.


I don’t see much improvement after trying various combinations of these options. The only thing that’s affected is tearing. If I enable ForceFullCompositionPipeline I can remove the __GL_YIELD=“USLEEP” variable, and vice versa.

Performance on chrome is still horrible no matter what.