Highest refresh rate missing on lower resolutions

Salutations!

I am running Pop!_OS 21.04 x86_64, my GPU is NVIDIA GeForce RTX 2080, and I have a 4k ultrawide 100hz monitor connected through DisplayPort. My driver version is 470.57.02.

At the native 3440x1440 resolution, everything is working just fine at 100hz.
However, none of the lower resolutions have a 100hz option.

I attempted to add custom resolutions through xrandr, but kept getting the BadMatch error, later found out it’s the nvidia driver that’s blocking this.

To be clear, I am attempting to add lower resolutions at 100hz for some applications such as games, as 4k isn’t always easy on the GPU.

What confuses me the most is that the 3440x1440 resolution offers 100hz / 60hz / 50hz, all others except for ones below 1152x864 offer only 60hz; ones below that sometimes go up to 75hz.

Does anyone have experience with this? All and any help would be appreciated.

Can you please run sudo nvidia-bug-report.sh and attach the log here?

The list of supported resolutions and their refresh rates comes from the monitor’s EDID. Just because the monitor supports 100 Hz at one resolution doesn’t necessarily mean that it supports that refresh rate at all supported resolutions. If you want to force the driver to use a 100 Hz mode anyway you can set the various ModeValidation and ExactModeTimingsDVI overrides, although your monitor may or may not handle that well.

If you want to use the GPU to scale to the monitor’s native 100 Hz mode, you can do that with xrandr (xrandr --output <whatever> --mode 3840x1440 --rate 100 --scale-from <w>x<h>) or by setting the MetaMode directly (nvidia-settings -a CurrentMetaMode="nvidia-auto-select { ViewPortIn=<w>x<h> }").

Thanks for the reply!

Here’s the log: nvidia-bug-report.log.gz (470.9 KB)

I have used this monitor before with MacOS & Windows and they both were able to handle the 100hz refresh rate at any given resolution, however, I don’t know if they were just scaling the native resolution or not.

Could you please elaborate on the ModeValidation option — what property should I be setting? Would it be “NoVertRefreshCheck” or some other?

Again, many thanks for your help so far!

Yeah, looking at the decoded version of your EDID, it does seem to only have one 100 Hz mode. It’s definitely likely that the other operating systems were simply scaling the other resolutions to that one native mode.

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: SAM
    Model: 3621
    Serial Number: 810693424
    Made in: week 41 of 2019
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 80 cm x 33 cm
    Gamma: 2.20
    DPMS levels: Off
    Supported color formats: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.6552, 0.3300
    Green: 0.3203, 0.6005
    Blue : 0.1455, 0.0703
    White: 0.3134, 0.3291
  Established Timings I & II:
    IBM     :   720x400    70.082 Hz   9:5    31.467 kHz   28.320 MHz
    DMT 0x04:   640x480    59.940 Hz   4:3    31.469 kHz   25.175 MHz
    Apple   :   640x480    66.667 Hz   4:3    35.000 kHz   30.240 MHz
    DMT 0x05:   640x480    72.809 Hz   4:3    37.861 kHz   31.500 MHz
    DMT 0x06:   640x480    75.000 Hz   4:3    37.500 kHz   31.500 MHz
    DMT 0x08:   800x600    56.250 Hz   4:3    35.156 kHz   36.000 MHz
    DMT 0x09:   800x600    60.317 Hz   4:3    37.879 kHz   40.000 MHz
    DMT 0x0a:   800x600    72.188 Hz   4:3    48.077 kHz   50.000 MHz
    DMT 0x0b:   800x600    75.000 Hz   4:3    46.875 kHz   49.500 MHz
    Apple   :   832x624    74.551 Hz   4:3    49.726 kHz   57.284 MHz
    DMT 0x10:  1024x768    60.004 Hz   4:3    48.363 kHz   65.000 MHz
    DMT 0x11:  1024x768    70.069 Hz   4:3    56.476 kHz   75.000 MHz
    DMT 0x12:  1024x768    75.029 Hz   4:3    60.023 kHz   78.750 MHz
    DMT 0x24:  1280x1024   75.025 Hz   5:4    79.976 kHz  135.000 MHz
    Apple   :  1152x870    75.062 Hz 192:145  68.681 kHz  100.000 MHz
  Standard Timings:
    DMT 0x15:  1152x864    75.000 Hz   4:3    67.500 kHz  108.000 MHz
    DMT 0x1c:  1280x800    59.810 Hz  16:10   49.702 kHz   83.500 MHz
    DMT 0x55:  1280x720    60.000 Hz  16:9    45.000 kHz   74.250 MHz
    DMT 0x23:  1280x1024   60.020 Hz   5:4    63.981 kHz  108.000 MHz
    DMT 0x2f:  1440x900    59.887 Hz  16:10   55.935 kHz  106.500 MHz
    DMT 0x53:  1600x900    60.000 Hz  16:9    60.000 kHz  108.000 MHz (RB)
    DMT 0x3a:  1680x1050   59.954 Hz  16:10   65.290 kHz  146.250 MHz
  Detailed Timing Descriptors:
    DTD 1:  3440x1440   59.973 Hz  43:18   88.819 kHz  319.750 MHz (797 mm x 333 mm)
                 Hfront   48 Hsync  32 Hback  80 Hpol P
                 Vfront    3 Vsync  10 Vback  28 Vpol N
  Display Range Limits:
    Monitor ranges (GTF): 50-100 Hz V, 30-152 kHz H, max dotclock 550 MHz
    Display Product Name: 'C34H89x'
    Display Product Serial Number: 'HTOMA00759'
  Extension blocks: 1
