Telling what causes 30Hz refresh for 4K external monitor: monitor, graphics card, or Ubuntu 20?
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 2560x1440.
So far, I've been using an older external DELL U3417W monitor, which was running at 3440x1440 @ 50Hz via HDMI without problems, in a Joint Displays configuration (total pixels 2560x1440 + 3440x1440 = 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 3840x2160, 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 50Hz display.
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 3840x2160, 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 3840x2160. - 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" (with or without Ethernet).
- 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>
Solution 1:
I successfully used a Thunderbolt to HDMI cable connecting my Lenovo Laptop running Ubuntu with my 4k monitor at 60hz (which has only HDMI and DP ports).
Therefore I don't think that replacing the Monitor is necessary. Just make sure the cable supports 4k60hz.
Solution 2:
This seems like a limitation of HDMI for the laptop, rather than for the monitor. The laptop specs mention
Max resolution: 5K@60Hz (Thunderbolt); 4K@24Hz (HDMI)
Since I was obtaining 4K@30Hz (more than 24Hz) 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 a 34" LG 5120x2160 monitor @ 60Hz over Thunderbolt. I was also later able to run an MSI 5k2k monitor at 50Hz over Thunderbolt.
The ViewSonic doesn't support Thunderbolt so it seems I'll have to replace it with another 4K monitor that does.
The curved Dell S3221QS specs list 4K @ 60Hz but it also doesn't have USB-C, so I could only get 30Hz over HDMI, but by using an old USB-C to HDMI adapter I am getting 4K @ 50Hz (despite the Amazon page listing 30Hz for the adapter).