4k monitor at 30 Hz max refresh rate

Hi everyone,

I have a thinkpad x395 with an AMD Vega 8 video card and an external (HDMI-connected) 4k-capable monitor.
Problem is that at the max resolution (3840x2160), I’m only getting a 30 Hz refresh rate.

The issue is not with the laptop or the cable because running Windows on the same setup gives me 60Hz no problem.

Some command output:

> lspci  | grep VGA
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso (rev d2)

> xrandr
Screen 0: minimum 320 x 200, current 5760 x 2160, maximum 16384 x 16384
eDP connected 1920x1080+0+953 (normal left inverted right x axis y axis) 294mm x 165mm
   1920x1080     60.02*+  48.02  
   1680x1050     60.02  
   1280x1024     60.02  
   1440x900      60.02  
   1280x800      60.02  
   1280x720      60.02  
   1024x768      60.02  
   800x600       60.02  
   640x480       60.02  
HDMI-A-0 connected primary 3840x2160+1920+0 (normal left inverted right x axis y axis) 596mm x 335mm
   3840x2160     30.00    25.00    29.97*
   2560x1440     59.95  
   1920x1080     60.00    60.00    50.00    59.94    24.00    23.98

Here’s the part of Xorg.log where the monitor is recognized (and refresh rate miss-identified):

https://pastebin.com/raw/6NsH7Gy5

Trying to force xrandr use 60 Hz was rudely rejected:


> cvt 3840 2160
# 3840x2160 59.98 Hz (CVT 8.29M9) hsync: 134.18 kHz; pclk: 712.75 MHz
Modeline "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
> xrandr --newmode "3840x2160_60.00" 712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
> xrandr --addmode HDMI-A-0 3840x2160_60.00
> xrandr --output HDMI-A-0 --mode 3840x2160_60.00
xrandr: Configure crtc 0 failed

You need a cable that supports HDMI version 2.0b or greater, besides GPU support, of course.

First time I connected a 4k display I only got 30 Hz, using a common (TV) cable. But as it works in windows this is not it.

Check the frequency settings in your video driver. In KDE you can set it at system-settings>display>advanced for the selected monitor. A few weeks ago for some reason one of the twin 4K monitors I use reverted to 30 Hz, causing severe stutter in media players.

Post deleted, as you get 60 Hz in windows.

Try forcing at kernel level (cmdline):

video=HDMI-A-0:3840x2160@60e

More info @ https://www.kernel.org/doc/Documentation/fb/modedb.txt for other possible video= options. If kernel can do it on the vttys, then X should be able to as well.

No luck with this. I tried both 60e and 60me.

Just for kicks I fired up a Fedora live image and got 59.98 Hz right off the bat.
Very strange.

Hi
And the system is all up to date via zypper dup command?

Have a read here: https://forums.linuxmint.com/viewtopic.php?t=289859

System is fully updated, yes. I’ll give that Windows tool a try at some point though it doesn’t seem too related to my problem (not using Display Port, no MST to fiddle with).

That indicates you’ve apparently hit a bug that’s likely openSUSE’s, not upstream’s, reasonable justification to file a bug report.

with a reference back to this forum thread. :slight_smile:

Ah.

Here’s the link to the bug report: 1165977 – 4k monitor only allowing 30 Hz refresh rate on AMD Vega 8 via HDMI2

This has been resolved.

HDMI was set to version 1.4 in the BIOS (why?). Since 1.4 restricts 4k resolutions to 30Hz, that’s all the video drivers could manage.

Why it didn’t make a difference in Windows or Fedora, I don’t know. Maybe they do their own checks and ignore the BIOS setting.