Checksum: 0xe7

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Underscans IT Video Formats by default
  Basic audio support
  Supports YCbCr 4:4:4
  Supports YCbCr 4:2:2
  Native detailed modes: 1
  Video Data Block:
    VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz  148.500 MHz (native)
    VIC  31:  1920x1080   50.000 Hz  16:9    56.250 kHz  148.500 MHz
    VIC   4:  1280x720    60.000 Hz  16:9    45.000 kHz   74.250 MHz
    VIC  19:  1280x720    50.000 Hz  16:9    37.500 kHz   74.250 MHz
    VIC   3:   720x480    59.940 Hz  16:9    31.469 kHz   27.000 MHz
    VIC  18:   720x576    50.000 Hz  16:9    31.250 kHz   27.000 MHz
    VIC  90:  2560x1080   60.000 Hz  64:27   66.000 kHz  198.000 MHz
  Audio Data Block:
    Linear PCM:
      Max channels: 2
      Supported sample rates (kHz): 48 44.1 32
      Supported sample sizes (bits): 24 20 16
  Speaker Allocation Data Block:
    FL/FR - Front Left/Right
  Detailed Timing Descriptors:
    DTD 2:  3440x1440   99.982 Hz  43:18  150.972 kHz  543.500 MHz (797 mm x 333 mm)
                 Hfront   48 Hsync  32 Hback  80 Hpol P
                 Vfront    3 Vsync  10 Vback  57 Vpol N
    DTD 3:  3440x1440   49.987 Hz  43:18   73.681 kHz  265.250 MHz (797 mm x 333 mm)
                 Hfront   48 Hsync  32 Hback  80 Hpol P
                 Vfront    3 Vsync  10 Vback  21 Vpol N
    DTD 4:  2560x1440   59.951 Hz  16:9    88.787 kHz  241.500 MHz (797 mm x 333 mm)
                 Hfront   48 Hsync  32 Hback  80 Hpol P
                 Vfront    3 Vsync   5 Vback  33 Vpol N
    DTD 5:  1920x1080   60.000 Hz  16:9    67.500 kHz  148.500 MHz
                 Hfront   88 Hsync  44 Hback 148 Hpol P
                 Vfront    4 Vsync   5 Vback  36 Vpol P
    DTD 6:  2560x1080   60.000 Hz  64:27   66.000 kHz  198.000 MHz (797 mm x 333 mm)
                 Hfront  248 Hsync  44 Hback 148 Hpol P
                 Vfront    4 Vsync   5 Vback  11 Vpol P
Checksum: 0x4c

If you really want to override mode selection, you’ll definitely need AllowNonEdidModes. You might need others too, depending on how your custom mode goes through mode validation. You’ll want to set Option "ModeDebug" in xorg.conf and then you can check the X log to see if your custom mode was rejected, and if so, why.

I see, thanks.

One final question — is it possible to save these scaled resolutions in nvidia-settings for convenience sake?
It’d be preferable if I didn’t have to make custom shell scripts for this and could simply find these scaled modes in settings when I wish for them, however, not sure how to go about this.

You’ve helped me immensely so far, until today I didn’t know that monitors could only support the highest refresh rate only at highest resolution. Many thanks again!