Why can't I get my GTX 970 to drive my monitors at 1080p on OpenSuse Leap 42.3?

2

I am trying to set up a workstation with OpenSuse Leap 42.3 and I have 3x Asus 1080p monitors that, for whatever reason, my GPU is not receiving EDIDs from on X Server start. I've been trying to get them working at 1920x1080 for several hours now and I am not having any luck. Whenever I switch over to Windows, the monitors are all identified fully and display at 1920x1080 without a hitch, no configuration is required.

On OpenSuse, I am able to force 2 out of 3 monitors to 1080p using xrandr --newmode,xrandr --addmode, and'xrandr --output DISPLAY-NAME --mode 1920x1080_60.00 using the modeline provided by cvt or gtf. However, when I do this, the monitors appear to have some kind of sync issue and there are rolling lines of flickering pixels and small text becomes near illegible.

I've also been working on /etc/X11/xorg.conf and have tried dozens of iterations of this file, trying to build off of various other forum posts online and the Nvidia Linux Driver Docs.

After several hours of tweaking the xorg.conf file, I've gotten 2 out of the 3 monitors to display in 1920x1080, while the 3rd does not display at all at the login screen, and then displays at 1400x1050 once I've logged in. However, the 2 monitors at 1080p exhibit the same flickering and text-illegibility that I got from manually forcing the display settings with xrandr, so they are unusable at that resolution. All 3 monitors work smoothly at 1400x1050, but that is not the correct aspect ratio and also not the 1:1 resolution for these monitors.

I'm on:

kernel 4.4.76
X Server 1.18.3
Nvidia driver 390.48 KDE Plasma 5

I got HorizSync 31.5-80 and VertRefresh 56.0-75.0 by looking at the timings listed on my monitor's manual (linked to and imaged at the bottom of this question). For whatever reason, entering those timings did not enable 1920x1080 as a resolution, the highest was only 1400x1050.

It's also worth nothing that DFP-0 and DFP-4 (referred to in the conf file as DVI1 and DVI2, respectively) are both on DVI ports, while DFP-1 (labeled as HDMI) is on an HDMI port. The HDMI monitor is the one that I can't get to 1920x1080 at all, and the one that shuts down when I'm not logged into a KDE session.

I have also tried a config involving Xinerama, with no luck there either.


My latest xorg.conf is:

# nvidia-settings:  version 390.48  (buildmeister@swio-display-x86-rhel47-07)  Thu Mar 22 01:06:23 PDT 2018

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 390.48  (buildmeister@swio-display-x86-rhel47-07)  Thu Mar 22 01:07:32 PDT 2018

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

Section "Files"
EndSection

Section "InputDevice"

    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

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

Section "Monitor"
    Identifier     "DVI1"
    Option         "Position" "0 0"
    Modeline       "1920x1080_60.00" 220.75  1920 2064 2264 2608  1080 1083 1088 1130 -hsync +vsync
    Option         "Rotate" "normal"
    Option         "PreferredMode" "1920x1080_60.00"
    HorizSync 31.5-80
    VertRefresh 56.0-75.0
    Option "ModeValidation" "AllowNonEdidModes"
EndSection

Section "Monitor"
    Identifier     "DVI2"
    Option         "Position" "1920 0"
    Modeline       "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
    Option         "Rotate" "normal"
    Option         "PreferredMode" "1920x1080_60.00"
    HorizSync 31.5-80.0
    VertRefresh 56.0-75.0
    Option "ModeValidation" "AllowNonEdidModes"
EndSection

Section "Monitor"
    Identifier     "HDMI"
    Option         "Position" "3840 0"
    Modeline       "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
    Option         "Rotate" "normal"
    Option         "PreferredMode" "1920x1080_60.00"
    HorizSync 31.5-80.0
    VertRefresh 56.0-75.0
    Option "ModeValidation" "AllowNonEdidModes"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 970"
    Option         "Monitor-DVI-I-1" "DVI1"
    Option         "Monitor-DVI-D-O" "DVI2"
    Option         "Monitor-HDMI-0" "HDMI"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "DVI2"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "DFP-1: 1920x1080_60.00 +0+0, DFP-0: 1920x1080_60.00 +1920+0, DFP-4: 1920x1080_60.00 +3840+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    Virtual    5760 1080
    EndSubSection
EndSection

And my latest Xorg.0.log is visible at:

https://paste.fedoraproject.org/paste/~fWRIP5brKHiOlsZ5hvkbw


Here's the download page for the manual for my monitor and here's a screenshot of the monitor's timing list


Update 2018-04-18

I've now attempted this on a fresh Debian 4.9 install with KDE as well, I had the same problem, but at least no manual configuration had to be done to get all 3 monitors running at 1366x768 which is the correct aspect ratio. I tried this with two different versions of the official NVidia driver with the exact same results both times.

