Mode is rejected: PixelClock (533.2 MHz) too high for Display Device

I’ve got a Lenovo D32u-40 monitor, which can do 3840x2160 (under Windows this works)
GPU: NVidia Quadro P400, OS: Debian testing.
Driver version: 550.76
Problem: the top resolution, the 3840x2160, is not detected - the driver uses 1920x1080 instead.

I have set “ModeDebug” to “true” in the nvidia driver settings, and rebooted the system. Now in xorg.log I can see the following:

[     6.651] (WW) NVIDIA(GPU-0):   Validating Mode "3840x2160_60":
[     6.651] (WW) NVIDIA(GPU-0):     Mode Source: EDID
[     6.651] (WW) NVIDIA(GPU-0):     3840 x 2160 @ 60 Hz
[     6.651] (WW) NVIDIA(GPU-0):       Pixel Clock      : 533.25 MHz
[     6.651] (WW) NVIDIA(GPU-0):       HRes, HSyncStart : 3840, 3888
[     6.651] (WW) NVIDIA(GPU-0):       HSyncEnd, HTotal : 3920, 4000
[     6.651] (WW) NVIDIA(GPU-0):       VRes, VSyncStart : 2160, 2163
[     6.651] (WW) NVIDIA(GPU-0):       VSyncEnd, VTotal : 2168, 2222
[     6.651] (WW) NVIDIA(GPU-0):       Sync Polarity    : +H -V 
[     6.651] (WW) NVIDIA(GPU-0):     Mode is rejected: PixelClock (533.2 MHz) too high for
[     6.651] (WW) NVIDIA(GPU-0):     Display Device (Max: 165.0 MHz).
[     6.651] (WW) NVIDIA(GPU-0):     GPU extended capability check failed.
[     6.651] (WW) NVIDIA(GPU-0):     Mode "3840x2160_60" is invalid.

If I add the following to the ‘Device’ section

Option         "ModeValidation" "NoMaxPClkCheck"

then I get

[     6.648] (**) NVIDIA(GPU-0):     (DFP-3):
[     6.648] (**) NVIDIA(GPU-0):     NoMaxPClkCheck
[     6.648] (WW) NVIDIA(GPU-0):   Validating Mode "3840x2160_60":
[     6.648] (WW) NVIDIA(GPU-0):     Mode Source: EDID
[     6.648] (WW) NVIDIA(GPU-0):     3840 x 2160 @ 60 Hz
[     6.648] (WW) NVIDIA(GPU-0):       Pixel Clock      : 533.25 MHz
[     6.648] (WW) NVIDIA(GPU-0):       HRes, HSyncStart : 3840, 3888
[     6.648] (WW) NVIDIA(GPU-0):       HSyncEnd, HTotal : 3920, 4000
[     6.648] (WW) NVIDIA(GPU-0):       VRes, VSyncStart : 2160, 2163
[     6.648] (WW) NVIDIA(GPU-0):       VSyncEnd, VTotal : 2168, 2222
[     6.648] (WW) NVIDIA(GPU-0):       Sync Polarity    : +H -V 
[     6.648] (WW) NVIDIA(GPU-0):     ViewPort 3840x2160 exceeds hardware capabilities.
[     6.648] (WW) NVIDIA(GPU-0):     Mode is rejected: GPU extended capability check failed.
[     6.648] (WW) NVIDIA(GPU-0):     GPU extended capability check failed.
[     6.648] (WW) NVIDIA(GPU-0):     Mode "3840x2160_60" is invalid.

and again it doesn’t work. Then I tried adding the following

Option         "ModeValidation" "NoMaxPClkCheck,NoExtendedGpuCapabilitiesCheck"

after which I get a black screen on bootup.

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

The adapter you’re using is a passive adapter so you can’t achieve more than 4k@30Hz.

By ‘adapter’ you mean the GPU?

How can I then manually force the driver to do 4k@30Hz ?

Here’s what I tried:

> cvt 3840 2160 30
# 3840x2160 29.98 Hz (CVT) hsync: 65.96 kHz; pclk: 338.75 MHz
Modeline "3840x2160_30.00"  338.75  3840 4080 4488 5136  2160 2163 2168 2200 -hsync +vsync
> xrandr --newmode "3840x2160_30.00"  338.75  3840 4080 4488 5136  2160 2163 2168 2200 -hsync +vsync
> xrandr --addmode DP-3 3840x2160_30.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:  39
  Current serial number in output stream:  40

Adapter=DP2HDMI cable.

Ok. So If I use a mDP2DP 1.2 ( the monitor has a DP input) cable instead, is 3840x2160@60Hz going to work?

And how do I come up with a working 3840x2160@30Hz modeline now? Under Windows, 3840x2160 works with the very same hardware.

Yes.
You’re currently using a passive DP2HDMI cable which is in general limited to HDMI 1.3 speeds (300/340MHz) so only supports 4k@30Hz. In your case, only HDMI 1.0 speeds (165MHz) are detected, only supporting FHD. I don’t know why it only detects low speeds, might be a bad cable, just barely working on Windows due to different connection threshholds in the Windows driver opposed to the Linux driver. Or there might be a driver bug limiting it. In any case, a real DisplayPort connection is preferable.

Indeed, thanks generix. The cable has just arrived and 3840x2160 started working automagically.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.