Ubuntu – Ubuntu 15.04 unsolvable graphic tearing

15.04graphicsnvidiatearingxorg

My Nvidia Geforce GTX 850m issues are:

  • Tearing on everything( window moving, video in Smplayer, video online in Firefox and Chromium, Scrolling in both Firefox and Chromium)
  • no vsync settings on the Nvidia Xserver settings Window.

My driver and system info is:

  • System: Ubuntu 15.04
  • Processor: Intel Core i7-4700HQ CPU @ 2.40Ghz x 4
  • Memory: 7.7 GiB
  • Hard Drives: 1 TB
  • Graphics Card:

    • Intel Corporation 4th Gen Core Processor Integrated Graphics Controller.
    • Nvidia GeForce GTX 850m.
    • Driver Version: 346.59 from nvidia-346-update

Its in Dual Boot with Windows 10.

What I've tried:

  • xorg.conf configurations (triple buffer, usleep, powermizer maximum performance)
  • X server settings (OpenGL: maximum performance, all antialiasing options all powermizer options)
  • ccsm (Sync to Vblank, undirected, 120hz refresh rate)
  • I have basically tried everything I found with "nvidia" "ubuntu" and "tearing".

I had Linux Mint and had the same tearing issues, among other severe graphics issues (Random freezing, etc.). I have no issues till now with my nvidia card with Windows 10.

Anybody got a solution?

Best Answer

I had similar a problem with a K2000M on my laptop and using Linux Mint Cinnamon 17.2.

Expecially using a second monitor, video tearing appeared on my primary display.

The solution was to use ForceFullCompositionPipeline together with TripleBuffer

First do sudo nvidia-xconfig if the X11 configuration file xorg.conf is absent, then

sudo nano /etc/X11/xorg.conf

and add the line Option "TripleBuffer" "On" under the Section "Screen":

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "TripleBuffer" "On"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "LVDS-0: 1920x1080_60 +0+840, DP-4: 1920x1080_60 +1920+0 {rotation=left}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

In order to be able to use ForceFullCompositionPipeline = On, one could modify the line Option "metamodes" in xorg.conf, but the problem was that when using a secondary monitor, the monitors.xml file (for the display manager) in ~/.config was overriding any modification issued by X11 reading xorg.conf at login (see here).

The solution for me was to run a script at login (using System -> Preferences -> Startup Applications) with the following command:

nvidia-settings --assign="CurrentMetaMode=LVDS-0: 1920x1080_60 +0+840 { ForceFullCompositionPipeline = On }, DP-4: 1920x1080_60 +1920+0 { ForceFullCompositionPipeline = On, rotation=left }"

where LVDS-0 is my primary display and DP-4 my secondary display (use xrandr -q for the display names)

The last lines of /var/log/Xorg.0.log now shows:

...
[   136.640] (II) NVIDIA(0): Setting mode "LVDS-0:1920x1080_60+0+840{ForceFullCompositionPipeline=On},DP-4:1920x1080_60+1920+0{ForceFullCompositionPipeline=On,rotation=left}"
...

and the video tearing disappeared...

Hope this helps on Ubuntu

Related Question