Abysmal FoA Performance v1.3.0.3 (x64)

I’m not sure if this is correct place for this, it’s rather optimisation issue rather than a bug, but I got to say it.

I’ve noticed that in the new snowy Asterkan locations, the performance of the game tanks for me. I have 6700K, 16GB RAM, GTX1080, W10. 80-100% GPU usage, stutter and such.

This is somewhow remedied by setting up the “Shader” Quality in the settings to “Medium” and lower. “High” and higher settings all have the same effect in this particular scenario.
The main thing that changes visualy is that the snow is “glowy”, guess it could be some kind of unnecessary light refraction shader bouncing of the white snow or something.
Now for me, it absolutely is not worth the huge performance hit. And I also don’t want to lower the “Shader” settings to medium globally for every shader in the game, only because of this one thing, while the other shaders seem to not be so brutally taxxing.

There might be something going on, given that there was already a fix to the snow being black on lower settings.
I’d be really glad if it was resolved, either by optimisation if possible or at least, seperate option in the settings for the “Snow Shader” quality.
Come to think of it, any new flashy FoA graphic feature should have it’s own seperate setting/switch.
I see people running shaders on medium, pressumably because of this or other FoA related performance issues.

Please look into this, I’d greatly appreciate that, thanks.

These are my graphic settings:

This practically makes it really difficult for me to play and enjoy FoA which I’ve spend my money on. I’d love to finally play it.

4 Likes

I’ll just add that after getting into Freyoll Valley, I’ve found out that the “terrain shader” in question is parallax mapping. Or atleast one of the shaders affected by the “shaders” setting that taxxes my HW in FoA. While I really like parallax mapping, all I’ve said in the 1st post I still stand behind.
Still would be best if it was looked into, optimised or at least put as a seperate option.
Given that I’ve only figured it was parallax mapping now, probably means it’s not much noticeable from the zoomed out distance.

I’d much prefer though, if I wouldn’t have to spend all this time and energy troubleshooting for basically nothing. Because I bet the devs know exactly what the shaders in question are. What are the new FoA shaders affected by the setting. I really hope it’s looked into, so everyone can benefit from this.

2 Likes

Posting this here too so people can see solutions and understand where problems come from in not understanding performance limits

-First and foremost, GTX1080 is an old card (I had one), and you’re trying to run a modern game (or modern assets, rather) at 2k on a decade old 1080p card. This is a MASSIVE performance hit on basically setting 1. Not gonna work champ. Despite Nvidia advertisements, the GTX1080 is not a 4k card. It barely covered 2k for lower demand games when I had it. Lower your resolution to 1080p. It’s not that noticable unless your screen is oversized and your eyeballs are grinding on it. Turn anti-aliasing back on if it doesn’t look crisp enough to you after.

-Next: Turn shadows off. Ultra is very intensive, and they’re probably crushing your CPU when it starts trying handle all the on screen calculations for hectic scenes. I doubt it’s a “utilization” issue like you said; your CPU just can’t handle the total load you’re asking of it.
[I don’t think shadows look good in GD anyways. I’ve never missed them, I hate the light that’s placed on top of your character model and casts winding shadows everywhere as you move.]

-You might have to turn shaders down a bit. You have an older rig and it’s not cutting it anymore. If the performance isn’t to your liking, you’re just gonna have to deal and either get better hardware or lower your settings.

-Then: Turn off fog. It causes issues for some people. If your performance is still bad, turn off soft particles, turn down weather, and turn off depth of field.

Your problems look self induced, homie. I know you were frustrated, but you throw out a jab saying no one had answered your post when you wrongly posted a performance issue on your end in the bug forum (relatively politely) asking Crate to solve performance problems with their game when the problem seems entirely on you. It just makes you look bad and people less likely to help you, no matter how frustrated or polite you were being

3 Likes

