352.63 regression: "NoEdidModes" breaks custom "ModeLine" modes (Ubuntu 14.04)

On my Ubuntu installation, my installation was recently (and automatically) upgraded to 352.63 due to a security fix from version 346.xx, which is no longer available in the repositories. Before the upgrade my xorg.conf with custom modelines was working perfectly, but after reboot X no longer started. Looking at the log file it seems that X cannot find any valid modes for my screen anymore, which is strange because the log also states “Mode X is valid” for all my custom modelines. I removed the NoEdidModes mode validation option, and suddenly it works again including my custom modelines, but now I have a bunch of EDID modes that I don’t want. This might not seem like a big deal but for my setup to work optimally I need to make sure X ONLY uses the modelines that I specify manually, because the EDID-modes are sub-optimal (for example outputs 23.971 Hz instead of 23.976).

Steps to reproduce
In /etc/X11/xorg.conf
Use a custom ModeLine corresponding to an EDID mode present in your hardware in the “Monitor” section, e.g.

ModeLine "1920x1080p_60" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync

It’s imperative that the timings match the mode in your hardware’s EDID exactly to reproduce the bug. They can be extracted using the “get-edid” and “edid-decode” commands available in the Ubuntu repositories.

Then, put this in the “Screen” section

Option "ExactModeTimingsDVI" "true"
Option "ModeValidation" "NoVesaModes, NoXServerModes, NoPredefinedModes, NoEdidModes, NoUserModes"

and restart X. On Ubuntu 14.04, press Ctrl+Alt+SysRq+K to kill everything in the current session (lightdm/X will be restarted automatically)
OR
switch to tty1 (Ctrl+Alt+F1), login and run

sudo service lightdm stop
sudo service lightdm start

Expected result
X should start normally with the screen set to the specified mode.

Actual result
Startup fails and X goes into failsafe mode.

nvidia-bug-report.log.gz (88.9 KB)

Stab in the dark, but doesn’t ‘NoUserModes’ preclude your custom mode also?

