Ubuntu 22.04 RTX 3080 LHR nvidia driver 525.60.13 cannot set correct resolution

the bug report:
nvidia-bug-report.log.gz (558.2 KB)

The system setup is as follows:

  • OS: Ubuntu 22.04
  • GPU: RTX 3080 LHR
  • nvidia driver: 525.60.13 (installed using “software & updates → additional driver”)
  • monitor 1: 2560x1080 LG 29WP500 connected with HDMI: working fine :)
  • monitor 2: 2560x1080 LG 29WP500 connected with HDMI (monitor) to DisplayPort (GPU) : not fine :(
  • monitor 3: 2560x1080 LG 25UM58-P connected with HDMI (monitor) to DisplayPort (GPU): not fine :(

So when I run xrandr I get:

Screen 0: minimum 8 x 8, current 5560 x 1920, maximum 32767 x 32767
HDMI-0 connected primary 2560x1080+1920+0 (normal left inverted right x axis y axis) 798mm x 334mm
   2560x1080     59.98 +  74.99*   50.00 
   3840x2160     29.97    25.00    23.98 
   2560x1440     59.95 
   1920x1080     75.00    60.00    59.94    50.00 
   1680x1050     59.95 
   1600x900      60.00 
   1280x1024     75.02    60.02 
   1280x800      59.81 
   1280x720      60.00    59.94    50.00 
   1152x864      60.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 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1080x1920+4480+0 right (normal left inverted right x axis y axis) 673mm x 284mm
   1920x1080     60.00*+  59.94    50.00 
   1680x1050     59.95 
   1600x900      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-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 798mm x 334mm
   1920x1080     60.00*+  59.94    50.00 
   1680x1050     59.95 
   1600x900      60.00 
   1280x1024     75.02    60.02 
   1280x800      59.81 
   1280x720      60.00    59.94    50.00 
   1152x864      60.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-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)

And the two DisplayPort screens don’t show 2560x1080.

So I try to add the modelines:

$ cvt 2560 1080
# 2560x1080 59.98 Hz (CVT) hsync: 67.17 kHz; pclk: 230.00 MHz
Modeline "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync

$ xrandr --newmode "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync

xrandr --addmode DP-3 "2560x1080_60.00"
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  45
  Current serial number in output stream:  46

So I added the HorizSync and VertRefresh to the xorg.conf file:

$ cat /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 525.60.13


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
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"
    Identifier      "DP-1"
EndSection

and it still wouldn’t let me add my desired resolution.

and I tried to set the resolution through ubuntu’s display settings as well as the nvidia settings app and I had no success there either.

There are two monitors that are identical, just one is HDMI and another is displayport. These are their EDIDs:

monitor 1 (HDMI):

00 ff ff ff ff ff ff 00 1e 6d 70 77 00 d4 01 00 09 20 01 03 80 50 22 78 ea 54 75 a5 57 52 9f 25 0a 50 54 25 6b 00 71 40 81 80 81 c0 a9 c0 b3 00 d1 c0 81 00 d1 cf cd 46 00 a0 a0 38 1f 40 30 20 3a 00 1e 4e 31 00 00 1a 02 3a 80 18 71 38 2d 40 58 2c 45 00 1e 4e 31 00 00 1e 00 00 00 fd 00 38 4b 1e 5a 18 01 0a 20 20 20 20 20 20 00 00 00 fc 00 4c 47 20 55 4c 54 52 41 57 49 44 45 0a 01 85 02 03 31 f1 23 09 07 07 4b 10 04 03 01 1f 13 59 12 5d 5e 5f 83 01 00 00 6d 03 0c 00 10 00 b8 3c 20 00 60 01 02 03 e3 05 c0 00 e6 06 05 01 4a 4a 56 29 59 00 a0 a0 38 27 40 30 20 3a 00 1e 4e 31 00 00 1a 56 5e 00 a0 a0 a0 29 50 30 20 35 00 1e 4e 31 00 00 1a 00 00 00 ff 00 32 30 39 4e 54 41 42 33 48 38 30 38 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a8 

monitor 2 (DisplayPort):

00 ff ff ff ff ff ff 00 1e 6d 70 77 f9 d3 01 00 09 20 01 03 80 50 22 78 ea 54 75 a5 57 52 9f 25 0a 50 54 25 6b 00 71 40 81 80 81 c0 a9 c0 b3 00 d1 c0 81 00 d1 cf cd 46 00 a0 a0 38 1f 40 30 20 3a 00 1e 4e 31 00 00 1a 02 3a 80 18 71 38 2d 40 58 2c 45 00 1e 4e 31 00 00 1e 00 00 00 fd 00 38 4b 1e 5a 18 01 0a 20 20 20 20 20 20 00 00 00 fc 00 4c 47 20 55 4c 54 52 41 57 49 44 45 0a 01 8d 02 03 31 f1 23 09 07 07 4b 10 04 03 01 1f 13 59 12 5d 5e 5f 83 01 00 00 6d 03 0c 00 10 00 b8 3c 20 00 60 01 02 03 e3 05 c0 00 e6 06 05 01 4a 4a 56 29 59 00 a0 a0 38 27 40 30 20 3a 00 1e 4e 31 00 00 1a 56 5e 00 a0 a0 a0 29 50 30 20 35 00 1e 4e 31 00 00 1a 00 00 00 ff 00 32 30 39 4e 54 54 51 33 48 38 30 31 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8d 

and when I put them in edidreader which parses the values, I get just about identical information except for some checksums. Furthermore, the monitor that doesn’t show the 2560x1080 resolution, has the information there.

I also connected the PC to someone else’s set up with 3 3440x1440 monitors and everything was working well. The only difference being those 3 monitors had both HDMI and DisplayPort connectors at the back so there was no HDMI-DisplayPort transition happening.

With my setup and cables (3 LG, 1 HDMI-HDMI, 2 HDMI-DisplayPort) I was able to get the right resolutions as well using Nouveau but it was a little laggy and I couldn’t use some of my software so I’m back to the nvidia driver with pain-inducing resolutions.

So the way I see it, with all this, my guess is that the issue comes from the nvidia driver not being able to properly parse the data coming from the HDMI to displayport cables.

Is there anything I have missed? Any suggestions are very welcome, I’ve been trying to fix this for 2 days now.

This is expected. The Monitors need hdmi 2.0 for the high resolutions, the passive DP2HDMI adapter cables you’re using only provide hdmi 1.4 so only 1920x1080 are possible. Since those monitors also don’t have a DP input, you’ll need to buy active DP2HDMI converters that support 4k@60Hz.

Thanks for the reply.

I didn’t know those adaptors existed. I will get one and try it out.

However, I was getting the correct resolutions using Nouveau, which makes me think it’s still an Nvidia driver issue, not the cables.

Edit: Same setup does not have any issues on Windows. I just had to add the custom resolutions to the nvidia setting software. Which the differences between the ubuntu and windows ubuntu setting software have this feature missing on ubuntu unfortunately.

The nvidia driver detects those adapters as only hdmi 1.2, 165MHz TMDS

[   105.740] (WW) NVIDIA(GPU-0):   Validating Mode "2560x1080_60":
[   105.740] (WW) NVIDIA(GPU-0):     Mode Source: EDID
[   105.740] (WW) NVIDIA(GPU-0):     2560 x 1080 @ 60 Hz
[   105.740] (WW) NVIDIA(GPU-0):       Pixel Clock      : 185.58 MHz
[   105.740] (WW) NVIDIA(GPU-0):       HRes, HSyncStart : 2560, 2624
[   105.740] (WW) NVIDIA(GPU-0):       HSyncEnd, HTotal : 2688, 2784
[   105.740] (WW) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1083
[   105.740] (WW) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1093, 1111
[   105.740] (WW) NVIDIA(GPU-0):       Sync Polarity    : -H -V 
[   105.740] (WW) NVIDIA(GPU-0):     Mode is rejected: PixelClock (185.6 MHz) too high for
[   105.740] (WW) NVIDIA(GPU-0):     Display Device (Max: 165.0 MHz).
[   105.740] (WW) NVIDIA(GPU-0):     GPU extended capability check failed.
[   105.740] (WW) NVIDIA(GPU-0):     Mode "2560x1080_60" is invalid.

Considering how Nouveau is detecting them correctly and without any tweaking I can get the correct resolutions, wouldn’t that mean Nouveau has features that the proprietary nvidia driver is missing?

The nvidia linux driver is extremely finicky when it comes to monitor connections.

Just went out and got cables that support 4k. It works now. Thanks for the help.