Hi @powbam thank you for inspiration and solution of the problem. I’ve created universal Linux switcher. It doesn’t matter how many cores you have, it sets everything properly. And I’ve also added “Main Thread” process since my GD is running as this. I didn’t test it on other older names, but it should work as well.
hey, just wanted to say thanks for the Core Switcher tool and the clear explanation behind it, really helpful
i also wanted to share something that might help others depending on their setup. on my pc, I actually get smoother performance by keeping CPU cores 0 and 1 disabled, so I prefer to keep them off instead of forcing full usage across all cores
for anyone who runs into the same situation, you can create a simple .bat file and use this command (replace with your own Steam path). also make sure to always run Steam using this .bat file if you want to play GD, otherwise the affinity setting won’t apply
this way, CPU 0 and 1 stay unused for the game, and for me it reduces stutter and gives more stable performance. might not be needed for everyone, but just sharing in case someone else benefits from keeping those cores off instead of on
I have this working on Win11 (though 1 core is around 80% usage and others are 20% or lower, but better than 1 core being 99% all the time when on high fps), but on CachyOS Linux, it says my CPU isn’t supported. 9700X. Any way to get this updated on Linux for newer CPUs?
Sorry I don’t see a way to edit, either cuz I’m blind or my account is too new. But brother has a 5950X, which is more cores than mine, so it would be nice if it could work for him as well since he tries to stick exclusively to Linux for gaming these days. I’m OK to bounce to Win for some stuff but also prefer Linux whenever possible.
I’d like to clarify: can I wait for 5–10 seconds in the game’s main menu, or do I need to start playing as a character?
If yes, then instead of the program you can use this BAT mask for a 4-core/8-thread process:
@echo off
start “” “D:\Steam\steamapps\common\Grim Dawn\x64\Grim Dawn.exe”
REM Wait 10 seconds after game launch
timeout /t 10 >nul
REM Disable CPU0 (clear bit 0)
powershell -Command “$p = Get-Process ‘Grim Dawn’; $p.ProcessorAffinity = [IntPtr]([int64]$p.ProcessorAffinity -band (-bnot 1))”
REM Wait another 10 seconds (20 total)
timeout /t 10 >nul
REM Enable CPU0 back (set bit 0)
powershell -Command “$p = Get-Process ‘Grim Dawn’; $p.ProcessorAffinity = [IntPtr]([int64]$p.ProcessorAffinity -bor 1)”
REM Wait 5 more seconds (25 total)
timeout /t 5 >nul