Radeon rx 590 games crash

Hi :smiley:
I'm having problems with the graphic card Radeon rx 590, games crash whit Manjaros open-source drivers.
But the drivers on amd website are working for ubuntu 18.04. Now I want to test these drivers for Manjaro but they are for Ubuntu. How do I install this on Manjaro? I can see that I have 19.30 amdgpu-pro in aur but I think I need 19.50.

I installed the version in current aur (19.30) and I get a "whit screen" whit working mouse on top of the display manger when I try to log in. 19.30 should be working that was the one I try whit Ubuntu.

its similar to this problem

https://community.amd.com/thread/246894

It is highly not recommended to install any programs outside of the repos as it can cause a lot of issues. And you'd have to self maintain everything yourself from then onwards.

You'll have to wait until the maintainer updates the package.

AMDGPU-Pro is not meant for gaming at all. Unless you are needed AMDGPU-Pro to run some specific software, it is HIGHLY not recommended to use. AMDGPU-Pro is meant for development and business.


Have you tried any of the other kernels to see if you still have issues? Kernel 5.3, 5.4, 5.5

Also, without any error notes from the terminal, none of us can help troubleshoot the issue

1 Like

https://wiki.archlinux.org/index.php/AMDGPU#AMDGPU_PRO

When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. About the only advantage to the closed-source AMD OpenGL driver is its support for GL 4.6 while RadeonSI is still limited to GL 4.5 until its SPIR-V ingestion support is completed.

I wanted to test if the bug was present in Manjaro whit proprietary driver. I was not gonna use them

its the same with kernel 5.4.5 haven't tried 5.5

From my experiences on Arch and Manjaro from a Linux gamer's perspective, the only thing from AMDGPU-Pro we might want to consider is getting AMDGPU-Pro's AMDVLK implementation and using that...though, for me lately (Mesa 20+), it has performed worse than RADV across the board with my RX 580. AMDVLK-Pro can live beside RADV and the open source AMDVLK so it's pretty safe to install and forget about.

I recommend installing it from TK-Glitch's PKGBUILD collection.

I do not recommend installing the complete AMDGPU-Pro driver on Manjaro (or Arch). I've never had good results installing all of it. Nothing in it will really benefit your 590 or my 580. Figure I'll mention that AMDGPU-Pro's OpenCL package can be installed alone as well. That and AMDVLK-Pro are the only things from AMDGPU-Pro you should consider using on Manjaro. The OpenCL package isn't something needed for gaming.

The only people that actually require AMDGPU-Pro are people who buy bleeding-edge hardware since it can take a kernel release or two for what's in AMD's staging repos to make it to mainline and AMD can sidestep that a bit with Pro packages.

In that AMD thread you mentioned using Mesa-git -- is that still the case? A complete AMDGPU-Pro + Mesa-git likely will not work together outside of the two packages I mentioned above (and I use them with Mesa-git).

It's really worth mentioning that there has also been a lot of changes to Mesa-git between 19.2, 19.3 and 20.0 and that it wouldn't hurt to revert back to what the repositories offer to ensure you didn't have a bad build. There's also a mesa-git PKGBUILD at the same git repo as the AMDVLK-Pro one I linked to above. It's what I use for Mesa-git.

Also, what game or games in particular are you having issues with?

EDIT: After reading your AMD post a bit more....I think your 590 overheats like my 580 did before I undervolted it. I could hardly game before it would either get really laggy or just conk out. After watching the thermals and seeing that it would thermal throttle and de-throttle over and over again, I undervolted my timings and got it to where it stayed below 80C (and overclocked my memory to boot).

I used WattmanGTK to view temps and tweak settings and then created a systemd unit to load my undervolt settings on boot. Been doing that for almost a year now and it's the literal first thing I do upon a fresh Linux install because I can't play games w/o it regardless of the distribution.

2 Likes


How would I configure this you did?

Sorry, been a bit busy these past couple of days.

Give me another day for a proper response. If you don't know what you're doing you can damage your hardware and, because of that, I feel that I should reply with a guide-level answer because it'll involve a bit of theory, custom systemd units, kernel command line editing, and more.

okej I wont mess whit that again, I tried what he did on the video
I did manage to go to 1060 mV whit state 7, hope i didn't damage anything :confused:
I used the same program he had for testing Unigine_Superposition-1.1 it crash regardless of settings, I tried 1090 mV too