7700k( 5.0 ) cpu 6700xt ( 2800 oc ) capped fps via adrenalin software 1440p 138Hz max settings no fog no weather ,Which in most cases I have no issue hitting. At times during massive battles it drops to 90 fps. My avg cpu usage is 25 to 30%. GPU 40 to 50%. Main Campaign and first two expansions solid behavior. With FOA same cpu and gpu behavior but fps drops to 60 in Kurnhold and blizzard effect areas. No cpu or gpu ramp or spike. It’s a head scratcher for sure.
Edit: After reading last post and using Kurnhold load spot next to teleport. Shadows off gives me 138 fps idle. Shadows low drops it to 70 fps. Shadows Ultra drops to 60. No change in cpu or gpu use.

1 Like

You seem to be so confident, as if you knew what the real issue and solution is here. I don’t appreciate that, actually.
I’ll copy what I said in the patchnotes thread, this is more proper place for it anyway.

First you seem to presume that I don’t know the basics. Don’t need the lecture, thanks. I know exactly what cost the individual settings have on my PC. I’ve tested all that, way ahead of this. Told you that I’ve tried everything I could in the other thread.
Grim Dawn or even the FoA assets are absolutely not “up to the modern standard”, but that’s absolutely fine. The game goes as far back as 2009 I think. And the 1.0 released in 2016. I really like Grim Dawn’s graphics, but it’s not modern (good thing imo), nor does it have any business being this demanding on GPU. And it really WAS NOT demanding on GPU until FoA, that’s the thing here.
Over the 9 years using this card I’ve played in 2k the whole time, mostly no issues. It’s absolutely magnificent piece of HW.

I’ve absolutely tried and played with many varieties of settings. Already tested all of this.
The CPU utilisation is a different issue than the FoA one. You seem to know nothing about it. In short, my CPU0 thread alone can’t handle the load, yes. Look more about this up, it’s here on the forums, numerous people have this issue as well. My CPU as a whole, the 8 threads, is under-utilised. The total usage is not over 25%. But this was not about that. This issue I always had with Grim Dawn, over the numerous years I’ve been playing.

There is new, more severe performance issues that came with 1.3/FoA. In the new areas especially. Kurnhold being the worst offender, as far as I’ve encountered, which was addressed by Zantai. There’s this ever present stuttering happening, even camera movement for example. Not just occasionally or when the one CPU core chokes, like before. Plus, as I’ve said, the high GPU usage.
All of this is covered in my bug report. I really hoped this was clear. I’d be glad to make it clearer for devs or anyone who can actually help me and others having this issue. Because yes, there are others. Others with modern systems even. I hear performace complaints in the community.
Others with even less powerful systems for whom the game runs fine.That’s the nature of the TQ engine, I think.

Judging by you saying “Turn anti-aliasing back for crisp image in 1080p”, you can’t likely tell me much or anything new, sorry.
Even though I’m not so sure whether you meant it well, I still thank you for trying to help.

2 Likes

Have you had any luck with core switcher here on the forums? I found it helped with the core saturation a bit. Didn’t rid me of all stutter but it was better. I also use Process lasso Pro and unpark all my cores. I am however on quite an old platform so I count every fame gain no matter how small a win at this point. The shadows off works for my fps haven’t tested stutter yet. testing now.

Apparently Kurnhold is a real hotspot for the bad performance. Judging by your HW usage, it’s same as me on the CPU side, no wonder as the CPUs are the same apart for the clocks. This further confirms the CPU behaviour is as I think it is. Before the FoA/1.3 the performance was also fine for me. (Apart for the CPU thing, which I think is seperate issue and can be somewhat remedied even). Ambient Occlusion and higher shadow settings have the most performance impact for my system. But as I say above, in FoA areas, lowering “Shader” settings to medium helps me in the snowy/blizzard areas. Don’t seem to do that much in Kurnhold.

Seems like some kind of engine or internal optimisation issue really. Zantai said they are working on Kurnhold optimisation specifically, so let’s hope it helps. Because it seems that other than absolute HW power brute forcing, there’s not much we can do.

1 Like

