I have a modern laptop (Lenovo X1 Carbon 7th Gen, Intel® Core™ i7-8665U CPU @ 1.90GHz × 8, Mesa Intel® UHD Graphics 620 (WHL GT2), 16 GB RAM) running Ubuntu 20.04 with GNOME 3.36.2, in a dual-monitor setup. The laptop's internal screen is 2560×1440.
So far, I've been using an older external DELL U3417W monitor, which was running at 3440×1440 @ 50Hz via HDMI without problems, in a Join Displays configuration (total pixels 2560×1440 + 3440×1440 = 8.6M @ 60Hz and 50Hz respectively).
Yesterday, I replaced the DELL monitor with a 4K monitor, the ViewSonic VP3268-4K. Using the supplied HDMI cable, I can only get 30Hz out of it at 3840×2160, and everything is slow. Not just scrolling text pages, but even typing "aaaaaaaaaaaaaa" in a single-line input field in Chromium lags. That was not the case with the DELL.
The resolution of the new monitor is nothing crazy, only 67% more than the previous one. I don't see any extra CPU consumption. I disabled the laptop's internal screen, to keep only the monitor in a Single Display configuration. Still 30Hz, and the total pixelage is 3840×2160, so 8.3M, less than the internal screen + DELL combo.
Is there a way to enable/force at least 50Hz? I tried forcing the rate to 60, but that just led Ubuntu to considering the display as new (scaling 200%, primary was the laptop) and the refresh rate ended up 30 again.
How can I tell if this is a limitation of,
- the monitor (its specs are vague, "25 – 75Hz"), so that I can return/exchange it. I've been through all its OSD menus, set "Response Time" and "Low Input Lag" to every combination, incl. "Ultra fast", and ran
xrandr
after each. Disabled HDR10, Film mode. Tried View Mode -> Game -> FPS1, FPS2; etc. 30 Hz was the max for 3840×2160. - the HDMI cable that came with it (I tried another one, same result, and both cables are driving the DELL monitor @ 50Hz). Both cables are marked "High Speed HDMI".
- Ubuntu (I don't have Windows to try but I could flash another distro that's supposed to have better 4K monitor support?)
- drivers or whatever else
xrandr output:
Screen 0: minimum 320 x 200, current 6400 x 2616, maximum 16384 x 16384
eDP-1 connected 2560x1440+0+1176 (normal left inverted right x axis y axis) 309mm x 174mm
2560x1440 60.00*+ 59.99 59.99 59.96 59.95
1920x1440 60.00
1856x1392 60.01
1792x1344 60.01
2048x1152 59.99 59.98 59.90 59.91
1920x1200 59.88 59.95
...
320x240 60.05
360x202 59.51 59.13
320x180 59.84 59.32
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 3840x2160+2560+0 (normal left inverted right x axis y axis) 697mm x 392mm
3840x2160 30.00* 25.00 24.00 29.97 23.98 29.98
1920x2160 59.99
3840x1080 59.97
1920x1200 59.95
1920x1080 60.00 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98
1920x1080i 60.00 50.00 59.94
1600x1200 60.00
1680x1050 59.88
1280x1024 75.02 60.02
1440x900 59.90
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1440x576 50.00
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
720x240 60.12 60.05
DP-2 disconnected (normal left inverted right x axis y axis)
From ~/.config/monitors.xml
:
<configuration>
<logicalmonitor>
<x>2560</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>VSC</vendor>
<product>VP3268-4K</product>
</monitorspec>
<mode>
<width>3840</width>
<height>2160</height>
<rate>30</rate>
</mode>
</monitor>
</logicalmonitor>
<logicalmonitor>
<x>0</x>
<y>1176</y>
<scale>1</scale>
<monitor>
<monitorspec>
<connector>eDP-1</connector>
<vendor>LGD</vendor>
<product>0x05ee</product>
</monitorspec>
<mode>
<width>2560</width>
<height>1440</height>
<rate>59.997714996337891</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
The entry for the DELL was
<monitor>
<monitorspec>
<connector>HDMI-1</connector>
<vendor>DEL</vendor>
<product>DELL U3417W</product>
</monitorspec>
<mode>
<width>3440</width>
<height>1440</height>
<rate>49.986808776855469</rate>
</mode>
</monitor>
Best Answer
This seems like a limitation of HDMI, at least for the laptop if not for the monitor. The laptop specs mention
Since I was obtaining 4K@30Hz over HDMI, it seems the specs are a bit conservative, which is good news.
A user on the Lenovo forums confirmed they used the same laptop running Windows 10 to drive the 34" 5120x2160 monitor @ 60Hz over Thunderbolt. Nobody on the forum has confirmed whether they were able to run 4K external monitors at 60Hz with Ubuntu X1Cs.
The ViewSonic doesn't support Thunderbolt so it seems I'll have to replace it with another 4K monitor that does.