0

Info: Asus fx550j laptop, i7, 8 gb RAM, 15.04 x86_64 upgraded to 15.10.

lspci -k | grep -i nvidia

3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M] (rev a2)
Kernel driver in use: nvidia

lspci -k | grep -i vga

VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)(no kernel driver)

dmesg | grep -i nvidia

[    9.917116] [drm] Initialized nvidia-drm 0.0.0 20150116 for 0000:01:00.0 on minor 1
[    9.917118] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  355.11  Wed Aug 26 16:35:41 PDT 2015

Package nvidia-355 installed from Launchpad graphics-drivers PPA. As I have been experiencing the dreaded screen tearing problem, (while moving desktop windows, scrolling in apps and Firefox browser, choppy video in VLC, both with and without compiz,) I've been doing a bit of research, but coming up empty-handed. I believe I've dug up some interesting info in my troubleshooting that may be of use. I've experienced, and solved, a similar problem in a desktop computer with an Nvidia 660 card in openSUSE by including

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

in xorg.conf. An Ubuntu installation on the same desktop , installed at a later time, experienced no such screen tearing. Back to the laptop: One of the most puzzling things I've encountered is the fact that xorg.conf keeps getting overwritten to a failsafe version. Failsafe xorg.conf:

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "PCI:0@0:2:0"
    Option "AccelMethod" "None"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1@0:0:0"
    Option "ConstrainCursor" "off"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
    Option "IgnoreDisplayDevices" "CRT"
EndSection

nvidia-settings wants to make this xorg.conf:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 358.16  (buildd@lgw01-40)  Sat Nov 21 02:54:02 UTC 2015

Section "ServerLayout"
    Identifier     "layout"
    Screen      0  "Screen0" 0 0
    Inactive       "intel"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

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

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

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

Section "Device"
    Identifier     "intel"
    Driver         "modesetting"
    Option         "AccelMethod" "None"
    BusID          "PCI:0@0:2:0"
EndSection

Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    Option         "ConstrainCursor" "off"
    BusID          "PCI:1@0:0:0"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 950M"
EndSection

Section "Screen"
    Identifier     "intel"
    Device         "intel"
    Monitor        "Monitor0"
EndSection

Section "Screen"
    Identifier     "nvidia"
    Device         "nvidia"
    Monitor        "Monitor0"
    Option         "AllowEmptyInitialConfiguration" "on"
    Option         "IgnoreDisplayDevices" "CRT"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    DefaultDepth    24
    Option         "UseDisplayDevice" "none"
    SubSection     "Display"
        Virtual     1920 1080
        Depth       24
    EndSubSection
EndSection

However, this keeps getting overwritten on reboot. Good thing, too, because it doesn't work from what I can see. I wanted to see what would happen if it did get read, so I made it immutable:

chattr +i /etc/X11/xorg.conf

That wouldn't even boot, so I had to change it back in shell. Other notable facts:

Glxinfo

shows GTX950m with appropriate drivers in use.

Before upgrading, I wiped the fs and did a clean install of 15.04 to see the baseline situation. Before the nvidia-355 drivers were installed, glxinfo showed Intel Haswell graphics were in use. The graphics situation seemed a bit choppy, but with no horizontal screen tearing at all. I did not try loading nouveau. None of the configuration changes in nvidia-settings seem to stick. Some settings are supposedly saved to nvidia-settings-rc in my home folder, but these do not survive a reboot. It does not look like anything of consequence is being saved there. I've already explained the xorg.conf situation. Nvidia-settings can't ID the monitor. I'm not sure if this is the normal situation for a laptop. X Server Display Configuration shows X Screen 0 (No Scanout). The horizontal screen tearing persists when I connect an external monitor which nvidia-settings correctly IDs as a Samsung, so I doubt that's related. There's no sync-to-vblank option in nvidia-settings. There's one in Compiz settings, in the open-GL subsection, but it's checked by default and does not appear to affect anything when unchecked.

Anyway. I simply must get this screen-tearing problem fixed. I'd sincerely appreciate any help.

  • I worked around the tearing issue by switching to Intel graphics in Nvidia Prime: It's beautiful! I got the idea from here: wiki.ubuntu.com/X/Config/HybridGraphics Now the obvious question I have is: Why do the low-end generic Intel graphics work so well, but the supposedly mid-range sophisticated Nvidia graphics look so plain awful? I'm not a gamer, but how could I even be sure if the Nvidia graphics card would be able to handle graphics-demanding games when it can't even handle open-GL screen savers as well as the Intel chip can? – Huaidan Dec 12 '15 at 2:03
1

I have the same Nvidia card and I'm afraid we'll have to wait. The issue is related to this:

https://devtalk.nvidia.com/default/topic/775691/linux/vsync-issue-nvidia-prime-ux32vd-with-gt620-m-/1

Pay close attention to fratti's comment at the end of page 3. There is a list of things that need to happen before our card can perform as it should.

  • Thanks. I've found Bumblebee (mostly) useful. It uses the Intel graphics for everything anyway, until the Nvidia graphics are explicitly invoked. This seems pretty close to what Hybrid graphics are supposed to accomplish anyway , albeit automatically through application demand. I find the tearing doesn't occur when running games in Primus mode. – Huaidan Dec 29 '15 at 4:33
  • Hmm maybe I should give Bumblebee a try too. Do you use it with the nouveau drivers? Because neither the nouveau drivers or the intel card work for me.. – Tristan Vanderaerden Dec 29 '15 at 9:14
  • The Bumblebee conf file has a section for nouveau configuration, so I'm fairly certain it should work. I wouldn't call Bumblebee an ideal solution, but according to the link you sent and others I've seen, xorg+nvidia won't have a true hybrid solution for some time yet. – Huaidan Dec 30 '15 at 3:29
  • Yes you are right. I will give it a try. Bumblebee doesn't have good performance, but it's the only thing we have right now. – Tristan Vanderaerden Dec 30 '15 at 9:03
  • Did you use a tutorial to install bumblebee? – Tristan Vanderaerden Dec 30 '15 at 9:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.