Yeah I’d have to agree. I micro stutter non stop in kurnhold area. going to test core switcher again. If no luck I’ll cross my fingers that Crate comes up with an assist.

The core switcher/affinity tweak helps a little. Not as well as for the others. It tends to just max out other core than the CPU0, but that’s still better, given that every process runs on the CPU0 by default.
What I’ve found to be great for better HW utilisation is DXVK. I’d give it a shot combined with the core switcher/affinity tweak. Vulkan is better with the CPU overhead. I use this fork. Like it the most.

In regard to that, I’d advise you to not use its frame limiter and keep using the driver one you already use. There are way deeper ends I went to, but even without any fiddling with settings, it could help.

Is the core switcher working for you with the core load distribution ?

1 Like

You have problems with your set up, you refuse to accept that you just expect more than your ancient system can give, and you really think you’ve exhausted all troubleshooting options when you think running FoA at 2k on a 10 year old 1080p card and shadows on ultra has nothing to do with your performance issues. You’re arrogant, that’s why you can’t find the solution.

I have a modern system, maxed settings other than shadows, and have had zero performance issues outside slight slowdown for a few seconds in FoA areas with hundreds of particle effects going at once. Good luck and so long bud.

2 Likes

You act as if you know what the issue is, as if you understand how this ancient quirky engine works, as if you know what my setup and problems are, know my expectations, what I think, yet I am arrogant ? Okay buddy.

The proof that I’m right is all over here. Instead of reading what I say and believing me and others, actually working towards something, you instead try to make a fool of me, deflecting genuine issues with the game against me.
I likely wont find the solution because I’m not a Crate dev, even If I was, it’s not at all granted that it can be solved.

I’m just trying to work the best I can with what I’ve got. Getting a new PC isn’t actually the solution, it’s just brute forcing it. And of course, getting a new PC currently, is quite a challenge. I’m fully aware what my HW is, how old it is. The way you describe my GPU, you yourself seem to not be connected to the reality of this matter.

What an unnecessary exchange. As was duplicating this in the patchnotes thread…

2 Likes

To me this sounds a little weird :thinking: . I’m on Linux, so I’m just using the “taskset” command to manually set cpu affinity for the process using steam launch options, and (at least when I last tested this) the cpu load seemed to balance on multiple cores, without any of them maxxing out.

I wonder if there’s something that’s forcing your system to run GD on a single core only or something?

1 Like

You know, I also tried the async DXVK builds like -gplall to see if it’ll help with the framerate chokes in Kurnhold just around the rift. It didn’t make an ounce of difference so I decided I’d stick to regular DXVK. I too use taskset, and I’ve been toying with the idea to set affinity from 2- onward to ignore core 0 and its hyperthreading. Not much of a difference to setting 0- onward so far. But for sure there’s iffy stuff going on. Last time I had a chance to talk to Zantai about it, he advised it isn’t due to a rendering pipeline choke but poor IPC. Which could well be the case, I can understand that. I just doubt that’s the entirety of the issue. For the stutters perhaps, but certainly not the frametime hikes in and around Kurnhold for instance.

2 Likes

Yes, it’s very weird. I’ve set the affinity manualy, I’ve tried the core switcher. Tried disabling any even core, disabling CPU0, do the “switch” manualy.
Never have I seen the nice distribution as people in the core switcher thread achieved. As I’ve said, it basically switches to strain any other thread/core, instead of the 1st one.
Seems like DXVK can help me here, but I’m not sure yet. I’m getting really burned out on this, tbh.

It certainly looks that way. I’d like to think my setup/system/OS is pretty clean and optimised SW-wise. Debloated OS, not using any overlays and other “gamer” apps etc. So I don’t really know what’s up with that… Would be nice if I knew what’s causing it, but I’m not so sure it’s possible, not as a user.
Maybe Linux is the answer, I’m not switching to W11 in the future. I’m on W10 with the ESU currently.

1 Like