For sanity, I restored an image of a fresh Windows 10 installation with no knowledge of the monitors, and all 3 monitors are picked up as "Generic Non-PnP Monitor" so I guess they really aren't providing their EDID. That said, windows was able to immediately run one of them at 1920x1080@60hz with no problems and, upon installing the NVidia driver, is able to run all 3 at that configuration with no problems.

So my question now becomes: Is this a problem with the Linux NVidia drivers? If not, is there maybe something Windows knows about "generic non-pnp monitor" that I might be able to extract and use to configure the monitors for X server?

I wouldn't think there could be anything special to configure for a 1920x1080 60hz monitor- cvt's modeline should work fine, right?


Update/Solution 2018-04-19

For me the trick ended up being not using cvt/gtf's modelines, but specifying an exact Horizsync and VertRefresh instead of a range. My final, and working, xorg.conf is below. Note: I do not know what adding {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On} accomplishes, it supposedly reduces screen tear but I can't see a difference. Either way, that line is not necessary to solve my problem, only manually specifying the HorizSync and VertRefresh and listing only one monitor instead of three are what was needed. Perhaps multiple monitors would be needed if all 3 of my monitors were not identical.

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 384.111  (build-user@build-machine)  Sun Feb 25 17:18:20 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: builtin, VertRefresh source: builtin
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DFP-0"
    HorizSync       67.0 - 67.0
    VertRefresh     60.0
    Option         "DPMS"
EndSection

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

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-4"
    Option         "metamodes" "DVI-I-1: 1920x1080 +0+0, HDMI-0: 1920x1080 +3840+0, DVI-D-0: 1920x1080 +1920+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

JonathonG

Posted 2018-04-18T04:03:20.433

Reputation: 349

welcome to the world of linux display technology. It runs on all 500 of the fastest supercomputers, but has less graphics capability than Win95 – Keltari – 2018-04-19T01:23:04.013

@Keltari ^_^ It would seem that way! It's alright, I know we'll get it figured out. – JonathonG – 2018-04-19T11:30:40.523

Answers

0

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 390.25  (buildd@lcy01-amd64-002)  Mon Jan 29 21:11:27 UTC 2018

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 375.66  (buildmeister@swio-display-x86-rhel47-06)  Mon May  1 15:45:32 PDT 2017

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

Section "Files"
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      "ACH QHD270QHD270QHD270"
    HorizSync       88.8 - 88.8
    VertRefresh     60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 960"
    Option         "Coolbits" "28"
EndSection

Section "Screen"

# Removed Option "metamodes" "DVI-I-1: nvidia-auto-select +0+0, DP-4: nvidia-auto-select +2560+0"
# Removed Option "metamodes" "DVI-I-1: nvidia-auto-select +2560+0, DP-4: nvidia-auto-select +0+180"
# Removed Option "metamodes" "DVI-I-1: nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DP-4: nvidia-auto-select +2560+0"
# Removed Option "metamodes" "DVI-I-1: nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DP-4: nvidia-auto-select +2560+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
# Removed Option "metamodes" "DVI-I-1: nvidia-auto-select +0+0, DP-4: nvidia-auto-select +2560+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0, DP-4: nvidia-auto-select +2560+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

There's my config to help your troubleshooting. I continuously plug in 2 or 3 or even 4 screens at 1440p or 1080p to my config and have never had any issues. for years.

Have you tried using nvidia-settings from the terminal to launch their GUI? it apparently sets up the xorg for you. Have you tried anything ubuntu derived? or ubuntu itself?

What's your xrandr raw output?

>xrandr
Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
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 connected 2560x1080+2560+0 (normal left inverted right x axis y axis) 673mm x 284mm
   2560x1080     60.00*+
   1920x1080     60.00    60.00    59.94    50.00    23.97    60.05    60.00    50.04  
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   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-5 disconnected (normal left inverted right x axis y axis)

user1654164

Posted 2018-04-18T04:03:20.433

Reputation: 28

Thanks for your answer - my xrandr raw output always listed only the incorrect modes (1400x1050 or 1366x768 down to 640x480) and nothing else. The device ports were all listed correctly.

You have solved my problem though! I was listing a range for HorizSync and VertRefresh as all documentation I found indicated I needed to. You showed me that they can be set as static values, and so setting HorizSync 67.0 and VertRefresh 60.0 fixed my problem. I'll post my final config as an update. Do you know what ForceCompositionPipeline does? It doesn't visibly change anything for me. – JonathonG – 2018-04-19T14:23:09.370

I enabled forcecompositionpipeline for OBS (yes the screen recorder) it eliminates my screen tearing 100% with nvidia. On every desktop environment. Now others report differently but as far as screen recording goes it will solve the issue with OBS. There is a performance hit. It was roughly 5-10% FPS in a game. I can't tell the performance hit for watching videos or on the desktop, I don't notice there even being one. Only for a game that is semi demanding - very demanding. As far as what else it does I have no idea. It just helps with tearing – user1654164 – 2018-04-20T00:31:38.740