Bad performance with an AMD gpu

I recently upgraded from an nvidia geforce gtx 1050ti to an AMD Radeon RX 580. I chose AMD because they supposedly have better drivers than nvidia in linux but I have been experiencing very bad performance and stuttering in games. For example in minecraft with shaders it can drop to below 10 fps and with the nvidia card I used to have above 60. Or in F1 2015 I have below 30 fps with stuttering and I used to have above 60.

This is my output of lspci | grep ' VGA ' | cut -d" " -f 1 | xargs -i lspci -v -s {}

`Subsystem: Sapphire Technology Limited Radeon RX 570 Pulse 4GB`

`Flags: bus master, fast devsel, latency 0, IRQ 34`

`Memory at e0000000 (64-bit, prefetchable) [size=256M]`

`Memory at f0000000 (64-bit, prefetchable) [size=2M]`

`I/O ports at e000 [size=256]`

`Memory at f7e00000 (32-bit, non-prefetchable) [size=256K]`

`Expansion ROM at 000c0000 [disabled] [size=128K]`

`Capabilities: <access denied>`

`Kernel driver in use: amdgpu`

`Kernel modules: amdgpu`
1 Like

Hello @anon12830899 :wink:

Still the same when you are running games in gamemode?

pamac install gamemode
systemctl enable --now --user gamemoded
gamemoderun %command%

(maybe the amd gpu is running in powersave mode?)

I installed gamemode but when I try to enable gamemoded it says it can’t find such file. Anyway, I think the gpu and the cpu are running on full speed.
The output of the command in my post says it’s an RX 570 4GB but it’s an RX 580 8GB, could that be a problem?

Then you had a typo… i believe you forgot the “d” after gamemode > gamemoded

Thinking is not knowing…

Maybe, but in general, if the chip work the same way, then the driver of an older driver will be reused. I don’t think that this is a problem.

Another issue what i read of AMD GPUs is the automatic fan control. You will get bad performance with that. Because of the heat it will throttling. This could help:

pamac build amdgpu-fancontrol-git

Don’t forget to enable the service after installation:

sudo systemctl enable --now amdgpu-fancontrol.service

Sorry, by that I meant that /proc/cpuinfo shows full speed and the governor in /etc/default/cpupower is set to performance and cpupower is enabled. Radeontop shows full speed as well as corectrl and it’s not thermal throttling. I have set a fixed fan curve in corectrl and watched the temperature.

I typed it correctly. When I hit enter, nothing happens as if it was enabled but when I do systemctl status gamemoded it says this: Unit gamemoded.service could not be found.

systemctl status --user gamemoded.service

You forgot --user

Oh, right. That works. Anyway, it doesn’t help with the performance.

@anon12830899 ok…

Just for the record. It would be nice to add:

inxi -Gazy
Graphics:
  Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 
  vendor: Sapphire Limited driver: amdgpu v: kernel bus ID: 02:00.0 
  chip ID: 1002:67df 
  Display: x11 server: X.Org 1.20.9 compositor: picom v: git-248bf 
  driver: amdgpu,ati unloaded: modesetting alternate: fbdev,vesa 
  display ID: :0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: HDMI-A-1 res: 1920x1080 hz: 60 dpi: 93 
  size: 527x296mm (20.7x11.7") diag: 604mm (23.8") 
  OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.39.0 
  5.9.11-3-MANJARO LLVM 11.0.0) 
  v: 4.6 Mesa 20.2.3 direct render: Yes

At first glance that output looks normal to me.

However, on my PC with a RX 480 8GB and Manjaro KDE, performance in Linux is on average comparable with Windows, not much lower at least. Of course it depends somewhat on various factors and the individual game.
Some will run very well, even better(although that’s rare, admittedly), others might run much worse.
Windows being the main gaming platform on pc is generally optimized for and thus has a much more even performance.

Edit: I don’t use game mode, btw.

I only saw this card is praised by the community and 10 fps is NOT okay.

Another idea, would be a bottleneck… The CPU can not keep up with the GPU…

