Driver reports incorrect pixel clock, ignoring it in mode-validation doesn't help

Hi!

GPU: GeForce GT 630
Drivers: 390.151
OS: Arch Linux

I have basically the same issue as described in this thread: https://forums.developer.nvidia.com/t/incorrect-definition-of-pixel-clock-390-141/170159

I would expect the EDID reported maximum Pixel-Clock to be accurate since I am not experiencing this while using the nouveau drivers, or on Windows with official drivers, with the exact same resolution and refresh rate.

[    79.279] (--) NVIDIA(GPU-0): AOC 24G2W1G4 (DFP-1): connected
[    79.279] (--) NVIDIA(GPU-0): AOC 24G2W1G4 (DFP-1): Internal TMDS
[    79.279] (--) NVIDIA(GPU-0): AOC 24G2W1G4 (DFP-1): DFP is not internal to notebook
[    79.279] (--) NVIDIA(GPU-0): AOC 24G2W1G4 (DFP-1) Name Aliases:
[    79.279] (--) NVIDIA(GPU-0):   DFP
[    79.279] (--) NVIDIA(GPU-0):   DFP-1
[    79.279] (--) NVIDIA(GPU-0):   DPY-3
[    79.279] (--) NVIDIA(GPU-0):   HDMI-0
[    79.279] (--) NVIDIA(GPU-0):   DPY-EDID-a1a0df02-d287-ab52-f10d-9c172ada21eb
[    79.279] (--) NVIDIA(GPU-0):   HDMI-0
[    79.279] (--) NVIDIA(GPU-0): AOC 24G2W1G4 (DFP-1): 225.0 MHz maximum pixel clock
[    79.279] (--) NVIDIA(GPU-0): 
[    79.279] (--) NVIDIA(GPU-0): --- EDID for AOC 24G2W1G4 (HDMI-0) ---
[    79.279] (--) NVIDIA(GPU-0): EDID Version                 : 1.3
[    79.279] (--) NVIDIA(GPU-0): Manufacturer                 : AOC
[    79.279] (--) NVIDIA(GPU-0): Monitor Name                 : AOC 24G2W1G4
[    79.279] (--) NVIDIA(GPU-0): Product ID                   : 0x2402
[    79.279] (--) NVIDIA(GPU-0): 32-bit Serial Number         : 0x00020c0b
[    79.279] (--) NVIDIA(GPU-0): Serial Number String         : ATNL61A134155
[    79.279] (--) NVIDIA(GPU-0): Manufacture Date             : 2020, week 27
[    79.279] (--) NVIDIA(GPU-0): DPMS Capabilities            : Active Off
[    79.279] (--) NVIDIA(GPU-0): Input Type                   : Digital
[    79.279] (--) NVIDIA(GPU-0): Prefer first detailed timing : Yes
[    79.279] (--) NVIDIA(GPU-0): Supports GTF                 : No
[    79.279] (--) NVIDIA(GPU-0): Maximum Image Size           : 530 mm x 300 mm
[    79.279] (--) NVIDIA(GPU-0): Valid HSync Range            : 30.0 kHz - 160.0 kHz
[    79.279] (--) NVIDIA(GPU-0): Valid VRefresh Range         : 48.0 Hz - 144.0 Hz
[    79.279] (--) NVIDIA(GPU-0): EDID maximum pixel clock     : 330.0 MHz

The desired resolution is 1920x1080@120Hz with 285.5 MHz pixel-clock, which is being rejected as you can see:

[    79.284] (II) NVIDIA(GPU-0): 
[    79.284] (WW) NVIDIA(GPU-0):   Validating Mode "1920x1080_120":
[    79.284] (WW) NVIDIA(GPU-0):     Mode Source: EDID
[    79.284] (WW) NVIDIA(GPU-0):     1920 x 1080 @ 120 Hz
[    79.284] (WW) NVIDIA(GPU-0):       Pixel Clock      : 296.70 MHz
[    79.284] (WW) NVIDIA(GPU-0):       HRes, HSyncStart : 1920, 2008
[    79.284] (WW) NVIDIA(GPU-0):       HSyncEnd, HTotal : 2052, 2200
[    79.284] (WW) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1084
[    79.284] (WW) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1089, 1125
[    79.284] (WW) NVIDIA(GPU-0):       Sync Polarity    : +H +V 
[    79.284] (WW) NVIDIA(GPU-0):     Mode is rejected: PixelClock (296.7 MHz) too high for
[    79.284] (WW) NVIDIA(GPU-0):     Display Device (Max: 225.0 MHz).
[    79.284] (WW) NVIDIA(GPU-0):     Mode "1920x1080_120" is invalid.
[    79.284] (WW) NVIDIA(GPU-0):
[    79.284] (WW) NVIDIA(GPU-0):   Validating Mode "1920x1080_120":
[    79.284] (WW) NVIDIA(GPU-0):     Mode Source: EDID
[    79.284] (WW) NVIDIA(GPU-0):     1920 x 1080 @ 120 Hz
[    79.284] (WW) NVIDIA(GPU-0):       Pixel Clock      : 285.50 MHz
[    79.284] (WW) NVIDIA(GPU-0):       HRes, HSyncStart : 1920, 1968
[    79.284] (WW) NVIDIA(GPU-0):       HSyncEnd, HTotal : 2000, 2080
[    79.285] (WW) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1083
[    79.285] (WW) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1088, 1144
[    79.285] (WW) NVIDIA(GPU-0):       Sync Polarity    : +H +V 
[    79.285] (WW) NVIDIA(GPU-0):     Mode is rejected: PixelClock (285.5 MHz) too high for
[    79.285] (WW) NVIDIA(GPU-0):     Display Device (Max: 225.0 MHz).
[    79.285] (WW) NVIDIA(GPU-0):     Mode "1920x1080_120" is invalid.
[    79.285] (WW) NVIDIA(GPU-0): 

So the suggestion from the mentioned post was:

Option "ModeValidation" "NoMaxPClkCheck"

With that option it gets accepted:

[   304.150] (II) NVIDIA(GPU-0): 
[   304.150] (II) NVIDIA(GPU-0):   Validating Mode "1920x1080_120":
[   304.150] (II) NVIDIA(GPU-0):     Mode Source: EDID
[   304.150] (II) NVIDIA(GPU-0):     1920 x 1080 @ 120 Hz
[   304.150] (II) NVIDIA(GPU-0):       Pixel Clock      : 296.70 MHz
[   304.150] (II) NVIDIA(GPU-0):       HRes, HSyncStart : 1920, 2008
[   304.150] (II) NVIDIA(GPU-0):       HSyncEnd, HTotal : 2052, 2200
[   304.150] (II) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1084
[   304.150] (II) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1089, 1125
[   304.150] (II) NVIDIA(GPU-0):       Sync Polarity    : +H +V 
[   304.150] (II) NVIDIA(GPU-0):     Viewport                 1920x1080+0+0
[   304.150] (II) NVIDIA(GPU-0):       Horizontal Taps        1
[   304.150] (II) NVIDIA(GPU-0):       Vertical Taps          1
[   304.150] (II) NVIDIA(GPU-0):       Base SuperSample       x4
[   304.150] (II) NVIDIA(GPU-0):       Base Depth             32
[   304.150] (II) NVIDIA(GPU-0):       Distributed Rendering  1
[   304.150] (II) NVIDIA(GPU-0):       Overlay Depth          32
[   304.150] (II) NVIDIA(GPU-0):     Mode "1920x1080_120" is valid.
[   304.150] (II) NVIDIA(GPU-0): 
[   304.150] (II) NVIDIA(GPU-0):   Validating Mode "1920x1080_120":
[   304.150] (II) NVIDIA(GPU-0):     Mode Source: EDID
[   304.150] (II) NVIDIA(GPU-0):     1920 x 1080 @ 120 Hz
[   304.150] (II) NVIDIA(GPU-0):       Pixel Clock      : 285.50 MHz
[   304.150] (II) NVIDIA(GPU-0):       HRes, HSyncStart : 1920, 1968
[   304.150] (II) NVIDIA(GPU-0):       HSyncEnd, HTotal : 2000, 2080
[   304.150] (II) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1083
[   304.150] (II) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1088, 1144
[   304.150] (II) NVIDIA(GPU-0):       Sync Polarity    : +H +V 
[   304.150] (II) NVIDIA(GPU-0):     Viewport                 1920x1080+0+0
[   304.150] (II) NVIDIA(GPU-0):       Horizontal Taps        1
[   304.150] (II) NVIDIA(GPU-0):       Vertical Taps          1
[   304.150] (II) NVIDIA(GPU-0):       Base SuperSample       x4
[   304.150] (II) NVIDIA(GPU-0):       Base Depth             32
[   304.150] (II) NVIDIA(GPU-0):       Distributed Rendering  1
[   304.150] (II) NVIDIA(GPU-0):       Overlay Depth          32
[   304.150] (II) NVIDIA(GPU-0):     Mode "1920x1080_120" is valid.
[   304.150] (II) NVIDIA(GPU-0): 