No, not according to the README

  • "NoUserModes": additional modes can be added to the mode pool dynamically, using the NV-CONTROL X extension; this argument prohibits user-specified modes via the NV-CONTROL X extension.
  • "NoCustomModes": when constructing the mode pool for a display device, the X driver uses custom ModeLines specified in the X config file (through the "Mode" or "ModeLine" entries in the Monitor Section) as one of the mode sources; this argument disables use of these modes.
  • "NoEdidModes": when constructing the mode pool for a display device, the X driver uses any modes listed in the display device's EDID as one of the mode sources; this argument disables use of EDID-specified modes.
  • /etc/X11/xorg.conf.d/nvidia.conf

    Section "Monitor"
            Identifier      "Monitor0"
            ModeLine        "1920x1080p_60" 148.352 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
    EndSection
    
    Section "Screen"
            Identifier      "Screen0"
            Monitor         "Monitor0"
            Option          "ExactModeTimingsDVI" "true"
            Option          "ModeValidation" "NoEdidModes, NoXServerModes, NoVesaModes"
    EndSection
    

    [tom@localhost ~]$ xrandr
    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
    DVI-I-0 disconnected primary (normal left inverted right x axis y axis)
    DVI-I-1 disconnected (normal left inverted right x axis y axis)
    DP-0 disconnected (normal left inverted right x axis y axis)
    HDMI-0 disconnected (normal left inverted right x axis y axis)
    DP-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 290mm
    1920x1080 59.94*+

    I am on Arch Linux though (nvidia 358.16 / xorg-server 1.18) .

    A little more context would be helpful. Are you saying this configuration works for you? Do you mind posting your Xorg log file (with loglevel at 6 or higher)?

    Oh I thought the xrandr told well enough. Yeah the configuration pasted works for me and it’s basically the only xorg conf used (well there’s another one with only a OutputClass Section for drm matching).

    As shown in the xrandr output, NoEdidModes, NoXServerModes and NoVesaModes are enough for “cleaning up” every modeline. “ExactModeTimingsDVI” (btw there’s the equivalence AllowNonEdidModes in ModeValidation) allows me to add the custom modeline I wrote in the Monitor Section.

    This is the how (the only) modeline looks in xrandr --verbose:

    1920x1080 (0x1c3) 148.352MHz +HSync +VSync *current +preferred
    h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz
    v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz

    which matches with what I wrote (and pixel clock 148.352 is not something nvidia would generate, yet).

    Attached is the requested xorg log. Btw why don’t you attach yours of the failure you experience too? That might actually tell more than the output from the bug report script.

    P.S. This time I tried everything with 352.63 (on also xorg-server 1.18).
    Xorg.0.log (193 KB)

    Okey, thanks. Obviously this is not something that affects all configurations. Either way I downgraded to 346.96 and the problem went away, so clearly something that changed in 352.63 caused this. Also, I discovered another bug, when switching to 1920x1080 @ 50 Hz, the graphics card would output 50 Hz but the AVR/TV would not change accordingly, still expecting a 60 Hz signal, resulting in a heavily distorted image. I suspect this has something to do with how it negotiates the video mode over HDMI. Again, this problem vanished when I downgraded to 346.96.

    Btw, my Xorg log is part of the bug report output.

    The Xorg log in the bug report isn’t the one that logs how it failed when you have used the ModeValidation options.

    The log included in the bug report is the log located at /var/log/Xorg.0.log, I don’t know what other log you’re talking about.

    Sorry I think I just mis-read and didn’t saw the error I was looking for.

    Anyway I can now reproduce the issue you’re experiencing. Apparently the driver somehow prevents custom modes that exists in EDID to be used. (perhaps even modes in the databases for “VesaModes” and “XServerModes” of the driver when “NoVesaModes” and “NoXServerModes” option is used, that I didn’t test.)

    For example these are the modelines generated by the driver for my EDID:

    1920x1080 (0x1c3) 148.500MHz +HSync +VSync *current +preferred
            h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.50KHz
            v: height 1080 start 1084 end 1089 total 1125           clock  60.00Hz
      1920x1080 (0x1c4) 148.350MHz +HSync +VSync
            h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.43KHz
            v: height 1080 start 1084 end 1089 total 1125           clock  59.94Hz
      1680x1050 (0x1c5) 146.250MHz -HSync +VSync
            h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
            v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz
      1280x1024 (0x1c6) 108.000MHz +HSync +VSync
            h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
            v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
      1280x960 (0x1c7) 108.000MHz +HSync +VSync
            h: width  1280 start 1376 end 1488 total 1800 skew    0 clock  60.00KHz
            v: height  960 start  961 end  964 total 1000           clock  60.00Hz
      1280x720 (0x1c8) 74.250MHz +HSync +VSync
            h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  45.00KHz
            v: height  720 start  725 end  730 total  750           clock  60.00Hz
      1280x720 (0x1c9) 74.180MHz +HSync +VSync
            h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  44.96KHz
            v: height  720 start  725 end  730 total  750           clock  59.94Hz
      1024x768 (0x1ca) 65.000MHz -HSync -VSync
            h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
            v: height  768 start  771 end  777 total  806           clock  60.00Hz
      800x600 (0x1cb) 40.000MHz +HSync +VSync
            h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
            v: height  600 start  601 end  605 total  628           clock  60.32Hz
      720x480 (0x1cc) 27.000MHz -HSync -VSync
            h: width   720 start  736 end  798 total  858 skew    0 clock  31.47KHz
            v: height  480 start  489 end  495 total  525           clock  59.94Hz
      640x480 (0x1cd) 25.175MHz -HSync -VSync
            h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
            v: height  480 start  490 end  492 total  525           clock  59.94Hz
      640x480 (0x1ce) 25.170MHz -HSync -VSync
            h: width   640 start  656 end  752 total  800 skew    0 clock  31.46KHz
            v: height  480 start  490 end  492 total  525           clock  59.93Hz
    

    And here is an xorg conf that can be used to reproduce the problem:

    Section "Monitor"
    	Identifier	"Monitor0"
    
    #	ModeLine	"1920x1080" 148.5   1920 2008 2052 2200 1080 1084 1089 1125               # working
    #	ModeLine	"1920x1080" 148.5   1920 2008 2052 2200 1080 1084 1089 1125 +HSync +VSync # not working
    
    #	ModeLine	"1920x1080" 148.35  1920 2008 2052 2200 1080 1084 1089 1125               # working
    #	ModeLine	"1920x1080" 148.35  1920 2008 2052 2200 1080 1084 1089 1125 +HSync +VSync # working
    
    #	ModeLine	"1680x1050" 146.25  1680 1784 1960 2240 1050 1053 1059 1089               # working 
    #	ModeLine	"1680x1050" 146.25  1680 1784 1960 2240 1050 1053 1059 1089 -HSync +VSync # not working
    
    #	ModeLine	"1280x1024" 108     1280 1328 1440 1688 1024 1025 1028 1066               # working
    #	ModeLine	"1280x1024" 108     1280 1328 1440 1688 1024 1025 1028 1066 +HSync +VSync # not working
    
    #	ModeLine	"1280x960"  108     1280 1376 1488 1800 960  961  964  1000               # working
    #	ModeLine	"1280x960"  108     1280 1376 1488 1800 960  961  964  1000 +HSync +VSync # not working
    
    #	ModeLine	"1280x720"  74.25   1280 1390 1430 1650 720  725  730  750                # working
    #	ModeLine	"1280x720"  74.25   1280 1390 1430 1650 720  725  730  750  +HSync +VSync # not working
    
    #	ModeLine	"1280x720"  74.18   1280 1390 1430 1650 720  725  730  750                # working
    #	ModeLine	"1280x720"  74.18   1280 1390 1430 1650 720  725  730  750  +HSync +VSync # working
    
    #	ModeLine	"1024x768"  65      1024 1048 1184 1344 768  771  777  806                # working
    #	ModeLine	"1024x768"  65      1024 1048 1184 1344 768  771  777  806  -HSync -VSync # not working
    
    #	ModeLine	"800x600"   40      800  840  968  1056 600  601  605  628                # working
    #	ModeLine	"800x600"   40      800  840  968  1056 600  601  605  628  +HSync +VSync # not working
    
    #	ModeLine	"720x480"   27      720  736  798  858  480  489  495  525                # working
    #	ModeLine	"720x480"   27      720  736  798  858  480  489  495  525  -HSync -VSync # not working
    
    #	ModeLine	"640x480"   25.175  640  656  752  800  480  490  492  525                # working
    #	ModeLine	"640x480"   25.175  640  656  752  800  480  490  492  525  -HSync -VSync # not working
    
    #	ModeLine	"640x480"   25.17   640  656  752  800  480  490  492  525                # working
    #	ModeLine	"640x480"   25.17   640  656  752  800  480  490  492  525  -HSync -VSync # not working
    
    EndSection
    
    Section "Screen"
    	Identifier	"Screen0"
    	Monitor		"Monitor0"
    	Option		"ModeValidation" "AllowNonEdidModes, NoVesaModes, NoXServerModes, NoEdidModes"
    

    As you can see, one of the workaround is to leave out the polarities of HSync and VSync. (But I don’t know if xorg can actually figure out the polarities that should be used, especially when they aren’t “+HSync +VSync”, so by “# working” I only means that X is started successfully). If you adjust any of the numeric values in the modelines for a bit, it will “work” too.

    The only exceptions seems to be those “repeated modes” with pixel clock “NTSC-adjusted”. (i.e. 1080p@148.35MHz and 720p@74.18MHz, they don’t have seperate representation in EDID)

    Apparently this issue isn’t limited to custom modeline. The following is a simpler xorg xonf which can reproduce the issue:

    Section "Monitor"
    	Identifier	"Monitor0"
    	ModeLine	"1920x1080" 148.5   1920 2008 2052 2200 1080 1084 1089 1125 +HSync +VSync # not working
    	ModeLine	"1920x1080" 148.35  1920 2008 2052 2200 1080 1084 1089 1125 +HSync +VSync # working
    	ModeLine	"1680x1050" 146.25  1680 1784 1960 2240 1050 1053 1059 1089 -HSync +VSync # not working
    	ModeLine	"1280x720"  74.25   1280 1390 1430 1650 720  725  730  750  +HSync +VSync # not working
    	ModeLine	"1280x720"  74.18   1280 1390 1430 1650 720  725  730  750  +HSync +VSync # working
    	ModeLine	"720x480"   27      720  736  798  858  480  489  495  525  -HSync -VSync # not working
    	ModeLine	"640x480"   25.17   640  656  752  800  480  490  492  525  -HSync -VSync # not working
    
    EndSection
    
    Section "Screen"
    	Identifier	"Screen0"
    	Monitor		"Monitor0"
    	Option		"ModeValidation" "AllowNonEdidModes, NoXServerModes, NoEdidModes"
    
    	# This allows me to start X successfully to test xrandr
    	Option		"MetaModes" "1920x1080_60_0" # 148.35MHz
    EndSection
    

    In this conf I do not use “NoVesaModes” so the driver generates the corresponding modelines for me. However, they can’t be used by the option “MetaModes” either since they seems to be “banned” by “NoEdidModes”.

    If I try to switch to any of the “banned” modes with xrandr, the following is given:

    xrandr: Configure crtc 0 failed
    X Error of failed request:  BadValue (integer parameter out of range for operation)
      Major opcode of failed request:  140 (RANDR)
      Minor opcode of failed request:  21 (RRSetCrtcConfig)
      Value in failed request:  0x0
      Serial number of failed request:  47
      Current serial number in output stream:  47
    

    Relevant part of Xorg log:

    [  1619.386] (II) NVIDIA(GPU-0): --- Modes in ModePool for Eizo EV2336W (DFP-3) ---
    [  1619.386] (II) NVIDIA(GPU-0): "nvidia-auto-select" : 1024 x  768 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "1920x1080"          : 1920 x 1080 @  60.0 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1920x1080_60"       : 1920 x 1080 @  60.0 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1920x1080_60_0"     : 1920 x 1080 @  59.9 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1680x1050"          : 1680 x 1050 @  60.0 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1680x1050_60"       : 1680 x 1050 @  60.0 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x1024"          : 1280 x 1024 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x1024_60"       : 1280 x 1024 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x960"           : 1280 x  960 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x960_60"        : 1280 x  960 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x720"           : 1280 x  720 @  60.0 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x720_60"        : 1280 x  720 @  60.0 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1280x720_60_0"      : 1280 x  720 @  59.9 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "1024x768"           : 1024 x  768 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "1024x768_60"        : 1024 x  768 @  60.0 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "800x600"            :  800 x  600 @  60.3 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "800x600_60"         :  800 x  600 @  60.3 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "720x480"            :  720 x  480 @  59.9 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "720x480_60"         :  720 x  480 @  59.9 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): "640x480"            :  640 x  480 @  59.9 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "640x480_60"         :  640 x  480 @  59.9 Hz  (from: VESA)
    [  1619.386] (II) NVIDIA(GPU-0): "640x480_60_0"       :  640 x  480 @  59.9 Hz  (from: X Configuration file ModeLine)
    [  1619.386] (II) NVIDIA(GPU-0): --- End of ModePool for Eizo EV2336W (DFP-3): ---
    [  1619.386] (II) NVIDIA(GPU-0): 
    [  1619.386] (II) NVIDIA(0): Display device(s) assigned to X screen 0:
    [  1619.386] (II) NVIDIA(0):   CRT-0
    [  1619.386] (II) NVIDIA(0):   DFP-0
    [  1619.386] (II) NVIDIA(0):   DFP-1
    [  1619.386] (II) NVIDIA(0):   DFP-2
    [  1619.386] (II) NVIDIA(0):   Eizo EV2336W (DFP-3)
    [  1619.386] (II) NVIDIA(0): Using MetaMode string: "1920x1080_60_0"
    [  1619.386] (II) NVIDIA(0): Requested modes:
    [  1619.386] (II) NVIDIA(0):     "1920x1080_60_0"
    [  1619.386] (II) NVIDIA(0): Validated MetaModes:
    [  1619.386] (II) NVIDIA(0): MetaMode "1920x1080_60_0":
    [  1619.386] (II) NVIDIA(0):     Size: 1920 x 1080
    [  1619.386] (II) NVIDIA(0):     Eizo EV2336W (DFP-3): "1920x1080_60_0"
    [  1619.386] (II) NVIDIA(0):         Size          : 1920 x 1080
    [  1619.386] (II) NVIDIA(0):         Offset        : +0 +0
    [  1619.386] (II) NVIDIA(0):         Panning
    [  1619.386] (II) NVIDIA(0):          Domain       : 1920 x 1080
    [  1619.386] (II) NVIDIA(0):          Tracking Area: 1920 x 1080 +0 +0
    [  1619.386] (II) NVIDIA(0):          Border       : 0,0,0,0
    [  1619.386] (II) NVIDIA(0): Virtual screen size determined to be 1920 x 1080
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:nvidia-auto-select"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1920x1080"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1920x1080_60"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1680x1050"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1680x1050_60"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1280x1024"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1280x1024_60"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1280x960"; removing.
    [  1619.386] (WW) NVIDIA(0): No valid modes for "DP-1:1280x960_60"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:1280x720"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:1280x720_60"; removing.
    [  1619.387] (II) NVIDIA(0): Adding implicit MetaMode: "DP-1: 1280x720_60_0"
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:1024x768"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:1024x768_60"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:800x600"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:800x600_60"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:720x480"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:720x480_60"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:640x480"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:640x480_60"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for "DP-1:640x480_60_0"; removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for
    [  1619.387] (WW) NVIDIA(0):     "DP-1:nvidia-auto-select{ViewPortIn=1024x768,ViewPortOut=1024x768+0+0}";
    [  1619.387] (WW) NVIDIA(0):     removing.
    [  1619.387] (WW) NVIDIA(0): No valid modes for
    [  1619.387] (WW) NVIDIA(0):     "DP-1:nvidia-auto-select{ViewPortIn=800x600,ViewPortOut=1024x768+0+0}";
    [  1619.387] (WW) NVIDIA(0):     removing.
    [  1619.388] (WW) NVIDIA(0): No valid modes for
    [  1619.388] (WW) NVIDIA(0):     "DP-1:nvidia-auto-select{ViewPortIn=640x480,ViewPortOut=1024x768+0+0}";
    [  1619.388] (WW) NVIDIA(0):     removing.
    [  1619.388] (WW) NVIDIA(0): No valid modes for
    [  1619.388] (WW) NVIDIA(0):     "DP-1:nvidia-auto-select{ViewPortIn=1024x576,ViewPortOut=1024x576+0+96}";
    [  1619.388] (WW) NVIDIA(0):     removing.
    

    nvidia-bug-report.log.gz (137 KB)

    I tried nVidia 352.63 but didn’t like it so I went back to using nVidia 355.11 which (along with other versions of the nVidia binary driver) can be conveniently installed into Ubuntu / Linux Mint via the usual procedure after first exercising one of the following options:

    OPTION #1

    Ubuntu has their own nVidia GeForce graphics card driver ppa (maintained in part by one of the guys who maintain the ppa at xorg-edgers, OPTION #2 below):

    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt-get update
    

    After you have run the above commands, install an appropriate non-Beta version of the nVidia GeForce driver via Linux Mint’s ‘Driver Manager’.

    To determine whether or not the chosen version of the nVidia driver is a non-Beta release, compare its version number with those of the ‘Linux 64-bit’ nVidia drivers displayed on nVidia’s GeForce web site:

    Drivers | GeForce
    http://www.geforce.com/drivers

    August 13, 2015
    Ubuntu Now Has An Official PPA For Graphics Drivers
    http://itsfoss.com/ubuntu-official-ppa-graphics/#more-8094

    Proprietary GPU Drivers : “Graphics Drivers Team” team
    https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

    OPTION #2

    To get the latest nVidia GeForce graphics card drivers which are not yet available in Linux Mint 17.2 (or its Ubuntu contemporary); run the following commands in Terminal:

    sudo add-apt-repository ppa:xorg-edgers/ppa
    sudo apt-get update
    

    After you have run the above commands, install an appropriate non-Beta version of the nVidia GeForce driver via Linux Mint’s ‘Driver Manager’.

    To determine whether or not the chosen version of the nVidia driver is a non-Beta release, compare its version number with those of the ‘Linux 64-bit’ nVidia drivers displayed on nVidia’s GeForce web site:

    Drivers | GeForce
    http://www.geforce.com/drivers

    xorg-edgers fresh X crack : “xorg crack pushers” team
    https://launchpad.net/~xorg-edgers/+archive/ubuntu/ppa

    An unrelated tip re improving Unity’s performance:

    Installing CompizConfig Settings Manager will allow one to disable Animations and Fading Windows.

    Has this been fixed yet? As of 364.19, the changelog doesn’t mention anything about this issue. I don’t want to upgrade just to have my system break again.

    Does the developers even read this forum??? WTH Nvidia, no fix for this obvious bug for almost a year? How hard can it be? Give me the code and I’ll fix it for you!

    Still no response from Nvidia, and no mention in the changelog, just the rubber-stamp “test with the latest drivers” response. Problem is, to test the latest drivers I need to uninstall the old ones, in which case I can’t reinstall them again because they’ve been removed from the repositories!

    I’ve now tested with driver version 375.39 and 381.09 and can confirm the issue still persists, 17 months after the initial report. Fortunately, I’ve found a way to reinstall the old drivers until they fix this shit.
    nvidia-bug-report-2017-04-20-nvidia-375.log.gz (123 KB)
    nvidia-bug-report-2017-04-20-nvidia-381.log.gz (123 KB)

    Sorry for delay. Look like this is corner case. Now we are tracking this issue under bug 200302606 . We’ll keep you posted.

    This seems to be the same issue I face. I started this thread a while back but it was never resolved:

    https://devtalk.nvidia.com/default/topic/994984/did-something-change-with-modelines-in-drivers-after-349-x-/#5089278

    We are able to reproduce this issue and continuing investigation.

    I did some experiment on my setup. This mode is working on 346.96 driver-X starts but not on r375 driver - X fail to start.

    Modeline “1920x1200_60.00” 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync

    Option “ModeDebug” “true”
    Option “ExactModeTimingsDVI” “true”
    Option “ModeValidation” “NoVesaModes, NoXServerModes, NoPredefinedModes, NoEdidModes, NoUserModes”

    In log I see mode is valid:

    [ 20371.959] (II) NVIDIA(GPU-0): Validating Mode “1920x1200_60”:
    [ 20371.959] (II) NVIDIA(GPU-0): Mode Source: X Configuration file ModeLine
    [ 20371.959] (II) NVIDIA(GPU-0): 1920 x 1200 @ 60 Hz
    [ 20371.959] (II) NVIDIA(GPU-0): Pixel Clock : 154.00 MHz
    [ 20371.959] (II) NVIDIA(GPU-0): HRes, HSyncStart : 1920, 1968
    [ 20371.959] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 2000, 2080
    [ 20371.959] (II) NVIDIA(GPU-0): VRes, VSyncStart : 1200, 1203
    [ 20371.959] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 1209, 1235
    [ 20371.959] (II) NVIDIA(GPU-0): Sync Polarity : +H -V
    [ 20371.960] (II) NVIDIA(GPU-0): Viewport 1920x1200+0+0
    [ 20371.960] (II) NVIDIA(GPU-0): Horizontal Taps 0
    [ 20371.960] (II) NVIDIA(GPU-0): Vertical Taps 0
    [ 20371.960] (II) NVIDIA(GPU-0): Base SuperSample x1
    [ 20371.960] (II) NVIDIA(GPU-0): Base Depth 32
    [ 20371.960] (II) NVIDIA(GPU-0): Distributed Rendering 1
    [ 20371.960] (II) NVIDIA(GPU-0): Overlay Depth 32
    [ 20371.960] (II) NVIDIA(GPU-0): Mode “1920x1200_60” is valid.

    Its there in modepool :

    [ 20371.975] (II) NVIDIA(GPU-0): — Modes in ModePool for Samsung SyncMaster (DFP-0) —
    [ 20371.975] (II) NVIDIA(GPU-0): “nvidia-auto-select” : 1920 x 1200 @ 60.0 Hz (from: X Configuration file ModeLine)
    [ 20371.975] (II) NVIDIA(GPU-0): “1920x1200_60.00” : 1920 x 1200 @ 60.0 Hz (from: X Configuration file ModeLine)
    [ 20371.975] (II) NVIDIA(GPU-0): “1920x1200_60” : 1920 x 1200 @ 60.0 Hz (from: X Configuration file ModeLine)
    [ 20371.975] (II) NVIDIA(GPU-0): — End of ModePool for Samsung SyncMaster (DFP-0): —

    X fail to start :

    [ 20371.975] (==) NVIDIA(0): No modes were requested; the default mode “nvidia-auto-select”
    [ 20371.975] (==) NVIDIA(0): will be used as the requested mode.
    [ 20371.975] (==) NVIDIA(0):
    [ 20371.976] (WW) NVIDIA(0): No valid modes for “DFP-0:nvidia-auto-select”; removing.
    [ 20371.976] (WW) NVIDIA(0):
    [ 20371.976] (WW) NVIDIA(0): Unable to validate any modes; falling back to the default mode
    [ 20371.976] (WW) NVIDIA(0): “nvidia-auto-select”.
    [ 20371.976] (WW) NVIDIA(0):
    [ 20371.976] (WW) NVIDIA(0): No valid modes for “DFP-0:nvidia-auto-select”; removing.
    [ 20371.976] (EE) NVIDIA(0): Unable to use default mode “nvidia-auto-select”.
    [ 20371.976] (EE) NVIDIA(0): Failing initialization of X screen 0

    Good, I hope you’re able to fix it soon.