Ever have someone ask you to find a TV show and that TV show could only be found on one of those sites that takes 20 hours to download a 2GB file? Hard to reboot and ensure what I'm saying is correct when that's going on. Sometimes being the local area computer dude sucks. If it wasn't for dbus-launch dolphin, yesterday would have really sucked after that update.

Mine is at 1075 and I can probably lower it some more. Once I got my thermals under control I quit messing with my voltages.

Lowering just the mV is normally safe and usually won't damage your hardware. It's doing actual overclocking and overvolting to achieve higher than stock clock speeds where you risk damage. If you can find good, stable values using lower voltages than stock while still using stock frequencies, your GPU should, in a perfect world, last longer.

AMDGPU PowerPlay Enabling Tutorial Using WattmanGTK and Systemd to Load Values During Boot

Please note that I'm using PowerPlay in the title to refer to over/under clocking, over/under volting, etc. AMD calls that feature PowerPlay so that's what we're going to call it.

  1. Enable PowerPlay
    The first step to use PowerPlay to tweak GPU settings is to enable it from the kernel command line.

    In Manjaro, and most other distributions, that is accomplished by adding amdgpu.ppfeaturemask=0xffffffff to GRUB_CMDLINE_LINUX_DEFAULT= in /etc/default/grub and then updating the grub configuration with sudo update-grub and then reboot. If update-grub isn't available then sudo grub-mkconfig -o /boot/grub/grub.cfg should work. For setups not using GRUB, the Arch Wiki Kernel Parameters should provide the information on where to set amdgpu.ppfeaturemask.

    Here's my before and after from /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor resume=UUID=32b3cc8e-0c93-4432-ab25-1e6db83cd0a7 udev.log_priority=3"
  
    GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor resume=UUID=32b3cc8e-0c93-4432-ab25-1e6db83cd0a7 udev.log_priority=3 amdgpu.ppfeaturemask=0xffffffff"
  1. Installing WattmanGTK
    A. The Manjaro Way -- Enable AUR support in pamac-manager from Menu>AUR and tick the AUR button, search for wattmangtk, and install it.

    B. The Arch Way -- git clone https://aur.archlinux.org/wattman-gtk-git.git
    cd wattman-gtk-git
    makepkg -si

  2. Adding a Custom Systemd Unit for WattmanGTK
    Create a file under /etc/systemd/system named wattmangtk.service with sudo touch /etc/systemd/system/wattmangtk.service and add the below to that file.

    Please note the use of /usr/local/bin -- none of this has been packaged up and it is not good practice to have the system use the exact same script that WattmanGTK creates by default at $HOME/Set_WattmanGTK_Settings.sh. While using $HOME works, if you're testing and tweaking, use bad values, and that causes a crash, you risk having that crash the next time you reboot.

[Unit]
Description=Apply wattmanGTK settings

[Service]
Type=oneshot
ExecStart=/usr/local/bin/Set_WattmanGTK_Settings.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
  1. Basic WattmanGTK Usage
    Run it from a terminal with wattmanGTK since its terminal output is helpful and it doesn't include a .desktop file to install to a menu. sudo isn't necessary since it saves what is changed as a script that requires root permissions. The first time you save the script it creates, $HOME/Set_WattmanGTK_Settings.sh, you'll need to make it executable with chmod +x ~/Set_WattmanGTK_Settings.sh and you can run it with sudo ~/Set_WattmanGTK_Settings.sh.

  2. Autoloading Settings on Boot
    Once you find settings you like for your GPU, copy Set_WattmanGTK_Settings.sh to /usr/local/bin with sudo cp ~/Set_WattmanGTK_Settings.sh /usr/local/bin/Set_WattmanGTK_Settings.sh and enable the settings on boot with the systemd unit from Step 3 with sudo systemctl enable wattmangtk and start the service now with sudo systmctl start wattmangtk.

Testing and Confirming Thermal Throttling is the Problem
This is pretty easy to do. Fire up WattmanGTK, start a game like Tomb Raider (2013), see if it runs decently with medium settings @ 1080p (it will), run around for a few minutes in the same area, and see if it starts acting laggy. Once it starts acting laggy and choppy, alt+tab over to WattmanGTK and see if your thermals are 84C or higher as well as the GPU keeps going "state 1, state 3, state 7, state 3, state 1, repeat". If the states keep jumping around like that, undervolting may help get the temperatures and subsequent throttling under control.

