Low Resolution on one of two daisy-chained displayport monitors - Ubuntu 18.04, Titan X graphics card, nvidia 390 driver

Need help getting two daisy-chained Dell U2415 displayport monitors to work properly with a Titan X graphics card on Ubuntu.

Current Configuration:

  • Fresh install of Ubuntu 18.04.2 LTS on a Dell Precision T7910 workstation.
  • Titan X graphics card. I plan to use this for deep learning but also need it to drive the dual monitors.
  • Default Gnome desktop that comes standard with Ubuntu Desktop.
  • Replaced Ubuntu's Nouveau graphics driver with Nvidia's proprietary nvidia-driver-390. Tried Nvidia 430 driver from apt repository ppa:graphics-drivers, but it causes the 2nd display to flicker very badly.
  • Two Dell U2415 monitors configured in a displayport daisy chain. 1st monitor (one connected directly to the graphics card) is set to displayport 1.2 enabled. The 2nd monitor (2nd and last monitor in the displayport daisy chain) is set to displayport 1.2 disabled.

When the desktop starts, it only shows on the primary monitor. I have to run xset dpms force off
to force the monitors into sleep state and then move the mouse to wake them up and both monitors become active. However, one of the monitors runs at a very low resolution (640x480) while the other runs at the full resolution (1920x1200). A screenshot of the Nvidia X Settings can be found here https://flic.kr/p/2g6VjUW.

The first monitor is detected as “NVIDIA” with resolution 640x480 (the only options under resolution are Off, Auto, and 640x480). The second monitor is correctly detected as “DELL U2415” with resolution 1920x1200. Here is the output of the xrandr command. DP-0.8 is the first monitor in the daisy chain and DP-0.1 is the second.

Screen 0: minimum 8 x 8, current 2560 x 1200, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DP-0.1 connected 1920x1200+640+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+  59.88  
   1920x1080     60.00    59.94    50.00    29.97    25.00    23.98  
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-0.8 connected primary 640x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   640x480       59.94*+
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
DP-0.1.8 disconnected (normal left inverted right x axis y axis)

At this point, there was no xorg.conf file or monitors.xml file anywhere on the machine. I saved the X configuration file from Nvidia X Settings application. The saved /etc/X11/xorg.conf file is as follows.

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 390.77  (buildd@lcy01-amd64-022)  Thu Sep  6 07:51:39 UTC 2018

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

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
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 "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "NVIDIA"
    HorizSync       31.5 - 31.5
    VertRefresh     60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX TITAN X"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-2.8"
    Option         "metamodes" "DP-0.8: nvidia-auto-select +0+0, DP-0.1: nvidia-auto-select +640+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

I see only one “monitor” section in this xorg.config. Why doesn’t it list the 2nd monitor?

In any case, how can I have the nvidia card properly detect both monitors as Dell U2415 along with the 1920x1200 resolution?

This same daisy-chained displayport monitor setup works fine with Windows 10. Both monitors are identical except the 1st one has displayport 1.2 (MST) enabled and the 2nd has it disabled. I can’t figure out why the nvidia driver is detecting the 1st monitor as NVIDIA with very low resolution and the 2nd monitor as DELL 2415 with the correct resolution - 1920x1200.

The nvidia linux driver often has several problems with daisy chaining. Please check if upgrading to the current driver (430) helps:

Generix - Thanks. I upgraded to the 430 driver. The behavior of the dual monitor is the same; no change. The 430 driver causes occasional blanking of the displays but it’s bearable. The 1st time I had installed the 430 driver, it caused a bad screen flicker. But now it’s an occasional blanking.

Any ideas what I could try next?

Please remove your xorg.conf and replace it with just this snippet:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX TITAN X"
    Option  "ModeDebug" "true"
EndSection

Reboot, afterwards run nvidia-bug-report.sh as root and attach the resulting .gz file to your post. Hovering the mouse over an existing post of yours will reveal a paperclip icon.
https://devtalk.nvidia.com/default/topic/1043347/announcements/attaching-files-to-forum-topics-posts/

Hi Generix - I followed your instructions. The nvidia bug report is attached. Please review and advise what to try next. Thanks.
nvidia-bug-report.log.gz (1.22 MB)

The xorg log tells that the driver lists DFP-2 as the boot display but then fails to detect it. Maybe you can trick the driver into using it. Disconnect the second monitor, so the first should work. Then extract the edid of it https://nvidia.custhelp.com/app/answers/detail/a_id/3571/~/managing-a-display-edid-on-linux and use this as xorg.conf with the correct path/name of the saved edid:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX TITAN X"
    Option         "ConnectedMonitor" "DFP-2, DFP-2.1"
    Option         "CustomEDID" "DFP-2:/<pathto>/edid-dfp2.bin"
EndSection

Fair warning: the ConnectedMonitor option overrides display detection so that only the mentioned displays are used. e.g. if you add a third monitor, it will not be detected unless you add it to the list. If you remove a monitor, it will still appear as present unless you remove it from the list.