True the differences aren’t necessarily that noticeable between the DXVK builds, especially if you have VK 1.4 support, I guess. Or you might even get better results with 3.0.x of main branch if you have VK 1.4. There’s more control and async compilation + low latency for the GPALL, that would be the main difference I think. It can also differ game to game and of course depends on your HW too. I just figured that fork based on VK 1.3 would be better fit for me.

Now, that’s really insightful, thanks for sharing. It would make sense there’s more going on. Grim Dawn was likely always coded and built on the same bases, and these are new issues, it would make sense to me, but I’m really not a SW engineer, just a computer enthusiast.
Question is, can we do anything to fix or remedy this ? My guess would be that we can not…

I’m hopeful we’ll be receiving performance optimization patches. In the meantime, if Zantai is right and the issues truly are IPC related, then spreading the load with affinity settings might backfire; I can imagine my Ryzen’s PBO not kicking in unless less threads are in use. What I’d like to try next time I play is force less threads and see how the game behaves that way. It might sound counterintuitive but at any rate, we’re improvising here. :grinning:

3 Likes

Brief update. If I give Grim Dawn 12 thread affinity, I do still boost. But, if I give it 3 threads, and I’ve specifically chosen the 2, 3, and 4 cores and not the hyper-threads, I boost more consistently and I can see at least two of the cores getting properly stressed out. It’s too early to tell if this improves performance, but I will wager it will be at least a little smoother. It doesn’t look like the game ever tried utilizing more than 4 cores anyway. Perhaps 3 is a magic number.

This has no effect on the Kurnhold chugs. Again, around the riftgate I’m consistently getting ~53 FPS and frametimes are reproducibly bad while my GPU stays at under 70% utilization. Evidently not a resource issue but a render choke.

For context, I run Arch Linux on a Ryzen 5500 which boosts to 4.4 GHz with a 75C PBO thermal limit, 16 GB of DDR4 3600 MHz RAM, an RX 6600, and a PCIe Gen3 NVMe. My Wine config is deliberately stock meaning no weird library swaps, I’m on latest Mesa, Xlibre with amdgpu, and obviously Grim Dawn is in 64-bit DX11 mode via DXVK. I use vkBasalt for a cas shader but that obviously makes no difference.

I will hopefully be giving further updates, hope this helps Largadon!

1 Like

I have an old PC as well (i5 3330 and GTX 1060) and before FoA I had no issues except zones with a lot of enemy casters. I have noticable FPS drop in some new zones (maybe half of them), Kurnhold is a total slideshow. Also fun fact - even new FoA main menu screen caused my CPU/GPU work at almost 80%, while other screens have 40% max.
So I think the problem is that new shaders are too heavy, but not all of them. For example, new snow shaders in the base game (around Asterkarn Valley) causing no problems at all while looking better.
Again, people saying “just buy a new PC” don’t understand the problem, it’s just some areas and it can be fixed with further optimization. I really enjoy the game regardless and I hope that we will get a better performance with future updates before game moves to a “maintenance mode” someday. Working with an old engine is a big challenge and I appreciate the effort developers put into making it work for such a long time instead of abandoning the game completely.

3 Likes

Okay, another update. After spending more hours on 3 threads and testing a variety of other topologies, the only setup that consistently gives me better microstutter performance is if I simply give the game all threads. The limited threads experiment was a failure, at least on my end. Core hopping is better than core strangling.

I seem to have found something that helps with the Kurnhold frametimes. dxvk.tilerMode = True consistently gives me better frametimes around problematic areas.

2 Likes

Yes, it seems Kurnhold and the whole FoA in that matter, have different issue than the CPU utilisation - stutter thing. It’s weird, but from short testing, seems like the FoA zones actually use the CPU better. Doesn’t make sense though, could be DXVK. Just something I’ve noticed my last session.

Thanks for sharing your findings, I have differrent platform and OS than you, so I’m not sure it also applies to me, but if it can help anyone, then I’d say it’s worth it. Especially when Linux would have different scheduling and way of handling things, though the final finding could still apply. And I can cetaily can, and will try the dxvk.tilerMode setting.

1 Like