I attached a new 2560x1440 display (Dell P2416D) with HDMI to my dual-booting laptop (Asus N56VJ) that has NVIDIA's dual-GPU technology.

In Windows 8.1 I got the display to run with its native resolution and 60 Hz refresh rate by creating a custom resolution in NVIDIA settings. The display menu also shows that it is running 2560x1440 @ 60 Hz, so no downscaling is involved.

However, in Ubuntu 15.10 I have had no luck enabling the native resolution. The display settings widget is only offering picture sizes up to 2048x1152, and running Xrandr fails in the following way:

fabio@fabio-N56VJ:~$ xrandr --newmode 2560x1440 311.825 2560 2744 3024 3488 1440 1441 1444 1490 +hsync +vsync 

fabio@fabio-N56VJ:~$ xrandr --addmode HDMI-0 2560x1440 
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:  36
  Current serial number in output stream:  37

I have tried modelines generated by the gtf tool, and ones based on Windows settings exported by PowerStrip.

I am running the latest NVIDIA binary drivers available in Ubuntu, meaning nvidia-352.

My HDMI cable supports specification version 1.4, too, although that should not be the problem since display is running fine on Windows.

Is there a way I could force X.org or Xrandr to force set the mode, or another way to get to use the display without scaling?


2560x1440 resolution is only possible via DisplayPort.
Note that the "hacks" on the net aren't supported on most models of displays.

Despite in your case it was possible, linux only supports "official" modes AFAIK.

| improve this answer | |

Probably the pixel clock 311.83MHz is too high for your GPU or display. Try with other mode lines with lower pixel clocks. For example 2560x1440 at 60Hz (reduced blanking) acquired by cvt -r:

$ cvt -r 2560 1440 60
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
$ xrandr --newmode 2560x1440@60R 241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
$ xrandr --addmode HDMI-0 2560x1440@60R

Or, accept refresh rates lower than 60Hz:

$ xrandr --newmode 2560x1440@55 220.812 2560 2608 2640 2720 1440 1443 1448 1478 -hsync -vsync
$ xrandr --newmode 2560x1440@45 227.75 2560 2720 2992 3424 1440 1443 1448 1480 -hsync +vsync
$ xrandr --newmode 2560x1440@30 146.25 2560 2680 2944 3328  1440 1443 1448 1468 -hsync +vsync

My old notebook with Sandy Bridge CPU seems incapable of pclk higher than 225MHz over HDMI, but successfully makes 2560x1440@55Hz HDMI output to ASUS PB278Q or DELL U2713H.

Note that too low refresh rates like 30Hz might not be supported by your display. ASUS PB278Q renders psychedelic patterns for such inputs.

| improve this answer | |
  • Thanks, this is a good answer, but even 30 Hz did not solve the original problem yet. – borellini Dec 3 '15 at 8:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.