[Tool] Core Switcher - Force GD to use all cores equally!

Hmm. I’m assuming you are using some form of WIne to launch? I might have to look into figuring out how to easily generate a non-Steam Proton launch script for GI then.

I install GD via Playonlinux, via this method:

Yea… I’m not familiar with using Playon as I’ve always used Lutris for handling non-Steam stuff like that. I’ll see if I can figure it out tho. It’s gotta be some form of the Steam steps tho, I’m sure. Just gotta figure out how to add a similar DEBUG command.

Probably under your Playon settings for the game there is likely an option that allows you to append launch commands. You might even be able to throw in the same launch command as for the Steam one and get results.

So I have tested this thoroughly over the last day and can definitely say that it works for me.

My methodology consists of starting Grim Dawn, then letting my Conjurer just run around the main area of Fort Ikon for a minute to let the system settle and then taking a screenshot from Rivatuner. I repeated this with the only variable being starting Grim Dawn normally, then with Lasse B’s CPU affinity tool and finally with Powbam’s core switcher. Note that this is a true test of CPU bottlenecking as my GPU usage is always about 90%.

BTW, the stats are at the bottom left hand corner of the screenshots.

The biggest difference I found looking through my Rivatuner log is that no cores hit over 95% with this tool whereas I was occasionally still getting some cores maxing out with Lasse B’s CPU affinity tool. Obviously, I was always maxing out the first core if I started Grim Dawn normally. What this boils down to is that the game is completely fluid for me now whereas I was still getting the odd stutter with CPU affinity.

Finally, I also tried adjusting the MaxResourceThread setting in the Grim Dawn options file (tried 1, 2, 3 and 4 as I only have a quad-core) but this didn’t seem to make any difference to the results to all these methods.

2 Likes

Nice and thank you for taking the time to really test and report your results. Good to see that it is capable of helping with game performance.

1 Like

Actually, let me thank you for your tireless efforts in trying to help everyone. I just hope my small contribution here is of use to someone.

edit: I also plan on testing this on my gaming laptop with a 9300H and GTX 1060 and report back with the results.

1 Like

Looking forward to it. The more information on the various hardware out there the better, especially seeing as how some CPU’s seem to behave radically different than others, as we’ve seen earlier in the thread some CPU’s seem not to really respond to the affinity changes, which is why I posted at the top of the OP for people to post their CPU and their results - anything that adds to the knowledge base is a good thing :slight_smile:

1 Like

@H_T_C

Hopefully this will help you out. I don’t often like to ask for help as I prefer to search it down and piece it together myself but in this case I had to swallow my pride and post on the Lutris forum and ask for help :smirk:

Create a new file and name it whatever.sh - then edit it.

#!/bin/sh
 
export WINEPREFIX=/home/your/wine-prefix/here

cd "/home/path/to/the/Grim Dawn/installation/folder/here"

/home/path/that/calls/on/wine/version/the/game/is/using GrimInternals64.exe

Mine looks like this…

image


Hopefully that’s enough for you to figure it out… if not I could dive into Playonlinux more to see if I can replicate it there and then show you how to get the required paths on your own.

Messing with Wine has always been kinda brain-melting for me so this is the first really that I’ve tried to turn it around and start de-mystifying it for myself :smile:

Here’s the thread I had to lower myself to student status in - in case it proves to be of any further assistance… https://forums.lutris.net/t/creating-a-new-shortcut-from-the-same-runner/9692

1 Like

Thanks a lot for trying to help.

Right now i can’t test it because i’ll be going to work in about 10 minutes.

Meanwhile, i installed GOG’s Grim Dawn in Lutris, … after a few failed attempts … but it’s working now: i’ll test it when i get back from work.

1 Like

It’s all good. Gotta do what ya gotta do :wink:

Nice. I have fiddled with Playonlinux a little bit while doing this and I gotta say, I find Lutris a bit more straightforward to use.

I assume you didn’t install the Galaxy runner? Because I tried the most recent one and it installed Galaxy fine but everytime I tried to install GD with it the installation failed. Dunno if it needs to be updated because of the recent Galaxy patch or not. I had to resort to using the GOG Grim Dawn runner: https://lutris.net/games/grim-dawn/

I installed the GOG w/ DXVK version and then used Winetricks to install all my DLC thanks to this explanation of how to do it:

