ARE YOU TIRED OF ST-ST-STUTTERING?? Read my LONG post

Well I am, and I finally fixed it to a large degree. I'm writing this for two reasons:

1) The game since I last played it 2 leagues ago is far more slow, stuttery and laggy. I've seen various complaints on reddit about it too and on forums so I'm assuming it's largely GGG's fault. So with this, I hope I can help SOMEONE out in a similar situation.

2) When scouring the internet for resources, they were all scattered and I couldn't find anything about an important feature of this change - automating it and having it not bother you.

Disclaimer: This isn't a 100% full coverage of all ways to increase performance. It's a collection of what I've gathered plus something I made myself.

OKAY let's begin.

PREFACE:


Every system is different. Some people are bottlenecked by CPU, some by GPU, some by RAM, blah blah. What works for one won't necessarily work for another, and may actually harm their performance. As an example: Directx11 vs Vulkan vs Directx12. For my system, it's not high end but it's not low-end. I have a 2070 and decent cpu, I shouldn't have the problems I've had. I've seen people with 4xxx's and new CPUs with the same issue so unless you're on a potato, I don't think better system => better performance for POE.

SETTINGS (POE):

You can fiddle with them all day but chances are it's a minor impact. At least it was for me and didn't fix the issue.

What I've learned is the following:

Networking mode: Auto works best for me, as it should. Some people hate predictive, some hate lockstep. Fiddle with it but auto is supposed to switch between them based on conditions.
Windowed fullscreen or fullscreen. Avoid windowed.
VSync is tricky. Try various combinations, but it depends on your monitor refresh rate. My best answer is turn it off, and enable the Foreground and Background FPS caps to your refresh rate. (even if you have a 144hz, probably just do 60 since I don't believe the game supports higher than 60).
Antialiasing quality: Off unless edges are real important to you
Lighting: Shadows. Do not do Shadows+GI.
Texture Quality: Medium. It really isn't that big of a difference imo and it's a substantial impact.
Graph details: All Graphs (F1 to show them)
Dynamic Culling and Dynamic Resolution: This is my personal setting - Enable culling, Disable resolution. I know for resolution it says highly recommended to leave enabled but for whatever reason, I have better luck with it off.
Target framerate: Same as cap (60 probably)
Engine Multithreading: Probably keep it enabled. It's an easy test - turn it off and if everything turns to crap you probably want it on. I think older computers benefit from it off.

Lots of other things that I'm not going to mention. It really just needs some fiddling, but don't waste hours on it.


NVIDIA SETTINGS:

I don't have AMD so skip this if you do lol. This is where it gets more interesting.

First off, update the drivers if needed. (Google search nvidia drivers, and download latest one, and make sure to uncheck the box for installing GEForce Experience and other crap with it).
Second, get rid of GEForce Experience if you do. There's certain things it does that negatively impact performance but I'm going to name one if you really wanna keep it (you don't need GEForce Experience to edit NVIDIA settings, just NVIDIA control panel is fine).
The one I'm going to name is tied to a cancerous Windows process: GAME CAPTURE! Nvidia takes resources to uhh.. always be prepared for recording and save epic clips. If you want epic clips go ahead keep on the game capture. However, if you do keep GEForce Experience, just do a google search on how to disable game capture (it's tedious). But what's better than Nvidia continuously recording? Microsoft doing it too!!! Xbox Game Bar captures by default, similar thing.
To get rid of the Xbox Game Bar capturing, search and open 'Game Bar Settings'. Click 'Captures' on the left. Turn it off. While you're at it, it's in your best interest to disable everything you see in that screen. Then on the left, click 'Game Bar' now. Turn it off. Same with 'Game Mode'.

Now once you've gotten your drivers updated, GEForce Experience uninstalled, Xbox Game Bar capture (and game bar itself) disabled, let's move on to the Nvidia Control Panel settings.

Go to Manage 3D Settings>Program Settings. Let it load and begin to modify Path of exile settings for NVIDIA. These settings run in conjunction with POE in-game settings so it's wise to address them.
I'm not going to go through each one, but I'll touch the bigger ones. The control panel does a pretty good job explaining what each one does and how changing it affects things:
Most things leave 'Use global setting (Application-controlled)' or 'Use Global Setting'.
Background Application Max Frame Rate: 60 for me
Low Latency Mode: Off
Max Frame Rate: 60
! Power Management Mode ! - 'Prefer Maximum Performance'
Fiddle with other stuff if you want. The important stuff is later in this post.

Global Settings:
The big one here I think is Shader Cache Size. I have it Unlimited because I have plenty of disk space.
There are other things in global settings that can't be configured in program settings. Just try to go performance oriented.
Power management mode: Overriden by program settings but may be a good idea to do 'Prefered maximum performance' here too so other apps don't drain resources.


Okay cool got the boring fiddling stuff out of the way.


NVIDIA HIGH DEFINITION SOUND DEVICE: (I am still shocked)

This may be related to the whole 'sound fix' some people do by manually blocking POE sounds. Idk. I don't do it cuz I wanna hear the game. Anyway ...

Go to device manager then Sound, video and game controllers. If you see 'NVIDIA High Definition Audio' or other entries similar.. right click and disable. This is of course assuming you're not actually using it, and if you are that's kinda sad. Your meaningful sound devices should show up there like headphones.
But.. just disabling 'NVIDIA High Definition Audio' dropped my memory usage by almost 4GB !! I don't know why. I heard about it on reddit and others were surprised by it too.


EXTRA TIP(s):

Use ethernet if available. Your wifi strength and stability always loses to ethernet.

If you have an SSD, it will directly improve your performance if POE is installed on it vs a HDD.

One other thing that's worth looking into is putting highest priority on POE as a process. You do it through Task Manager.

STEAM SETTINGS:

Various searches can show you various things to try. What I found helpful is (in the launch options for POE on Steam, you can also set these launch options for the exe if you have the client) the option '--waitforpreload'.


CLEANING UP GGG's MESSES (and Windows):

Search for forum/reddit posts about it for more details. Basically you want to clear POE's cache/shader cache. Yes, everything will need to be recompiled but the premise is there is a huge amount of outdated files. One other thing is clearing up the minimap files. It'll redownload everything when you run the game. It's best to not delete the actual file, say, 'ShaderCache', but rather go into it Select All and delete. Then delete from recycle bin.

For Windows, there's another similar thing to do. Main thing is appdata. There's various ways to handle it (oh, it's a good idea to not install things there) but the way I do it is every now and then, search 'Run' in windows, and type '%appdata%' and enter. Delete everything there. If it lands you in AppData/Roaming, feel free to go up and delete Local and the other stuff too. If you want to find appdata manually, you'll need to show hidden files on windows file explorer.



OKAY TIME FOR THE MOST IMPORTANT PART! (And the MOST beneficial)
.. introducing C-states!


Note: No, it's not harmful. Unless you run it 24/7 then your PC will die slightly earlier I guess. But that's where my personal addition helps.

Now, this post has been shared around since 2021 I think. The premise is forcing a power plan that that maximizes performance for POE because of how CPU's work with certain games. Not gonna explain it, search 'C states fix POE' or something. It is interesting info though.

I will, in this post, show how to do it + my personal addition to make it smoother.

In Windows, there's power options. Pretty generic - Balanced (recommended by windows), High Performance and Power Saver. Windows search 'Power Options' and then on the right click 'Additional Power Settings'. I tried using high performance and it didn't cut it. Disabling idle states did though!

On the left, select 'create a power plan', select 'High Performance'. Name it whatever. Now windows search 'cmd' and right click to run Command Prompt as admin. Type `powercfg /list`. This shows the ids for the power plans.
Highlight the GUID number/letter string corresponding to your created power plan. Press enter to copy it (not Ctrl+c).
Now, in command prompt type `powercfg /setacvalueindex {pasteGUIDhere} SUB_PROCESSOR IDLEDISABLE 1`
Then, type `powercfg /setdcvalueindex {pasteGUIDHere} SUB_PROCESSOR IDLEDISABLE 1`
Type `powercfg /setactive {pasteGUIDhere}`

That makes your created power plan have the setting of disabled C-states aka your CPU runs at max when on that power plan. There's reasoning behind this other than 'cpu go stronker', refer to internet posts.

Lastly, go to Power Options->Additional Power Settings again, click the new plan, click 'Change Plan Settings' then 'Change Advanced Power Settings'. Scroll down and open 'Processor Power Management'.

This opens 'Minimum Processor State', 'System Cooling Policy' and 'Maximum Processor State'. cooling should be active. Min and max processor states are set to 100%. My advice is to click and change these both to 95%. This helps with heating and noise a bit. Don't go below 90%. Or if you want, just keep it at 100%.

OKAY COOL so we got a new max performance power plan! But, obviously you don't want this running all the time...

SCRIPTS TO CHANGE POWER PLANS BASED ON POE BEING OPEN OR NOT:

Another way to handle this is through local policy editor. But if you're like me and don't have Windows PRO and not gonna spend 99$ to get it, you don't have access. Yes, you can download a policy enabled off sites but... I'd rather not. All the posts I saw for switching power plans based on POE used these policy editors.

My solution (that works smoothly and only takes up ~700kb) is a batch script that runs as a background process and every 30 seconds checks if POE is running or not. If it is, use the max performance plan. If it's not, go back to balanced. Then there's a VBS script to make it silent and not show a visible shell for the process. Lastly, there's another batch script to run it all as admin since VBS scripts can't be run as Admin when triggered I guess.

NOTE: I'm giving source code so it's not some mystery exe or file. If you are wary or whatever, I'd advise to lookup the keywords used to see the script is simple and doing what I mentioned. All 3 are pretty short and effective.

---

(Note: Name stuff however you want, I'm just giving my examples)

In file explorer, make a folder called 'POEPowerPlanSwitcher' or whatever. It can't necessarily be anywhere, I'd advise to just put the folder in C:\ or whatever drive POE is on

Open a text editor and save file as (make sure to change 'Save as type: All files' otherwise the extension is off) 'POEPowerPlanSwitcherBat.bat'.

Open a new file and save it as 'RunPOEPlanSwitcherSilent.vbs' (with all files as type).

Lastly, a new file and save it as 'RunVBSPowerSwitcherAsAdmin.bat'.

--- Contents of 'POEPowerPlanSwitcherBat.bat' ---


```
@echo off
set "GameExe=PathOfExileSteam.exe"
set "SpecialPlanGUID={pasteYourNewPlansGUIDHere}"
set "BalancedPlanGUID={pasteBalancedPlansGUIDHere}"
set "CurrentPlan=%SpecialPlanGUID%"

:CheckGame
tasklist | find /i "%GameExe%" >nul 2>&1
if errorlevel 1 (
if "%CurrentPlan%"=="%SpecialPlanGUID%" (
powercfg /setactive %BalancedPlanGUID%
set "CurrentPlan=%BalancedPlanGUID%"
)
) else (
if "%CurrentPlan%"=="%BalancedPlanGUID%" (
powercfg /setactive %SpecialPlanGUID%
set "CurrentPlan=%SpecialPlanGUID%"
)
)
timeout /t 30 /nobreak
goto CheckGame
```

If you have the client, `set "GameExe=..."` substitute ... for the executable for the game client.
To get your GUIDs, as mentioned, open cmd as admin, type `powercfg /list` and highlight and press enter.

Oh also, don't include the ```s that's just for this post.

--- Contents of 'RunPOEPlanSwitcherSilent.vbs' ---

```
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\POEPlanSwitching\PoePowerPlanSwitcherBat.bat" & Chr(34), 0
Set WshShell = Nothing
```

That second line - that's my path. Substitute it with the path to your first file (POEPowerPlanSwitchBat.bat). Which should be in a folder together with the other 2 files. (mine folder is 'POEPlanSwitching' here).


--- Content of 'RunVBSPowerSwitcherAsAdmin.bat' ---


```
@echo off
cscript //NoLogo //B "C:\POEPlanSwitching\RunPOEPlanChangerSilent.vbs"
```

Again, replace the path to your changerSilent vbs file, that's mine.


NOT DONE! We are lazy and just want to double click the file.

So, in file explorer, go to that folder 'C:\POEPlanSwitching' or whatever where your 3 files are, right click the 'RunVBSPowerSwitchAsAdmin' bat file and select 'create shortcut'. Rename the shortcut if you want.

Right click the shortcut -> properties. Then 'Advanced' and check the 'Run as Administrator' box.

There. Now when you double click the shortcut, it will run the bat script to run the other vbs script as admin and that vbs script runs the main bat script that runs as an invisible (visually) background process, checking every 30 seconds if it needs to switch power plans.

This runs indefinitely, so 2 last things need to be considered/understood:

TERMINATING THE PROCESS:


If you open up task manager, it's not gonna pop up as the name of the script. It'll likely be a 'cmd.exe' process. To verify 100% which process is the one indefinitely running, doing this power plan switching, in task manager, go to 'Details' on the top. Right click one of the columns, say 'Name'. Click 'select columns' and check the box for 'Command Line'. This will show the corresponding command to the process. Look for the row with 'C:\POEPlanSwitching\POEPowerPlanSwitcherBat.bat' in it. That's the process to end if you ever need to. The only reason I can think of is if you need to regain manual control of power plans with POE.

VERIFYING STUFF WORKS:

Have POE closed. Make sure 'cmd.exe' and/or the command line mentioned isn't running (shouldn't if you haven't double clicked the shortcut yet). Go to power options and change it to 'Balanced'. Close Power Options.

Double click the shortcut and say yes to the prompt. Run POE. Open Power Options again and check that it's switched to your custom plan. Look in task manager to see the process running in Details.

Close POE and verify that power option goes back to Balanced. (30 sec delay)

THE END


P.S. Feel free to change power plans before and after launching POE manually if you want lol if you don't wanna do this
Last bumped on Dec 28, 2023, 8:16:56 AM
nothing wrong with using windowed fullscreen or fullscreen same performance
Some of your settings fixed my performance issues where my gpu went over 86 degrees in heavy particle load encounters , now it chills at 58-72 degrees on 100 FPS :D

My PC:
- ASUS ROG Radeon RX 5700 XT STRIX OC
- AMD Ryzen 5 3600x 4,4GHz
- G.Skill Trident Z Neo, DDR4-3200, CL16 - 32 GB

I turned dynamic resolution off and added the --waitforpreload thing. Now my gpu is happy TYTYTYTY
Last edited by slivo254 on Dec 22, 2023, 5:44:54 AM
Seeing as most complaints about performance seem to be from those on who play on EU servers, it might add if respondents note their usual server.

I have no issues on Texas server
"
Gopstop22 wrote:
nothing wrong with using windowed fullscreen or fullscreen same performance


"Windowed fullscreen or fullscreen. Avoid windowed."

What I meant was avoiding windowed specifically. Not windowed fullscreen, not full screen, those are both fine. It's windowed that can cause issues.

"
Seeing as most complaints about performance seem to be from those on who play on EU servers, it might add if respondents note their usual server.

I have no issues on Texas server


I've noticed that, not sure what's going on in bongland but I'm hoping those with issues in a real country can find a solution. Are you on an SSD by chance? Just curious

@slivo254 Glad it helped you in some way
"
UguuAuu wrote:
OKAY TIME FOR THE MOST IMPORTANT PART! (And the MOST beneficial)
.. introducing C-states!

Disabling CPU C-States is kinda useless until you have multi-threading bug.

For those who have that bug it drastically improves performance.

For example for me, I have MASSIVE CPU spikes on FUCKING LOGIN SCREEN (and eslewhere), but with CPU C-States disabled I can comfortable play with 60 fps in maps.

How to determine is your PC affected by multi-threading bug?

Easy. Press F1, watch CPU graph. If you have CPU spikes, disable "Engine Multithreading" in Options. Watch if the spikes vanish or not. (Better do this in hideout or on login screen.)

If disabling "Engine Multithreading" massively improves performance then you have that bug. Unfortunately you can't play maps without multithreading cause one CPU core ins't enough. So the sole fix for it is to disable CPU C-States.
Last edited by Beglets on Dec 22, 2023, 11:46:47 AM
0 problems on my rig and haven't changed a thing.
My PC is really old.

1060 GTX 3 GB
I5-7500 CPU
8 GB Ram
Vulcan

but it run fluid all the time with 60-100 fps. That changed drastically this league. Even in Campain I had freezes for 1-5 seconds, loading times went from 5 sec to 1 minute and so on.

I tried it all. Only fix for me is to run POE at single core, but this halves the fps. I even tried to run that game with 800x600.
Thank you for posting this.

*Snacks on Vanilla Wafers with hot chocolate*
I tried most of the (short) suggestions, none of them worked for me. In the end, I went to single core too. And now it's smooth as a babies bottom, albeit graphics have to work harder.

I have no idea where the problem lies, but this is not necessary with any other game I play.
Last edited by Ketherina on Dec 24, 2023, 5:49:18 AM

Report Forum Post

Report Account:

Report Type

Additional Info