Poor gaming performance in linux with RX480 and don't understand why

I’ve recently been really getting into Linux as I’ve just grown tired of Windows and all the privacy concerns and how resource heavy it can be at times. I’ve ended up installing Arch with KDE as my desktop environment and everything has been going well for me except for gaming performance. I have used Lutris, Proton, Game Mode, and even the Zen Kernel for Arch and performance still is not great. I have an RX480 Strix GPU and a Ryzen 7 1700 CPU and in the games I’ve tried (Kingdom Come: Deliverance, Skyrim, Valheim, The Witcher 3: Wild Hunt) all have weird issues when I try to play them. All of them have terrible stuttering issues at seemingly random times, Valheim specifically has terrible input lag (I am using a wired keyboard and mouse) and I don’t know what to do. I see everyone talking about how Linux gaming is so good now, and how the AMD GPU Driver is baked into the kernel but I’m not having a good experience and was wondering if anyone could either help me understand why I’m having a bad experience, or advice as to how I could remedy this. Any replies are greatly appreciated.

Welcome to the community and welcome to Gaming on GNU/Linux.

The first issue that you have is that these games are not native to the *nix world so you are playing through various degrees of emulation.

Second, you are probably still using DX → OpenGL layers to play these games instead of using something that does DX → Vulkan. The components that you listed alone will not make MS Windows games run better in Arch. You still need to address the low level stuff

I use Arch so I may be able to help, but take a look at this wiki article to get started. I use my Arch install for gaming and I do it either through raw Wine or Proton via Steam.

Installing Steam will install proton and then you can call proton directly if need be or add shortcuts in steam to launch you MS Windows games. Proton has DVKX built in.

If you install Wine, then you will need to ensure that you do the DXVK setup. Otherwise, your games will use OGL as the graphics path which is probably what you are experiencing now.

If you want to invest into Linux gaming, the best way to do so is either through Steam or GoG (no native launcher yet). I recommend springing for games that have native Linux support or are at least ported to Linux by Ferral. Otherwise, the non native games will only run as well as the effort that you put into a game to run on its not intended target.

If he is using Lutris, doesn’t it default to using dxvk by default?

Oh and sorry to contradict you here but my Ferral games run better under dxvk than their native port. DX:MD almost uses double the RAM on the linux port.

Stuttering may be caused by compiling shaders, which means vulkan should be running. I had stutters on my previous PC wich had HD and an older CPU. My new build almost never stutters with compiling shaders, but now I use SSD for games.

@Indoor_cat I know its troublesome but can you give us more detailed information about your PC and which steps you took to get the games installed and running?

1 Like

I had this when using OGL as well. I am running ancient hardware though (FX-6000 Vishera and Radeon 7790HD running AMDGPU driver GCN 1.1).

OP, one of the features of Steam, is that if there are Vulkan render paths on games that use Proton (purchased through steam), it will download pre-cached shaders for you so your system does not have to do the caching. It is very common with Team Red, that the first time a game is launched or new sections are rendered, for the system to studder and slow down until the cache has been built. If I am playing a new game on my system, I will let it run up for about 10 minutes and that usually takes care of most studdering issues.

You are probably right, I have not used Lutris since ~2017.

No worries. I have not tried to use my Ferral games with DXVK, I just run them natively. They are not the fastest but they are playable on my old Hardware. I am going to give that a try today.

1 Like

Thank you both for the warm welcome and great advice! @Mastic_Warrior I do have Wine installed, and can list the packages and versions if needed. I also do have shader pre-caching enabled in steam. Pretty much my entire library is on Steam. I probably haven’t let the games even run for that long (I think I probably only tried each games for up to 5 minutes) so I will have to try letting them run for longer and see if the stuttering stops.

@Rugaliz I’m pretty sure when I was looking into Lutris I learned that it does default to using DXVK which is part of why I even tried it. Also, it’s no trouble for me to give more detailed information about my system and the steps I took.

My pc specs are: AMD Ryzen 7 1700 @ 3.7Ghz, 2x16GB DDR4 @ 3000Mhz, Asus Strix B350-F Gaming motherboard, Asus Strix RX480 8GB, my boot drive is a Samsung 860 Pro 512GB SSD (This is the drive I originally tested the games on), I have 2x2TB Seagate Barracuda 7200RPM HDD’s (I intend to use these drives to store the games once I know they’re working), and I have 3 Corsair ML120 RGB Pro fans that run at a pretty much static 1000rpm using Liquidctl (need that as I’m using a Corsair Commander Pro).

As for the steps I took, once I installed Arch I did a system update, installed wine and steam and enabled Proton (version 5.13-6). Installed and tried the games mentioned above. When that didn’t work I installed the Zen kernel and tried the games again using that and didn’t have much improvement however, Valheim ran way better but still had the input lag issue. After that, I downloaded Lutris and tried it both with and without the Zen kernel. I downloaded game mode, and ACO shader compiling and enabled them within Lutris and tried again. Still didn’t solve the issue.

Again I am fairly new to the Linux community and gaming on Linux but I spent the better part of this month trying to solve it on my own, but feel as if I’m getting no where which has been quite frustrating. Especially when I see all these videos online of how great Linux gaming is and how easy it is to setup and have running.

If you need more specific details about anything I can provide further detail. Thank you both again for your help.

1 Like

I have a RX470/1700X setup and I have tried Skyrim with some mods. I recall it being around 40ish framerate and that was at 1440p. Perhaps the framerate is so low which is reflected as “input lag”?

Can you confirm that the RX480 is using the amdgpu driver and not radeon? Sample out from lspci -v:

2e:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev cf) (prog-if 00 [VGA controller])
	Subsystem: XFX Pine Group Inc. Radeon RX 470
	Flags: bus master, fast devsel, latency 0, IRQ 63
	Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Memory at f0000000 (64-bit, prefetchable) [size=2M]
	I/O ports at f000 [size=256]
	Memory at fe900000 (32-bit, non-prefetchable) [size=256K]
	Expansion ROM at 000c0000 [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

My apologies @Windforce I forgot to mention this in my original post. In Skyrim specifically the game runs okay for the most part compared to on windows, but I have no audio in that game. Also, yes I am using the amdgpu driver. Here is the result from that command:

VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev c7) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Radeon RX 480
Flags: bus master, fast devsel, latency 0, IRQ 94, IOMMU group 15
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f0000000 (64-bit, prefetchable) [size=2M]
I/O ports at d000 [size=256]
Memory at fce00000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at fce40000 [disabled] [size=128K]
Kernel driver in use: amdgpu
Kernel modules: amdgpu

Just FYI, the Valheim native Linux client is currently horrible / not optimized ( it likely only exists since Unity allows for exporting a Linux client, I’m not sure they expected anyone to actually use it), I have a 5900x / 6800xt and it runs like garbage as well. It’s one of the only games I have to play in my Win10 VM with GPU pass through.

Thank you for the info! Glad to know it’s not a problem with something I’ve setup incorrectly or because of my hardware. That is unfortunate however as I’ve really been enjoying that game and was hoping I wouldn’t have to go back to windows ideally. Also, congrats on being able to pickup a 6800xt!

Interesting, I have never encountered that no audio issue before. Are all games stuttering, regardless of which launcher you use? Maybe test if the stuttering happens on a benchmark program like unigine forest/valley to rule out whether it is game specific issues or something else?

I have a rather similar machine as OP (1700 @ 3.7GHz, 32GB 2400MHz RAM, RX480 Nitro+, 1TB nvme). Using the open source drivers with Mesa 21.0.3. Most of my newish games are on Steam using the latest stable Proton. I actually get better performance with Proton than I do with Feral ports. DX:MD is literally twice as fast with Proton, Medieval 2 Total War is a stuttering mess unless I play it with Proton. I have some games from GOG, most older titles that I play with Wine with no issues (original Thief, ToEE, Fallout, Deus Ex, Crysis, FEAR). I also have Kingdom Come that I attempted to run with Wine and DXVK. That game just runs horrible regardless of settings (in Windows I can almost max out that game).

It is very strange that some of those games give you issues, lack of sound in skyrim is particularly odd. I wave witcher 3 and it runs fine…ish, it crashes every 2 hours or so but same happened in Windows for me.

So you chose arch as your first steeping stone in Linux gaming? that is a bit of a bold move. There are a lot of arch users here but they are experienced in solving problems.
I would suggest trying something like fedora that would give you a stable environment with all the drivers configured to work properly and would reduce the guessing work for us.

I am running Fedora and have been playing games like Dota 2, Resident Evil 3, Yakuza kiwami 1 & 2, all with good performance and minimal to no stutter issues.

With regards to valheim, try forcing it to run with proton instead of the native linux port.
Some games do not run well so far, but we get closer with each proton release and have come very far from where we where 2 years ago when proton was introduced.

@Windforce I did look online and saw there were quite a few posts about people having no audio in Skyrim (I am playing the special edition so maybe it’s only in that version). The four games I tested all were stuttering. I ran Witcher 3 yesterday again and let it run for about 10 minutes like masic_warrior recommended and the stuttering appeared a decent amount less, but the game looked terrible compared to the same settings on Windows which I though was strange. That is a good point to run some benchmarks I hadn’t thought of doing that. I will have to try that tonight.

@Rugaliz Witcher 3 runs pretty great in Windows and I can get roughly 70-100fps at 1080p and it never really has any issues unless it doesn’t like a mod that I’ve installed. As for my dive into Arch, I have used linux a bit over the years, my initial introduction to it was for some data recovery from a windows 8.1 drive using Ubuntu16.04LTS when that was the current version. I’ve also used Pop_OS!, and tried using that as my main desktop for a few weeks, but as someone who likes to tinker with everything I ran into a few issues with Pop and the allure of Arch was calling for me to try it(I had a VM of it and I think I broke in the install about four or five times before getting it right). While I am admittedly very new to a lot of this I am trying to learn as much as I can. I will definitely have to give fedora a shot as I’ve read good things about it in general.

Thank you all again for the help as I’m aware this issue isn’t that cut and dry as some.

1 Like

I really wish I could help but now I am puzzled by your results. Unless dxvk was lacking features (which it isnt anymore) Games should not look any different while using the same configs. Can you try showing us a screenshoot of something that looks odd to you?

I had issues with my 470 stuttering on games and benchmark. A quick thermal paste change resolved the issue but this was an Ebay purchase which was most likely a mining card. As your card worked well in Windows this most likely is not a problem.

One other thing I would suggest hardware wise is to have a look at the temps. Don’t hold me to this but If I recall correctly the RX 470 fans were only spinning at a constant low speed and not controlled properly with the driver. Maybe the same for the 480? I had to use Radeon control to set a fan curve.

Yes I took some in both Arch (With the Zen kernel) and in Windows 10. All photos are at 1080p with identical settings (med-high across the board, and all visual mods are disabled, but I can give specifics if wanted. The only difference is in windows the texture quality is set to low, where in Arch it’s set to high) The first two pictures were taken in Arch, and the last 3 were taken in Windows10. You can pretty quickly and easily see how the ones taken in Arch almost look blurry. Especially any type of foliage really looks smeary unlike in Windows where the whole picture looks very crisp and clear. Also, considering the Arch texture quality is set higher I was surprised at how much worse it still looks.

I purchased the card new in 2016, however I probably am well due for a paste change. In windows Under stock settings it usually hovers around 75C-80C. I usually run it undervolted with a custom fan curve so it usually runs around 70c-73C. I started a game and let it run for about 15 minutes and it went up to 75C pretty quick and then slowly crept up to 83C so perhaps this is factor contributing to my issue. What Radeon control do you have? I have been unable to find anything that will run, at least in Arch.

Is sharpening at the same settings between both OSs?
Sharpening and Anti aliasing settings influence the blurriness of the final image.

My bad, I meant “Radeon Profile”, using it on Ubuntu. Those temps seem normal, or at least it seems to be the same for the 470.