144Hz monitor only gets 60Hz refresh rate on DP-0 port

About 3 years ago, @generix helped me setup a dual-external-monitor system on a hybrid-graphics (Ryzen 4800H+RTX2060) gaming laptop running Ubuntu, and it has been running well. I’ve upgraded the (X)Ubuntu OS from 18.04 → 20.04, and to 22.04 earlier this year, and also upgrade my external monitors from full HD to 2k.

My two external monitors are now both Samsung LS27R75 2K monitors capable of 144Hz refresh rate. I noticed that the monitor connected via the HDMI on the laptop is getting 144Hz refresh rate, but the one connected via USB-C → adapter → HDMI, labeled as DP-0 port, is only getting 60Hz refresh rate.

it has’t been bothering me much with 60Hz, but when displaying certain shades, I do see flickering. so I am hoping if I can make both to work at 144Hz.

From @generix’s previous posts, it seems the on-board HDMI port and DP-0 are connected to different GPU in this hybrid system and one of those is doing a video by-pass. I am wondering there is a way we can force the USB-C->HDMI adapter to provide 144Hz rate, I thought USB-C port has much higher bandwidth.

I am appreciated if anyone knows how to configure this monitor to use the higher refresh rate.

here is the nvidia-setting dialog showing the two monitor’s available modes - you can see for 2k resolution, it only lists 60Hz for the non-prime monitor.

Here is my xrandr -q output, you can see that DP-0 also does not have 144Hz under 2k.

fangq@rainbird:~$ xrandr -q
Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
DP-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   2560x1440     59.95*+
   1920x1080    143.98   120.00    60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94  
DP-1 disconnected (normal left inverted right x axis y axis)
eDP-1-0 connected (normal left inverted right x axis y axis)
   1920x1080    144.00 + 120.00    96.00    72.00    60.00    50.01    48.00    60.00  
   1680x1050    144.00  
   1280x1024    144.00  
   1440x900     144.00  
   1280x800     144.00  
   1280x720     144.00  
   1024x768     144.00  
   800x600      144.00  
   640x480      144.00  
HDMI-A-1-0 connected 2560x1440+2560+0 (normal left inverted right x axis y axis) 598mm x 336mm
   2560x1440    144.00*+ 120.00    99.95    59.95  
   1920x1200    144.00  
   1920x1080     60.00    50.00    59.94  
   1600x1200    144.00  
   1680x1050     59.88  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
  2560x1440 (0x1bd) 241.500MHz +HSync -VSync
        h: width  2560 start 2608 end 2640 total 2720 skew    0 clock  88.79KHz
        v: height 1440 start 1443 end 1448 total 1481           clock  59.95Hz
  1920x1080 (0x1c0) 148.500MHz +HSync +VSync
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.50KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  60.00Hz

If it’s related to this issue, it might be worth trying a 525 driver.

I am already on a 525 driver.

fangq@rainbird:~$ nvidia-smi
Mon Aug  7 09:17:20 2023       
| NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| N/A   53C    P0    26W /  90W |    919MiB /  6144MiB |     32%      Default |
|                               |                      |                  N/A |
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|    0   N/A  N/A     10276      G   /usr/lib/xorg/Xorg                610MiB |
|    0   N/A  N/A     10716      G   xfwm4                               2MiB |
|    0   N/A  N/A     11305      G   ...-features=EnableTabMuting      121MiB |
|    0   N/A  N/A     12259      G   ...b/thunderbird/thunderbird      182MiB |

What adapter?
Specs available?

Please also run nvidia-bug-report.sh as root and attach the resulting file here.
When running Xorg, this should shed some light which modes the driver sees.

My USB-C adapter is a generic brand bought from Amazon, looks exactly like this one, except that the brand name is FlePow instead of ThanBao. Even the specs look the same - both listed 4K HDMI Output - although it does no say it supports 144Hz.

if this is the issue, does anyone know a USB-C-to-HDMI adaptor that works for 144Hz?

below is my nividia-bug-report log

nvidia-bug-report.log.gz (337.9 KB)

Not very helpful without exact specifications / model.

I tend to think the adapter is the culprit. A little web search brought up i.e.:

As the log does not show the modes the nvidia gpu sees, I wonder if it is because you boot with kernel parameter nvidia-drm.modeset=0.
Just for testing, could you try to boot with nvidia-drm.modeset=1 and create a new bug report?

here is the bug report with nvidia-drm.modeset=1

nvidia-bug-report.log.gz (362.3 KB)

also from the backside of the adapter, I found the model number, it is FlePow UCN 3281. here is the picture and review of the dongle

you may be right that this dongle does not support 144Hz HDMI output

[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.15.0-78-generic root=UUID=3f0b83c6-9602-4239-853c-eb2d4470974a ro quiet splash nvidia-drm.modeset=0 vt.handoff=7

You are still booting with nvidia-drm.modeset=0

Edit /etc/default/grub and run sudo update-grub

thanks for spotting that. here is the log generated after setting nvidia-drm.modeset=1 and reboot

nvidia-bug-report.log.gz (341.0 KB)

Makes no difference.
Just wondering… what’s your prime setup?
prime-select query

line#1807 of the log shows that the kernel was now booted with nvidia-drm.modeset=1, was there other changes you had expected?

the output is nvidia for the above command

As said no difference.
I was hoping to see the modes for DP-0 being printed, but no… so you can change the kernel parameter back.
I have no idea how the USB-C connection is handled by the kernel/drivers/window manager, so…

My best bet is still the adapter simply not supporting the frequency.

a follow up on this - @Mart was absolutely right, the USB-C-to-HDMI adapter was the culprit. Replacing it by an adapter explicitly support 4k/2k@144Hz solved the problem. Now both xrandr and nvidia-settings shows 144Hz @ 2k for DP-0.

the specific adapter I bought was this one

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.