Fix for 4k60 with a rx 580

I’m running Qubes on a desktop with an rx 580 gpu. It worked fine except for two issues:

  • gui was very laggy
  • only 3840x2160@30Hz would work not 60Hz

I couldn’t select any refresh rate higher than 30Hz in the XFCE display settings or with xrandr.

The first thing I tried was installing kernel-latest:

$ sudo qubes-dom0-update kernel-latest

The 5.18.16-1 kernel worked just fine but didn’t resolve the issue.

Then I noticed this in Xorg.0.log:

(EE) Failed to load module “amdgpu” (module does not exist, 0)

Based on this thread I installed xorg-x11-drv-amdgpu and rebooted.

That removed the error from Xorg.0.log but then I had to manually add a mode and activate it to get 4k60 working:

$ cvt 3840 2160 60
# 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-1 "3840x2160_60.00"

$ xrandr --output HDMI-A-1 --mode 3840x2160_60.00

That’s it! 4k60 works great. Now I just need to figure out how to add and activate the mode automatically next on each boot.

3 Likes

Nice.

I can’t get 4K/60Hz on one of my two monitors, Sony and LG. The LG works but not the Sony. Tested using the same cable. I get 40/60p on the Sony with a cable box and streaming stick so I know it supports it.

No failed messages in Xorg.0.log.But if I followed your steps, I get the error, xrandr: Configure crtc 0 failed.

What’s interesting is the latest kernel immediately lowered my stable CPU temp 2deg C.

Edit: It seems the monitor/tv had an Enhanced HDMI setting within the Watching TV menu instead of the Picture Settings menu. That activated 60Hz. Not intuitive.

Hey, you are running 4.1 right?
Asking because the xorg-x11-drv-amdgpu package doesn’t exist when trying to install with dnf.

nvm found my error
sudo qubes-dom0-update xorg-x11-drv-amdgpu

did you find a way to make it persistent?

One way would be with a desktop file. This is all in dom0

First create an executable script with the xrandr commands in it. I create it at ~/fix_video.bash:

#!/bin/bash
xrandr --newmode "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync

xrandr --addmode HDMI-A-1 "3840x2160_60.00"

xrandr --output HDMI-A-1 --mode 3840x2160_60.00

And make it executable and create an autostart directory

$ chmod +x fix_video.bash
$ mkdir -p ~/.config/autostart/

Finally put this in ~/.config/autostart/fix_video.desktop:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=False
Exec=/home/dmm/fix_video.bash
Name=Fix 4k60 video

Be sure to change the Exec to where you put your script. That’s it! It should run shortly after you login to xfce.

1 Like