A(nother) way to reduce CPU clogging / smooth the experience

Like some of you, I too found Grim Dawn weighing heavily on just one CPU core while the others are twiddling their thumbs most of the time. Then I remembered that some games in the past have had issues with Hyperthreading.

To cut to the chase, apparently so does Grim Dawn. Using the Task Manager to set CPU affinity to every other core starting with core 0 checked and core 1 unchecked lessened the clogging on core 0. Instead of at or near 100% core load in Devil’s Crossing right after loading the game, I’m now at a comparatively very comfortable 60% to 80%, and that’s with all game settings maxed out, including 8xAA and 16xAF. The overall effect on the game when playing is that I’m now at 60FPS more often than before, though still not always.

If you want to apply this method regularly, I’ve written a tool that applies the changes to CPU core affinity automatically when it detects Grim Dawn. Both executable and source code are on GitHub:

Since I’m not yet allowed to post links, you have to copy and paste the address and remove the space.

Another thing I noticed was the game stuttering while loading assets when entering a new game area. Opening options.txt (located in Documents\my games\Grim Dawn\Settings) and setting maxResourceThreads = 2 (default was 1) lessened the effect a bit.

Let me know how this all works out for you.

System info for comparison:
2600K Sandy Bridge CPU overclocked to 4.5GHz
Nvidia GTX 780 CPU OC’d to 1150MHz
Samsung 850Pro SSD
32GB RAM
Win10 Pro

Attachment: CPU Affinity.jpg

7 Likes

I can vouch for options.txt trick (this file is exacly the same in Titan Quest btw). It worked for me on AMD FX-4100 (4x4000Mhz). Personally i use “4” setting because i have four threads.
It doesnt change CPUs usage when you look in resource monitor but for me game is much more fluid and i manage to have smooth 30FPS (with MAX settings only AA is OFF… 560Ti rule this game on Very High in 900p - its CPU where im bottlenecked and this ancient engine is not very good when it comes to usage of multicores - add to this that one core performance of AMD CPUs suxx and you have total bottleneck.) in most situations (sorry 60FPS master race but i only have AMD and GTX 560Ti :wink: ). Maybe its placebo effect because i found opinions that this settings just do nothing and its ignored by game engine (or at last it was ignored in Titan Quest) but for me its smoother. :slight_smile:

Slowdowns when there is big number of mobs on screen is my biggest nemesis in Grim Dawn so i will try your software later. I dont have necessary knowledge to check sourcecode for nasty things but i assume that if its there to check there is nothing nasty to hide. :slight_smile:

PS. After some testing i see that Core 0 usage is now between 85%-90% down from 100% full time and i see (maybe its again placebo - too soon to tell) a little more fluid gameplay for example in fields zones around Homestead - this is place where the zones start to getting much bigger and more demanding than previous ones. I think i see less stuttering that i had there before (i had little and it was playable perfectly but it was annoying).
Will test more later and i can post results if maybe someone with medicire hardware is interested.

You don’t necessarily have to use my software. You can set CPU affinity manually via the Task Manager as well.

  • open Task Manager
  • go to the Details tab
  • right click Grim Dawn.exe
  • select Processor affinity
  • disable every other core, starting with core 1
  • click OK
  • return to game

PS: As a quick test you can try to set lighting to low in the in-game options. I found this to give me a huge performance boost. Downside is it kills the mood a bit when underway in caves and dark places, as it also affects shadows in such areas.

I trust you soft dont worry. I used it and my Steam account is still there so its all ok. :wink:

