AMD RX 570 on Linux: Neither OpenCL nor multiple monitors work

I’ve had one week of really frustrating attempts to install a proper Linux driver for an RX570 card i just bought. The install scripts on AMD’s site (AMDGPU-PRO and AMDGPU) both throw an error regarding “amdgu-core”, and the PPAs I’ve tried (ppa:paulo-miguel-dias/mesa and ppa:oibaf/graphics-drivers) are of no avail. I won’t go into any more details, except that I use Linux Mint 19.1 (built on Ubuntu 18.04) and the hardware is clearly recognized::

lspci -nn | grep -E 'VGA|Display'
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] [1002:67df] (rev ef)

Neither OpenCL nor dual monitor support work. (When I take a screenshot, both monitors show up correctly, and both are powered up. But physically, one remains black.) The primary monitor works as expected, though.

My question is simply this: Has anyone here been able to make the RX570 work correctly in Linux?

Btw: I’m a fairly advanced Linux user and I’ve searched all kinds of relevant forums and tried out a busload of suggestions posted there.

Please don’t make any “alternative” suggestions, such as switching to nVidia or such.

I’m only interested in hearing from someone who has made this work, as I’m pretty sure I’ve exhausted all suggested remedies.

Thank you!

Mint 18.1 Cinn: How To: AMD Driver install (RX480, R7, R9) + Steam

  1. Now, need to modify the install script slightly so it works on Mint instead of Ubuntu.

    nano amdgpu-pro-install


  1. Finally, delete the old driver. Open up the “Software Manager”. (Menu, Administration, Software Manager). Search for “Radeon” in the search bar. Scroll down to “Xserver-xorg-video-radeon” towards the bottom. Double-click it, then uninstall.

?

Hello Monarch, Your AMD driver and kernel fix procedure works perfectly—excellent solution! Previously ran Linux Mint 18.1 64-bit Cinnamon perfectly on my old XFX Radeon 7850 2 GB video card with 4 monitors, until video upgrade. Would not display more than 2 monitors and was running in degraded software mode. All good now.

!!

Thanks, but I’ve tried all that multiple times.

Felix, do you have a Linux installation where the RX570 actually works with two monitors and OpenCL?

No, not right now, but i do have a unfinished computer build I intend to set up linux on that will feature two monitors. So this is interesting and relevant to me.

Have you tried Ubuntu itself, just for diagnostic purposes?

I use an RX580 and it works fine in Mint. From what i recall for AMDGPU-PRO you had to edit the install script so that it doesn’t throw an error with Mint when it’s checking for an Ubuntu version. Also make sure to update your kernel before that, it might be related to the error you’re getting. Almost a year ago when i got my card, after i installed the driver X would crash completely without a kernel that’s 14.9 or newer. Maybe it’s trying to compile a kernel module and failing. Mint has an easy kernel upgrade utility in the Updater

That’s why I posed the question the way I did. I’ve used Linux for some ten years, and now I’m running Mint based on Ubuntu. I’ve never had any kind of trouble with my setup before now, and it ran multimonitors without a glitch on my nVidia card.

When I upgraded my graphics card, I decided to try AMD instead, sicne I was impressed by their commitment both to Blender and open source in general.

I’ve been sorely disappointed, though. I also tried to boot other Linux distros to see whether that solved the driver problem, such as Redhat, but to no avail. I haven’t tried vanilla Ubuntu, though. (Might as well give it a shot, I suppose.)

AMD’s driver software (at least for the RX570) leaves a lot to be desired, to put it mildly.

But except for that, running Linux has been a breeze for me; I even run Photoshop and inDesign under Wine without a hitch.

Well, I guess I’ll just take it as a learning experience, albeit a somewhat expensive one, and return to the nVidia fold…

Have you tried xrandr?

If you run xrandr does it identify the screen/connection correctly?

If it identifies all your connections and screens have you tried to activate the one that doesn’t work with xrandr for example, I need to run:

xrandr --output DP-1-3 --auto

to get an image on one of my outputs. Change the above (DP-1-3) to your connection/output you want to display obviously.

Cheers