Did you try running it with mangohud or something similar? Just curious, but it would be nice to have some screenshots here, if possible, with real stats.

Sometimes disabling the compositor could make a huge difference:

I was also thinking about replacing my GTX 1050Ti with a similar AMD GPU… so if you can post some more infos, i would really appropriate it.

My system (yes, bottleneck is the AMD CPU here)
$ sudo inxi -CmGazy
Memory:
  RAM: total: 7.80 GiB used: 3.11 GiB (39.9%) 
  Array-1: capacity: 8 GiB slots: 2 EC: Multi-bit ECC max module size: 4 GiB 
  note: est. 
  Device-1: DIMM_A1 size: 4 GiB speed: 1333 MT/s type: DDR3 
  detail: synchronous unbuffered (unregistered) bus width: 64 bits 
  total: 64 bits manufacturer: A1_ part-no: Array1_ serial: <filter> 
  Device-2: DIMM_B1 size: 4 GiB speed: 1333 MT/s type: DDR3 
  detail: synchronous unbuffered (unregistered) bus width: 64 bits 
  total: 64 bits manufacturer: A1_ part-no: Array1_ serial: <filter> 
CPU:
  Info: Quad Core model: AMD A8-5600K APU with Radeon HD Graphics socket: FM2 
  bits: 64 type: MCP arch: Piledriver family: 15 (21) model-id: 10 (16) 
  stepping: 1 microcode: 6001119 L1 cache: 192 KiB L2 cache: 2048 KiB 
  flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm 
  bogomips: 28958 
  Speed: 1419 MHz min/max: 1400/3600 MHz base/boost: 3600/3600 boost: enabled 
  volts: 1.4 V ext-clock: 100 MHz Core speeds (MHz): 1: 2864 2: 2826 3: 1407 
  4: 1407 
  Vulnerabilities: Type: itlb_multihit status: Not affected 
  Type: l1tf status: Not affected 
  Type: mds status: Not affected 
  Type: meltdown status: Not affected 
  Type: spec_store_bypass status: Vulnerable 
  Type: spectre_v1 status: Vulnerable: __user pointer sanitization and 
  usercopy barriers only; no swapgs barriers 
  Type: spectre_v2 status: Vulnerable, STIBP: disabled 
  Type: srbds status: Not affected 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: NVIDIA GP107 [GeForce GTX 1050 Ti] vendor: ZOTAC driver: nvidia 
  v: 455.45.01 alternate: nouveau,nvidia_drm bus ID: 01:00.0 
  chip ID: 10de:1c82 
  Display: server: X.Org 1.20.9 driver: nvidia display ID: :0.0 screens: 1 
  Screen-1: 0 s-res: 3200x1200 s-dpi: 96 s-size: 847x318mm (33.3x12.5") 
  s-diag: 905mm (35.6") 
  Monitor-1: DVI-D-0 res: 1280x1024 hz: 60 dpi: 86 
  size: 376x301mm (14.8x11.9") diag: 482mm (19") 
  Monitor-2: HDMI-0 res: 1920x1200 hz: 60 dpi: 94 size: 518x324mm (20.4x12.8") 
  diag: 611mm (24.1") 
  OpenGL: renderer: GeForce GTX 1050 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 455.45.01 
  direct render: Yes

The cpu isn’t the bottleneck, as in windows it runs flawlessly.

Turning off the compositor doesn’t help.

I’ll post mangohud screenshots tomorrow.

Sorry, I didn’t have much time.

F1 2015
https://paste.pics/d94a60a21b8ba1212abb24383810069d
https://paste.pics/53bae63d157818540da4ee508bd21f32
Ignore the broken top bar, that’s an issue only in awesome wm. When there are no ohter cars on screen I have about 60 fps but it’s choppy.

Minecraft
https://paste.pics/7e8cedbb94ae5ec882f8da487c9bbd3c
When I don’t move the camera the fps rises to about 80 or more but when I look around it drops to this.

CS:GO
https://paste.pics/43a5a34a1860aeb79ddbb27d5f8794bf
Low fps and clicking between menus is choppy. (and again, awesome wm apparently has some issue with fullscreen.)

I just tried the card with a different motherboard. The performance was still not good. but much better. In minecraft I could get around a playable 30 fps, sometimes even 40. CS:GO didn’t stutter when switching menus. F1 2015 was above 60 fps most of the time and didn’t drop below 50.

Both motherboards’ PCIe slots are gen 2 with this cpu. Could it be that this gpu is bottlenecked by the speed of gen2 PCIe? But then why doesn’t it affect windows?

@anon12830899 As i know CS:GO, minecraft and F1 2015 are running with OpenGL, right? And on Windows it is running with DirectX? So here i see the real difference. Maybe there is the bottleneck?

Maybe the games are not well optimized for AMD GPUs with OpenGL? (just a thought)

Most games are also just optimized for nvidia, that is a fact.

I would test a vulkan game like dota for example.

Maybe you need also enable SI and CIK support, which is also needed to work with ACO Shader compiler?

https://wiki.archlinux.org/index.php/AMDGPU#Enable_Southern_Islands_(SI)and_Sea_Islands(CIK)_support

1 Like

Some bottlenecking is likely, but not just with the PCIe slots, but also likely with ram and processor speed.
Could you please post the output of inxi -CGMmazy, so we can get a better understanding of your system?
I might have overlooked it, if so don’t be mad.

inxi -CGMmazy

Machine:
  Type: Desktop Mobo: ASUSTeK model: P8Z77-V LX2 v: Rev X.0x serial: <filter> 
  UEFI: American Megatrends v: 2501 date: 09/02/2014 
Memory:
  RAM: total: 7.72 GiB used: 430.6 MiB (5.4%) 
  RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Info: Quad Core model: Intel Core i5-2500K bits: 64 type: MCP 
  arch: Sandy Bridge family: 6 model-id: 2A (42) stepping: 7 microcode: 2F 
  L2 cache: 6144 KiB 
  flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 bogomips: 26409 
  Speed: 2376 MHz min/max: 1600/6300 MHz Core speeds (MHz): 1: 4000 2: 4000 
  3: 4000 4: 2283 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX unsupported 
  Type: l1tf mitigation: PTE Inversion 
  Type: mds mitigation: Clear CPU buffers; SMT disabled 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: disabled, RSB filling 
  Type: srbds status: Not affected 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 
  vendor: Sapphire Limited driver: amdgpu v: kernel bus ID: 02:00.0 
  chip ID: 1002:67df 
  Display: x11 server: X.Org 1.20.10 compositor: picom v: git-248bf 
  driver: amdgpu,ati unloaded: modesetting alternate: fbdev,vesa 
  display ID: :0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: HDMI-A-0 res: 1920x1080 hz: 60 dpi: 93 
  size: 527x296mm (20.7x11.7") diag: 604mm (23.8") 
  OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.39.0 
  5.9.11-3-MANJARO LLVM 11.0.0) 
  v: 4.6 Mesa 20.2.3 direct render: Yes

Basically everyone on the internet says that AMD has far better drivers than nvidia on linux and also that on linux openGL works better with AMD than with nvidia. That’s the main reason I switched to AMD. I’m really frustrated with this. So do they have better drivers or not?

have you some sources… i don’t see that everyone says it is the best gpu. I searched quick and found this: AMD Radeon RX 580 Linux OpenGL/Vulkan Benchmarks - Phoronix

Basically saying: Yes, AMD have better drivers for Linux.
Does it mean that the gpu is as faster as nvidia ones? No. It depends on many factors.

So just saying: Better drivers does not only mean “better performance”.
I would say: “superior compatibility and a choice of reliable drivers”

Btw… where did you get the idea, that better drivers means better performance for games?

I am sorry that this is a bit disappointing for you.

Just interesting for me and maybe some folks out there, would be some benchmarks with the gtx1050ti and the rx580 on the same system. To see if there is a real difference. That would be really interesting now :slight_smile: