I’ve installed it in the Steam Linux client and via Lutris but it’s the same. I’ve tried so many different settings - Vsync on/off, framerate cap on/off, enable/disable Esync & Fsync, using ACO/LLVM, various ingame settings… I just cannot get rid of this stuttering.
It’s ruining what’s otherwise a pretty decent experience. Does anyone know any fixes for this?
Good suggestion but no, I’m sure it’s not that. I did test with LLVM and as usual, it does that for a bit when there’s new stuff on screen. But what I normally use is the AMD ACO compiler which barely does it all. Either way, the stuttering caused by shader caching is only temporary. I’d been playing the game for hours and sticking in the same small area of the level. I then left the game running for 15 minutes while I was stood still. I then did a slow camera movement test to see if the stuttering was still there, which it was.
Ok. So I’ve played the game more and still mostly been in the same area. There really shouldn’t be any shader caching causing stuttering issues at this point based on my experience with every other game I’ve played. I mean, not until something completely new comes on that screen that is. But the ACO compiler is so much faster/less noticeable than LLVM that it probably wouldn’t matter anyway.
As I said before, I’m sure something else is wrong here and I did notice one thing today - If I walk through the world without altering the camera angle, it looks smooth. It’s only when I turn the camera that the stuttering issue appears. I need to test more, but as far as I can tell, this is how it’s happening. What I don’t get is why it would only stutter when turning the camera and not when walking. The framerate stays at 60fps either way. I even did some tests with a really low resolution and graphics settings just to be absolutely sure the framerate was solid, but the issue still exists.
It’s a really weird issue. It doesn’t look quite the same as normal framerate drops. It looks like there is a slight pause and then jump to where things should be, but there’s this janky back and forward movement that happens in the middle of it. It’s similar, but different.
Yeh it’s really weird. Normally stuttering is just bad framerate or shader compilation. I don’t know what the hell this is…
I did see your report on ProtonDB. I keep an eye on them incase anyone has a solution there.
Hopefully I’ll get it figured out eventually. I have seen Windows users complain of stuttering too but I’m not sure if that’s still current. The game may just have an issue with some setups. I don’t know really.
Yep, games are always a challenge. I sometimes find it amazing enough that we can get Windows only games running under Linux. And without emulation. That’s quite something.
But it also means that every game (or game engine) has special needs so to speak.
The only two things which come to mind now are gamemode and GPU optimization. Thus undervolting/tweaking the GPU settings. Those are the two things I did and weren’t mentioned yet.
Yeh it’s amazing how well it all works. I sometimes think about how surreal it is that it’s like this now. I remember trying out Linux years ago and I could barely get anything working under WINE. It’s never been better to be a Linux user
I do have gamemode installed and enabled. I do for every game.
As for my GPU, I always run it at stock settings and it seems to be fine this way. I’m not up for messing with clocks and voltages. I don’t do stuff like that these days unless I’ve got a serious problem. Everything seems normal and fine outside of this game so it doesn’t give me much reason to. I did wonder if it was a driver issue though. My Mesa drivers were updated today actually so it may be worth giving them a trial run to see if there’s any changes.
Which version of WINE do you use? Is it the Lutris build? I’m just using Proton 5.0-7 directly in Steam without use of any Lutris stuff so I’m wondering if it’s that which causes the issue.
I’ve tried using Lutris WINE builds now but it still happens.
I’ve also been using the DXVK HUD to monitor FPS. It seems to poll more often than the Steam overlay as it does show occasional dips in the FPS. I’ll see it drop from 60 down to 52+ very briefly. Though, these dips are not low enough to cause the stuttering it has. When it stutters, it’s like it locks up completely just for a matter of miliseconds, but it really is a full stop, not just a dip in the FPS. Lowering game settings doesn’t help. I’ve lowered things loads too. It’s unusual.
I can’t figure this one out. But, I’d love to hear which WINE & DXVK versions people are using and with which other settings enabled/disabled and whether or not the game stutters for you. Maybe we can figure out what it is by analysing this data.
I see. Is there a reason you use that specific Proton version or is it just that it works so you see no point in changing it? I’ll have to try that version next time I play. Cheers.
I just try different versions. Stock setting, 5.0.7, they all run about the same. I also tried the latest Glorious Eggroll version (Proton-5.6-GE-2) but that one didn’t even start…
I tried changing the Proton version but it broke my Steam install. I ended up using my Lutris install of the game and managed to reduce the stuttering a little bit, I think… It’s not totally gone though. I removed the following commands which seemed to help:
They’re probably more useful when using LLVM. I’m using ACO. The Steam/DXVK installer hasn’t been updated in a few months so I’m guessing whoever made it was using LLVM at the time. Maybe they still are. Anyway, this would suggest that it is in fact at least partly related to shader caching in some way, assuming I have improved things by removing those commands - I’ll have to test properly soon.
I’m running it directly from Steam and I select the specific Proton version from the game’s properties.
The Lutris installer ( its the Steam (Windows) Steam w/ DXVK version installer right ) uses Wine and therefore the Windows version of steam. This installer uses DXVK. The Steam Proton version uses the Linux version of steam and basically informs Steam to run the game as if you clicked the Play button in Steam itself.
I know you probably already know this but what I’m getting at is that most probably different shader systems are used here. Steam for instance has a feature of shader pre-caching. It downloads these based on your system specs. This is done for performance reasons. See this link:
The ACO compiler is known to improve performance. This is still on the fly compilation. These variables enable DXVK disk caching. So your drive may be a factor too here. Basically what it does is after compilation, the results are stored to disk. I can imagine that this is always slower then not storing those to disk.
If my theory is correct then I expect the Linux Steam / Proton in combination with shader pre-caching version to be the fastest.
I do know that stuff apart from exactly what those commands did that I removed. So they were for DXVK then. The weird thing is, the Linux Steam version was performing better initially, but once I removed those lines from my Lutris install, it then performed better. I’m also using the Lutris WINE runner instead of Proton so there may be some differences there.
So with those commands now removed, won’t the shaders be cached at all?
The first one is DXVK, the two other environment variables are for the OpenGL drivers (Mesa/NVidia).
The basic purpose is that compiled shaders are stored in cache so that the don’t have to be compiled again. That should increase performance. Its also the logic behind the shaders which are often downloaded by Steam.
Thanks for the explanation. I do get the idea of caching them. I just didn’t get if caching was even happening once I’d removed those commands. I’m guessing not. It’s just weird how it seemed to stutter less once I did so. I’m going to give the game another try now with the commands removed, then I’m going to add them back in and play for a while to see the differences. I’ll report back. Cheers.
Edit: Well, it seems like there’s no noticeable difference so far, shader caching commands or not. The framerate dips/stutters seem to be at regular intervals according to the ingame analysis (You know how it has that FPS graph?).
I’m all out of ideas here. The game is playable at least. It’s just a bit annoying to have these stutters constantly. Ah well.
Edit 2: After reading through those links, I just realised those two GL commands are for Nvidia GPUs only. I don’t use Nvidia so they don’t affect me.
The other command is for the DXVK cache. I checked the specified location, the game folder in Steam, and I see some files there. They’re only a matter of bytes or KB though so I’m not sure they’re even working properly. I would’ve thought they should be a matter of MB. But then there’s the Mesa cache which seems to have stuff in there, although the whole folder is less than 3MB. But I have a feeling I cleaned those files out lastnight. I’ll check if it changes when I play the game next.
On ProtonDB, someone said that capping the framerate at 85fps solved the stuttering for them. I’d already tried this previously, but again I tried setting the FPS cap at every single setting available, finishing up with it back at 60FPS. It basically does the same thing no matter what it’s set to only with the maximum FPS it reaches being different of course.
Here’s a screenshot of the final part of my test where I was back at a 60FPS cap. I noticed that throughout this whole test there were big spikes in CPU & GPU usage at the same moment the negative spike in FPS happens. Perhaps this is a clue to the problem?
Anyway, whether I move through the world, stand still, move or don’t move the camera, the result is the same. The spikes seem to happen at pretty regular intervals which is another clue. This just isn’t typical behaviour of a game struggling on your system because the settings are too high (And as I said previously, I’ve turned them down as low as possible and it still stutters). There’s something else going on here.
As for the settings used in the screenshot - I have the same results when not using any of the adaptive settings & with/without Vsync or FPS caps on, so it’s not that. Trust me, I’ve tried many variations of settings…
I’m kinda lost with this so I’ll keep checking ProtonDB but if anyone has any ideas then I’d love to hear them.