With the amdgpu-pro drivers, you might need to match the kernel version. Not to new, Not too old. For me using an rx 480 I almost could never get the commercial drivers working. Only open source. And that means no blender.

there was only one version of the drivers that would work, but now the new kernel has arrived, nothing. The version number has been forgotten. version 6.49?

Alternative thing that might work, but could cause a bug. Install the commercial drivers headless, and use opensource for your monitors. With the drivers installed headless, you should be able to get blender to render using opencl.

It worked for me under mint, but failed under opensuse.

What OpenCL loader uses AMD proprietary driver?
For proprietary driver (in Ubuntu), here they mention that you have to install driver in this way:
https://blender.stackexchange.com/questions/114176/blender-2-79-does-not-detect-gpu-amd-rx580

In the first link it is recommended first to uninstall packages related to “ocl-idc”

By the way, is not there an official AMD forum to get support or report problems?

Thanks for all your suggestions, but again, I’ve pretty much given up on this now. I was just interested in hearing from someone who has made this work, but it seems noone has.

So to make a far too long story short, I’ll probably be buying a new nVidia card tomorrow…

It’s just that when I read that AMD users still have the same kind of problems on Linux as when I was ATI user many years ago, it makes me angry.

I’m currently on Linux Mint with AMD RX 570 and I have the same problem now. My blender version is 2.92.0 as of now. And can’t render in OpenCL.

Linux / Ubuntu AMD GPU rendering update.
When I installed AMD proprietary GPU/ OpneGL/OpenCL drivers it gave me all kind of problems, system wide. Like OS blacklisting AMD video drivers and not loading them at all on boot-up, AMD errors every time I was trying to update an app and so on. So I just removed them and ended up using Linux own AMD drivers. They are not supported by Cycles though, so no GPU rendering with Cycles, but I never use Cycles anyway. What I mean by that is if you guys are on Linux and don’t use Cycles, then don’t ever install AMD original proprietary drivers. They will give you all kind of grief.
Now my Linux works like a charm. Eevee rendering is still able to utilize GPU, no problem, even with Linux drivers.

PHBob I’m running Linux Mint and using the standard open source AMD video driver on my all AMD gaming machine. Could you please explain further how and where to set up Blender so that Eevee uses the GPU or does it happen by default.

Hey Ivan,
there is no need to set it up in any way. Eevee should use it automatically. Even if it says in OpenCL section of the preferences “No compatible GPU found”, it’s for Cycles. Eevee still should work just fine and use GPU.
I use radeontop utility to see if Blender is using GPU when rendering, it sure does it alright. Sometimes it uses GPU so much, I can barely use the PC for anything else.
My Blender setup:

Thanks your Blender settings are the same as mine. However, I can’t get Radeontop to see my GPU. When I run Radeontop, I get
radeontop unknown, running on UNKNOWN_CHIP, 120 samples/sec and Radeontop shows every graph on 100%. Maybe its not compatible with my graphics card.

A system report on my graphics card gives the following.
Graphics: Device-1: AMD vendor: Gigabyte driver: amdgpu v: kernel bus ID: 0a:00.0
chip ID: 1002:731f
Display: x11 server: X.Org 1.20.8 driver: amdgpu,ati
unloaded: fbdev,modesetting,radeon,vesa resolution: 2560x1440~60Hz
OpenGL:
renderer: AMD Radeon RX 5700 XT (NAVI10 DRM 3.37.0 5.7.1-050701-generic LLVM 10.0.0)
v: 4.6 Mesa 20.0.8 direct render: Yes

my wild guess would be you also need to install the Linux generic OpenGL/OpenCL compatible with your AMD card. In my case I’ve installed AMDGPU that I downloaded from AMD, then I removed it. May be it installed some software or driver needed for radeontop, and my radeontop is using it to report my GPU rendering stats. Try to find some other utility that can check and display your GPU stats. I am not a Linux guru, so cannot help you here, sorry.
In general, if your Linux system can utilize GPU rendering for any other program besides Blender, then Blender should/could use GPU for Eevee too. In my case, I just know if my rendering time is 1 or 2 sec per frame, that’s GPU working. Also, when I render and the system gets really slow and my System Monitor shows no excessive CPU usage, that’s GPU rendering working.