RX480 wrong resolution after kernel update to 4.15

My kernel got updated from 4.14 to 4.15 and now I can’t choose my native resolution anymore. When searching google I found out that 4.15 introduces AMD Display Code, could this have something to do with it?

GPU: AMD RX480 / Polaris
OpenSuse version: 42.2
kernel version: kernel-default-4.15.1-2.1.g9df97e2
kernel repo: http://download.opensuse.org/repositories/Kernel:/stable/standard/

What exactly do you mean with that?
There definitely was “AMD Display Code” in there before… :wink:

Maybe post /var/log/Xorg.0.log, that might show something.

GPU: AMD RX480 / Polaris
OpenSuse version: 42.2
kernel version: kernel-default-4.15.1-2.1.g9df97e2
kernel repo: http://download.opensuse.org/repositories/Kernel:/stable/standard/

Any particular reason why you use that kernel?
The standard one should work fine, no?

Btw, 42.2 is end-of-life since over a week. You’d better upgrade.

Can you show us what ‘xrandr’ reports? Perhaps also share your Xorg.0.log - upload it to https://paste.opensuse.org/ and post the URL that it generates here.

Ah ok, you probably mean this:

But AIUI that shouldn’t make a difference for older GPUs including Polaris…
According to the Arch Wiki you’d explicitly need to enable it:
https://wiki.archlinux.org/index.php/AMDGPU#Enable_AMD_DC_on_pre-Vega_cards

For some reason Yast freezes when I open the Bootloader settings and swap to the Kernel Parameters tab. I tested both the GUI and the ncurses version, both freezes. So how else can I set the kernel parameter?

The reason for using this kernel is that RX480 is not supported in kernel 4.4, I need at least 4.7 or so.

xrandr output:

Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 16384 x 16384
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
DVI-D-1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   1920x1200     59.95* 
   1920x1080     60.00  
   1600x1200     75.00    70.00    65.00    60.00  
   1680x1050     59.88  
   1400x1050     74.76    59.98  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x800      59.91  
   1152x864      75.00  
   1024x768      75.05    60.04    75.03    70.07    60.00  
   960x720       75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   832x624       74.55  
   800x600       75.00    70.00    65.00    60.00    72.19    75.00    60.32    56.25  
   700x525       74.76    59.98  
   640x512       75.02    60.02  
   640x480       60.00    75.00    72.81    75.00    59.94  
   720x400       70.08  
   576x432       75.00  
   512x384       75.03    70.07    60.00  
   416x312       74.66  
   400x300       72.19    75.12    60.32    56.34  
   320x240       72.81    75.00    60.05  

The native resolution is 2560x1440.

Xorg.0.log: SUSE Paste

Well the EDID reports the following maximum display resolution capability…

    23.580] (II) modeset(0): Printing probed modes for output DVI-D-1     23.580] (II) modeset(0): Modeline "1920x1200"x60.0  154.00  1920  1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz e)


This thread may be of interest to you (including last few posts in that thread re Xorg repo)
https://forums.opensuse.org/showthread.php/522107-How-to-install-amdgpu-driver-for-AMD-Radeon-RX400-Series

I have something like this problem.

After i switch monitor off and on resolution changes from 3840x2160 to something like 1300x1000,
and xrandr forget all my settings and only allow 1300x1000 and lower.

Linux localhost 4.15.0-1-default #1 SMP PREEMPT Wed Jan 31 07:03:28 UTC 2018 (ac01747) x86_64 x86_64 x86_64 GNU/Linux
and amdgpu with rx560

At least in the GUI version, 1073201 – UEFI: 42.3 y2start pegs CPU when bootloader kernel parameters tab is selected is the reason for the freeze, a problem with video probing. :frowning:

Any chance you can use a DisplayPort instead of DVI? DP often works much better than DVI-D DL on my 2560x1080 screen.

You can also set the boot parameters directly in /etc/default/grub with a text editor (GRUB_CMDLINE_LINUX_DEFAULT). You’d need to run “sudo grub2-mkconfig -o /boot/grub2/grub.config” to apply the change.
(that’s basically what YaST is doing as well)

Or press ‘e’ at the boot menu to edit the menu entry in place, but this only affects the current boot and won’t get saved.

PS:
If it is indeed related to “AMD Display Code”, you might try to turn it off, by using the “amdgpu.dc=0” boot option.

Apparently it is enabled also for older GPUs (by mistake?) in openSUSE…
http://bugzilla.opensuse.org/show_bug.cgi?id=1079899

I don’t know though.

thank you so much wolfi323,im italian so,sorry if my english is not well as yours…
im ubuntu user and i have a rx550,before the kernel 4.15 everything was good but,since the first rc to the newer 4.15.2 (released today) my resolution that originally is 2560x1440 is stuck at 1920x1080. i spent over 1 month to discover what is the problem,nothing.
wandering on the internet I found this thread,I edited the grub using the parameter “amdgpu.dc=0” and EVERYTHING IS BACK,MY RESOLUTION NOW IS THE NATIVE OF DISPLAY.
thank you so so so so much!

ekj check my last comment!

Now it works! I finally ended up with installing openSuse 42.3 and in there my display runs at native resolution out of the box, even though it’s only a 4.4 kernel!

42.3 comes with backported drm kernel modules from Kernel 4.9…
(contained in the package drm-kmp-default, so they can be uninstalled in case of problems)

you can eventually upgrade the kernel adding “that” parameter in the grub file.
my kernel now is 4.15.2 and my amd rx550 works great at 2560x1440.

did you try what i say in the last comment?

Just popping my head in to say that disabling DC absolutely resolved the identical problem I was having with an RX480 GPU. Now Plasma is telling me it detects the HDMI audio out as an RX580. It never ends! But at least the resolution is correct now. Thanks wolfi323!