At this point i managed to have very fluid game (the ongoing performance fixes from Crate helps tremendously - i got +10 fps with one update, dont remember which one now. :slight_smile: with 30 fps lock. I only have slowdown when really big packs of mobs appears on screen especially with rare/named mob attached with auras etc…

I hope now with this one fix i will negate even this because i dont want to sacrifice visual fidelity because it kills too much of atmosphere in this game. Going with shadows from Very High (full dynamic shadows plus character light radius casts dynamic shadows too and its looks AWESOME) to High kills too much mood for me. :slight_smile:
Same situation is in Path Of Exile - turn off shadows and all game charm is gone… :slight_smile:

I still dont have time to test this affinity stuff extensively but like i said - it appears to be working at first glance. Also i goggled about this a bit and it appears that its fix for other games too - i found the same affinity stuff on RIFT forums for example and RIFT has also ancient engine (licensed Gamebryo which remembers Morrowind times) and game handles multicore CPUs very poor.

So… thx for this fixes and when i manage to play more i will post my results. :slight_smile:

PS. It would be great if Crate somehow manages to patch real multithreading/multicore support… but i think it will be too big task at this point.

so with 4 cores just to verify i should have
cores 0 and 2 checked
cores 1 and 3 Unchecked ???

also will i have to do this each time i start the game?

But you should be able to get stable 60 fps just fine :confused: What Windows are you on? Windows 8.1 has a bit better CPU usage, so that should increase you minimum fps by like 10 if you don’t have it installed already.

You also need to know that some graphical settings rely more on the GPU, some rely more on the CPU, and some of them rely on both. So max settings on everything is not the way to go, and I’m telling you, you should be able to get stable 60 because they optimized the game a lot. You should also consider tweaking Gore and Corpses on screen settings.

Also, have you tried this?

An FX 4100… those came out really underpowered. I think even the old Phenom II X4 and X6 have better performance per core and overall.

There is a gamedata.dbr entry called defaultLoadDistance, at 250 this seems quite high.

Has anyone here experimented with adjusting it down for a more staggered loading
instead of the once off it is now?

Oh, and thanks for the tip, making GD ignore the first core does help some.
Also have set it to 4 threads.

Exactly. Here’s what it looks like on my quad core CPU

I don’t have a gamedata.dbr anywhere on my system and only Grim Dawn.exe, Game.dll and database.arz contain a defaultLoadDistance entry.

The option.txt trick worked just fine for me.

Setting CPU affinity worked great for me! Thank you a lot OP!

Did it a few minutes ago to try it out. Got a blue screen with “bad pool caller” error message… Guess i shouldn’t have.
Running the game on a laptop but this is the very first time i encountered this.

I5-4210H 2.9Ghz
8gb ram
Gtx 860M

To change the defaultLoadDistance entry you currently need a cheatengine table which exposes that value.

When database.arz is open for modding that entry should be editable via mods.

I think your hardware crashed fortuitly while running the game, the game has nothing to do with the crash.
You had a tired component… Maybe you’ll have to buy a new laptop…

It’s hard to track down stuff like this, especially if everything else works just fine.

My laptop being just 1 year old or so i would be very surprised if i had to replace it already.
Checked on the internet and seems like it was due to overheat. Played for an hour after the crash without doing the cpu core trick and everything went fine (loaded lots of areas on purpose to see if it could withstand it)
Funny thing is that the crash happened on a fresh game session when i was just standing in Homestead after teleporting from devil’s crossing, the game running in back.

Ok first of all i tought when i read this : PLAACCEBBO

…But guess what

I played now like 1 hour and my frames didnt go below 60 fps.

but i found out disabling hyperthreading is better :smiley:

Amazing.

thanks alot :slight_smile:

Hi, i noticed huge improvment with CPU affinity , ty a lot this is not the same game now : 60 FPS even with a tons of ennemy, ty .

In my PC environment, this functioned well.
When I had only changed the configuration file, the expected effect did not arise.
This is different. Surely the CPU affinity smoothed the motion of a game.
Thank you!

System:
Main P8H77-V
Intel i5-3550 3.30GHz
Nvidia GTX 660
8.00GB RAM, 1TB HDD
Win10 Pro

Great tool. I have way better and more stable FPS. Thanks.

Huge performance improvement ! Thank you !