Xorg-1.16 configuration for 5k (5120 x 2880) display with two DP inputs

The 5k monitors from Dell or HP both need 2x Display Ports to drive the full 5k resolution.

My problem is that I’m not able to span or combine the two screens from each port into one (e.g. span my desktop manager like KDE over both screens). The card works, the monitor is in 5k resolution, but it’s like having two monitors with each 2560x2880 resolution side by side. Ideally I’d like to add another screen (for which I need to set a different DPI which is also not working).

I’m using xorg-server-1.16.4, nvidia-drivers-358.13 on Linux 4.3.0 (gentoo).

xrandr shows:

DP-0 connected 2560x2880+2560+0 (normal left inverted right x axis y axis) 1mm x 1mm
   2560x1440     59.95 +
   4096x2160     59.98  
   3840x2160     60.00  
   2560x2880     59.98* 
   2560x1600     59.97  
   1920x1200     59.95    59.88  
   1920x1080     60.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.90  
   1366x768      60.00  
   1280x1024     60.02  
   1280x800      59.81  
   1280x768      59.87  
   1280x720      60.00  
   1024x768      60.00  
   800x600       60.32  
   640x480       59.95    59.94  
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 connected 2560x2880+0+0 (normal left inverted right x axis y axis) 299mm x 336mm
   2560x2880     59.98*+

My /etc/X11/xorg.conf:

/etc/X11/xorg.conf
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "HP ZR2440w"
    HorizSync       24.0 - 80.0
    VertRefresh     24.0 - 60.0
    Option         "DPMS"
    Option "UseEdidDpi"  "FALSE"
    Option "DPI" "96 x 96"
EndSection
Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "HP Z27q"
    HorizSync       24.0 - 80.0
    VertRefresh     24.0 - 60.0
    Option         "PreferredMode" "2560x2880"
    Option         "DPMS"
    Option "RightOf"  "HDMI-0"
    Option "Primary" "true"
EndSection
Section "Monitor"
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "HP Z27q"
    HorizSync       24.0 - 80.0
    VertRefresh     24.0 - 60.0
    Option         "PreferredMode" "2560x2880"
    Option         "DPMS"
    Option "RightOf"  "DP-4"
EndSection
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 960"
    BusID          "PCI:1:0:0"
    Option         "Monitor-HDMI-0" "Monitor0"
    Option         "Monitor-DP-0" "Monitor1"
    Option         "Monitor-DP-4" "Monitor2"
EndSection
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    Monitor        "Monitor1"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "BaseMosaic"   "false" 
    Option         "TwinView"     "true"
    Option         "TwinViewOrientation" "clone"
    Option         "RenderAccel"  "true"
    Option         "UseEdidFreqs" "true"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-6"
    Option         "metamodes" "HDMI-0: nvidia-auto-select +0+371 {rotation=right}, DP-0: 2560x2880 +3760+0, DP-4: nvidia-auto-select +1200+0"
    Option         "MultiGPU" "off"
    Option         "SLI" "off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


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

Unfortunately, I ran into the very same problem with my Dell UP2715K and a Gigabyte GTX 980Ti card along with Kubuntu 15.10. The display appears as two separate displays. I am quite puzzled with my rather limited knowledge in this area. Did you manage to solve the problem?

Klaus

The solution is (likely) the same as for this thread:

https://devtalk.nvidia.com/default/topic/897302/exposing-tile-properties-for-mst-4k-monitors-running-dp-1-2/

xorg 1.18 and xrandr 1.5 introduced the ability to specify tile properties for each display, which will then be used to combine the separate physical displays into one logical display. The current nvidia drivers don’t set these properties, though.

This may help.

Here is a minimal xorg.conf that works for me. It is nearly identical to the xorg.conf I have been using for years with my IBM T221 (3840x2400), the only difference is the resolution of the two halves that need to be stitched together:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Dell"
    ModelName      "UP2715K"
    Option         "DPI" "96 x 96"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 980Ti"
    Option         "ConnectToAcpid" "off"
    Option         "NoLogo" "1"
    Option         "TripleBuffer" "True"
    Option         "UseEdidDpi" "False"
    Option         "DPI" "96 x 96"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "UseEdidDpi" "False"
    Option         "DPI" "96 x 96"
    Option         "NoTwinViewXineramaInfo" "True"
    Option         "TwinViewOrientation" "RightOf"
    Option         "MetaModes" "2560x2880,2560x2880"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

I was unbelievably disappointed that in every way except the screen resolution, the Dell UP2715K was a downgrade compared to the IBM T221. The exact same hacks are required to make them work, and T221 is much more flexible in terms of the modes it will accept, not to mention that when running with dual inputs the T221 doesn’t lose you the console modes (BIOS/UEFI POST, boot loader, boot up messages, etc.)

And before you ask, yes this configuration does cause visible tearing down the middle of the screen if you are looking for it. I have not found a way to work around that since I started using the IBM T221 nearly 10 years ago, which suffers all the same problems arising from software-stitching the screen halves.

Edit: Almost forgot - you will have to forcibly disable RandR or gdm/kdm will only show up on one of the halves rather than treat the whole screen as a single unit. With KDM you can add a Xorg startup parameter in the configuration. GDM, however has no such feature, so the only way to achieve it is to wrap Xorg with a bash script, i.e.

# mv /bin/Xorg /bin/Xorg.bin
# cat <<EOF > /bin/Xorg
#!/bin/sh
exec /bin/Xorg.bin -extension RANDR -xinerama "$@"
EOF

Make sure you save your wrapper somewhere, as updating the Xorg package will result in clobbering the wrapper, so you’ll need to replace it every time there’s an updated Xorg.

I’ve opened a new topic on this issue, check it out for the solution I am using: https://devtalk.nvidia.com/default/topic/982568/linux/-feature-request-proper-support-of-tiled-displays-4k-5k-etc-in-linux/