I can select the desired mode, but the display content just goes black as expected and comes back with the same content as before but freezed, the content doesn’t update at all.

I can blindly open a terminal and for example shut down the PC, or check on it with ssh, nothing out of the ordinary as far as I can tell, but the display content just doesn’t refresh at all.

My xorg.conf: xorg.conf (2.5 KB)

Logs:

I also just noticed some relevant output in journalctl -b0:

May 30 16:23:21 maadcity kernel: NVRM: GPU at PCI:0000:26:00: GPU-1d19b1e1-6295-31c2-674e-fd6cefa7b5f4
May 30 16:23:21 maadcity kernel: NVRM: Xid (PCI:0000:26:00): 56, CMDre 00000000 00000640 00050501 00000004 00000084
May 30 16:23:21 maadcity kernel: NVRM: Xid (PCI:0000:26:00): 56, CMDre 00000000 00000080 00000006 00000005 00000005
May 30 16:23:21 maadcity root[207239]: ACPI group/action undefined: jack/lineout / LINEOUT
May 30 16:23:21 maadcity root[207242]: ACPI group/action undefined: jack/videoout / VIDEOOUT
May 30 16:23:24 maadcity kernel: nvidia-modeset: WARNING: GPU:0: Lost display notification (0:0x00000000); continuing.
May 30 16:23:24 maadcity kernel: NVRM: Xid (PCI:0000:26:00): 56, CMDre 00000000 00000080 00000000 00000005 00000005
May 30 16:23:24 maadcity kernel: NVRM: Xid (PCI:0000:26:00): 56, CMDre 00000000 00000080 00000000 00000005 00000005
May 30 16:23:24 maadcity root[207614]: ACPI group/action undefined: jack/lineout / LINEOUT
May 30 16:23:24 maadcity root[207619]: ACPI group/action undefined: jack/videoout / VIDEOOUT
May 30 16:23:27 maadcity kernel: nvidia-modeset: WARNING: GPU:0: Lost display notification (0:0x00000000); continuing.
May 30 16:23:27 maadcity kernel: NVRM: Xid (PCI:0000:26:00): 56, CMDre 00000000 00000080 00000000 00000005 00000005
May 30 16:23:29 maadcity kernel: nvidia-modeset: ERROR: GPU:0: Idling display engine timed out: 0x0000857e:0:0
May 30 16:23:31 maadcity kernel: nvidia-modeset: ERROR: GPU:0: Idling display engine timed out: 0x0000857c:0:0
May 30 16:24:00 maadcity kernel: nvidia-modeset: ERROR: GPU:0: Idling display engine timed out: 0x0000857e:0:0
May 30 16:24:02 maadcity kernel: nvidia-modeset: ERROR: GPU:0: Idling display engine timed out: 0x0000857c:0:0

Did you try using a better/different hdmi cable?

I did not.

Could it be a problem, when the same cable works with nouveau and Windows?

Dňa po 30. 5. 2022, 19:16 generix via NVIDIA Developer Forums <nvidia@discoursemail.com> napísal(a):

The nvidia linux driver is extremely finicky when it comes to transfer speeds with bad cables/monitors and kvm switches, yielding lower speeds than other drivers. At least worth a shot.