That said, if you're gaming at 1440p or higher your only real choices are to buy a better GPU or buy a FreeSync capable monitor because it is very likely that your problem is you are pushing the card to its limit. The RX 4XX/5XX line is best at up to either 1080p60hz or 1440pFS.

Undervolting will help, but not like it will help if your GPU is like my MSI Armor 4GB RX 580 with 1080p60 hitting 90C and being throttled due to its cruddy stock tune. Check your GPUs reviews and see if they mention overheating like the reviews for mine tend to do.

Undervolting AMDGPU With WattmanGTK
Undervolting is more of an art than it is a science. The best I can do is provide some basic guidelines to follow because there really isn't any one perfect solution that works for everyone. To start, I'll show my PowerPlay table before and after.

Stock:

#!/bin/bash
echo "manual" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/power_dpm_force_performance_level
echo "s 0 300 750" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 1 600 769" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 2 918 912" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 3 1167 1143" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 4 1239 1150" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 5 1282 1150" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 6 1326 1150" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 7 1366 1150" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "m 0 300 750" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "m 1 1000 800" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "m 2 2000 950" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "c" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage

Undervolt:

echo "manual" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/power_dpm_force_performance_level
echo 150000000 > /sys/class/hwmon/hwmon3/power1_cap 
echo "s 0 300 750" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 1 600 769" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 2 918 912" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 3 1167 1075" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 4 1239 1075" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 5 1282 1075" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 6 1326 1075" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "s 7 1366 1075" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "m 0 300 750" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "m 1 1000 800" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "m 2 2000 875" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage 
echo "c" > /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/pp_od_clk_voltage

Honestly, from here on I edited the script $HOME/Set_WattmanGTK_Settings.sh with Kate and treated WattmanGTK as a glorified temperature monitor. You can use the GUI for all of this but I find it easier to edit text files.

The basic process is to disable the systemd service when tweaking, edit the $HOME scipt, and then just run the script with sudo. Worst case scenario is you'll lock up the system and reboot into stock settings. Once you find good settings, copy the script over to /usr/local/bin and reenable the service.

The first thing I did was to undervolt my memory speeds. I wasn't able to lower state's 0 or 1, tweaking either instantly locked up my system, but I did manage to get state 2 75mv lower in 5mv increments.

Lower it by 5, run the script as root, play your game. Repeat that until your system either locks up or the game keeps crashing. Use the value from the previous run as your undervolt. That got me from 90C to 85C.

After that I moved on to my GPU clock speeds. If you notice, states 4 to 7 all have the same voltage and state 3 is almost the same as the rest so my first step was to simply lower 4 to 7 to 1143mv and play Tomb Raider for a few minutes. Since I didn't crash but my thermals were still in the mid 80s (Celsius) I lowered states 3 to 7 all by 5 and kept repeating that until I got to 1075mv for states 3 to 7 and just left it there because my temps were topping out in the lower 70s.

Also, I lowered the the wattage limits. Mine was 185000000 stock and I lowered it to 150000000. Anything below that introduces lack of power lag and can cause crashes. That was the last thing I tweaked.

I can push my clock voltages lower, but after many, many days of testing and crashing and rebooting ad nauseam, I didn't feel like it.

One thing, I could never safely undervolt state 0 mV, memory or clock. I don't know if that's a RX 5XX thing or just my card. Never really looked into that, just accepted it at face value since it crashed every single time they were lowered, Linux and Windows.

The general rule is simple: Lower the mV by 5, test by playing a GPU intensive game, and repeat that until your system either locks up or the game keeps crashing. Once you finally crash use the value from the last successful run as your undervolt. Some people will use the value from two runs before the crash just to be safe.

You'll notice that I didn't once tweak my fan speeds. Wasn't any point to it. I can't hear them and I could max them out and my card would still run at the same high temps.

And full disclosure for other people who have 4GB MSI Armor RX 580s and are scratching their heads to my Before/Stock state 2 memory frequency -- that's a bios mod and I used a sketchy atiflash binary and Windows bios tools with Wine...yeah, I'm surprised it worked too.

1 Like

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

Forum kindly sponsored by