But since you managed to get the Lutris version installed it’s super easy to get all the path information I detailed in my post above - so I’ll definitely be able to help you with that if you need guidance.

I was messing around with this a bit myself tonight… I have an i9-9900k. CPU 0, CPU 2, CPU 6, and CPU 15 are the most utilization. 6 is the one that caps out by default on my system for some reason… Trying the method mentioned above (or just disabling 6 first instead since thats where the excess usage defaults) leads to another cpu becoming the one that becomes maxed. Repeating the process leads to a game of whack a mole never resulting in an even spread.

1 Like

Thanks for the info - so 16 cores, and GD by default is heaviest on Core 6. :eyes: That in itself is… weird. It’s these fringe oddball cases that I really wish I understood - the sporadic and (I think) abnormal behavior. I really wish I knew if it was a setting causing it - or if it was just a peculiarity of the particular CPU itself.

Guess we’ll have to wait to find out…

image

… since you’re the only 9900k in the thread yet. I think I’ll go ahead and add 16 cores toggling to the Windows script here later on tonight just in case.

Ok - just did a pretty BIG update to the Windows Core Switcher (get it in the usual spot in the OP). After much reading and learning myself I realized that my method of determining core count (with and without Hyperthreading/SMT) was flawed. This called for me to completely revise my tool and how it went about its business.

Windows Core Switcher should now be able to account for all CPU scenarios without any further updates. All the way up to 32 core systems, you big spenders you.
:crossed_fingers:

You still use the Ctrl+Alt+o hotkey to activate it. I also added a Ctrl+Alt+i hotkey that will popup some CPU info relevant to what this tool does should you wish to see it.

My meager state of affairs:

image

Now to do more work on the Linux Core Switcher to bring it up to the same level.

Happy Gaming.

2 Likes

So a bit of testing this morning real quickly… It seems if I have nothing else running GD will default to CPU 0. After running the switcher, it switches to maxing out CPU 2 instead. Also the i9 is 8 core/ 16 logical processors .

note that when you’r playing through lutris you have to disable esync to avoid crash-to-desktop out of the blue. to do so click on the small gear under the play button, go to tab ‘runner options’ and disable ‘enable esync’.

furthermore, to use the 64bit game client, go to ‘gameoptions’ and pass

/x64

to the ‘arguments’.

I’m having trouble with the last line of that file:


Can’t locate that “/.local/share/lutris/ …” part :frowning:

Note that i tried this in Lutris only.

ALSO: these are the instructions i followed in order to install the game and it’s DLCs in Lutris:

Start the game up then shut it down once, we need to generate some logfiles and that is how you do it.

Now, click the “Show logs” button as shown below…

You will get this screen, go ahead and drag/scroll it on all the way up to the beginning of the log…

…and you will find your “wine” path once you get there…

That’s all you need :wink:


Also, in your picture of your file you shared…

Make sure you enclose any paths that have a space in their name in double-quotes.

"/home/Games/Grim Dawn"


Also, be aware that it takes a moment for it to fire the game up thru GrimInternals so be a little patient if you notice it not starting up lickety split.

1 Like

why so complicated? in lutris just click the gears-symbol, go to ‘game options’ and choose as ‘Executable’ the GrimInternals64.exe.
for me it crashed in the beginning when i tried to launch, but after setting these

UseGrimCamDll=False
ShowMainMenuGimmick=False

in the GrimInternals.ini the game launched properly. You can now try again with the mentioned .ini-settings reverted to ‘True’. For me it didn’t crashed again.

Because some people (like me) prefer to use GrimInternals only for testing and helping out others to use it so I’d prefer not to have to change it back and forth all the time.

I already figured out you can point the runner at the GrimInternals executable but I wanted a shortcut method instead :wink: which comes in handy for me whenever I get around to making a version of my GD Switcher for Linux. I’ll need a way to call it and launch it in a custom program and now I know how to do it.

Also, it ran fine for me at least - I didn’t change any settings for mine to run.

I got this:

The one i should use is “/usr/bin/wine /home/htc/Games/Grim Dawn/drive_c/GOG Games/Grim Dawn”, or just “/usr/bin/wine” (minus the “” on the 2nd one)?

Also: where do i place the Grim Internal files? In the game’s installed folder?

Unsure if it’s supposed to be there or @ /usr/bin folder.