Seeing smaller resolution for display than it supports

Try as I might, I can’t seem to convince my computer that my monitors really do support 2560 x 1440.

But first, some output from xrandr --verbose | edid-decode:

The EDID indicates via the Detailed Timing Description that it supports 2560 x 1440 59.951Hz.

So, I try:

$ xrandr --newmode "2560x1440_59.95" 312.00 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync

$ xrandr --addmode DisplayPort-1 2560x1440_59.95

$ xrandr --addmode DisplayPort-2 2560x1440_59.95

$ xrandr --output DisplayPort-1 --output DisplayPort-2 --mode 2560x1440_59.95

The other commands give me no output, but the last command reads:

xrandr: Configure crtc 1 failed

If I reverse the order of the --output arguments, that 1 turns into a 0.

If I call this:

$ mhwd

I get the following:

 0000:05:00.0 (0300:1002:731f) Display controller ATI Technologies Inc:
                  NAME               VERSION          FREEDRIVER           TYPE
           video-linux            2018.05.04                true            PCI
     video-modesetting            2020.01.13                true            PCI
            video-vesa            2017.03.12                true            PCI

And the relevent line from lspci:

05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] (rev c1)

(If that information is of any use here).

I’m happy to provide other output from various commands as is useful, but I’m at my wits end how to get at the 2560 x 1440. I know my cables can handle the resolution (as I once had it), and I’m pretty confident a Radeon 5700 xt can handle it, too.

Hewlett Packard provides the following datasheet for the pair of monitors I’m trying to use, if that helps:

Some more information to assist…

  • I saw proper monitor resolutions before Manjaro’s update this past December, even with my previous graphics card (an nVidia card).
  • I’ve tried a variety of refresh rates, but all give me the same error (xrandr: Configure crtc 0 failed). I’ve used 60 Mhz, 59.591 Mhz, and even 95.51 Mhz. All give me that xrandr: Configure crtc 0 failed error.
  • I’ve tried just changing a single monitor’s resolution, but it still gives me that error message. I’ve tried changing only the other monitor’s resolution, but I still get the error.
  • I keep reading that xorg automatically reads the information from the EDID, and I can see the correct resolution in the EDID, so it’s especially puzzling to me that this isn’t working. It feels like the distribution itself broke the ability to use QHD resolutions in some way… which would also explain why the change of graphics card made no difference to resolving this problem.

Hum… I dug into the /var/log/Xorg.0.log file and found:

[ 27774.278] (II) AMDGPU(0): Allocate new frame buffer 5120x1440
[ 27774.279] (II) AMDGPU(0):  => pitch 20480 bytes
[ 27774.308] (EE) AMDGPU(0): failed to set mode: Cannot allocate memory
[ 27774.308] (EE) AMDGPU(0): failed to set mode: Cannot allocate memory

Towards the beginning of the file, I found:

[     4.826] (II) AMDGPU(0): Supported detailed timing:
[     4.826] (II) AMDGPU(0): clock: 241.5 MHz   Image Size:  709 x 399 mm
[     4.826] (II) AMDGPU(0): h_active: 2560  h_sync: 2608  h_sync_end 2640 h_blank_end 2720 h_border: 0

Which tells me that it does see the EDID and it does interpret it properly… so this might be an issue of coercing the thing to have enough memory to work properly.

Slightly more information… the ‘Cannot allocate memory’ happens if I try to force (via xrandr) the use of the proper resolution.

If I look at the logging when I reboot and log in, I don’t see any errors. It does show that it found the higher resolution in the DTD, but it just won’t use it, for reasons I can’t work out through the logging. I’ll try posting it here after a reboot (after removing lines obviously unrelated to this, such as input devices, etc), and maybe someone else could help me see what’s going on?

Log file (with edits to remove irrelevant logging) from my Xorg.0.log file: