SteamApps vs AppData Shader Directory/Cache Misses -- An Easy Fix?

I have been looking at what PoE2 is doing with Procmon while the game is running to see what is causing all the crazy CPU and HDD issues everyone is having. I noticed that every time a shader is being loaded from the cache, the game first attempts to load from the "C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2\ShaderCacheD3D12" folder which does not exist. Then it tries "%appdata%\Path of Exile 2\ShaderCacheD3D12" which does exist.

Soooo.. whats up with this? You obviously create the shaders at some point and know what folder you write them to, so why look in the wrong folder? Then, once you look in the wrong folder and then find the shaders in another folder, you continue to look in the wrong folder on every shader load.

It's a very minor thing, but thousands of file not found results when it could be zero is something easy to fix.

For the mean time, I created a directory junction that removes all these misses, but the dev team should just fix this internally by saving the known good folder on a successful cache load. Then if it fails look around at the list to find it.

Example console command to make the directory junction:

mklink /J "C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2\ShaderCacheD3D12" "C:\Users\Jafa\AppData\Roaming\Path of Exile 2\ShaderCacheD3D12"
Last bumped on Sep 12, 2025, 6:58:03 PM
Is it working for you? But it's not working for me. How did you discover that the game always attempts to load the shader cache from Steam first?
I tried it, but it didn't work. I probably did something wrong. I have the game on an SSD, but Windows is on an HDD.
Nice find, but did this make any difference in performance/stability at all? The answer might also indicate why they haven't bother with fixing it hehe.
Last edited by Yulan4069#4963 on Sep 12, 2025, 10:50:02 AM
This is insane.

GGG fix this!
It's worth noting that +2 maps are a dangerous thing.
They can cause players to get out of their depth -
playing maps that are too hard for the items they currently have. Herp Derp.
This is wild if true, makes me wonder if it's related to the render re-write and or the code regression where we had bugs that were hot fixed previously reappear in .3.
And where do you exactly put this link? In which location should the specified symbolic link be created?
Copying and pasting your command results in CMD throwing the classic "Cannot find the path specified".

I assume that because of the way you structured your command it tries to create a path to

"
"C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2\ShaderCacheD3D12"


instead of

"
"C:\Users\%username%\AppData\Roaming\Path of Exile 2\ShaderCacheD3D12"




The basic syntax for mklink is " mklink [[/D] | [/H] | [/J]] Link Target"

where Link is for specifying the name of the symbolic link being created.

How did you create the symbolic link? Just curious.
Sorry for not replying to earlier posts. The reason the link for you guys didn't work is that if you copied my example exactly, it includes my computer login username in the path. So since you're not logging in as Jafa it won't help.

I honestly do not think that this will have much bearing on overall performance, but this is so low hanging that it's comical.

The real thing they need to address is the fact that joining empty chat channels has such a CPU performance boost. That is what led me to doing procmon queries at all. I was trying to see if the chat log file was giant or something, but it's not file related. You can clear the file entirely while playing and you still have performance issues until you do /clear or /cls in the chat window in game. This tells me it's some internal cache that gets parsed when new messages come in.

Again, I'm not suggesting that end consumers make symbolic links to make micro-improvements to their game, but it's just something that really stood out to me when I was profiling the game. Hard to ignore hundreds of FILE NOT FOUND messages.

Here's an actual example from Procmon I just took a screenshot of since I moved to Vulkan and forgot to make the link.

https://imgur.com/a/KjA84Em
Regarding making your own link.

It will be different based on if you use steam or not. If you do use steam, then open up a file explorer and navigate to a path like this (this is what it is on my PC) "C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2"

It's in this folder where the PathOfExileSteam.exe file exists that it looks for the ShaderCacheD3D12 or ShaderCacheVulkan folder (based on which renderer you use).

In my personal case, the actual shader caches are in my appdata folder, so press Windows+R and type %appdata% and hit enter, scroll down, go into the Path Of Exile 2 folder.

On my pc, I have the ShaderCacheVulkan folder (and the DirectX 12 one too) where the game actually put the shaders.

When you make the link, you need the _actual_ path to that directory, using %appdata% is a shortcut, but it's pretty easy to find normally:

"%appdata%\Path of Exile 2\"

is the same as

"C:\Users\Jafa\AppData\Roaming\Path of Exile 2"

Notice the Users\Jafa bit, that's my windows login name so yours will differ.

So if you want to trick windows into thinking a folder exists where it really doesn't (the shader cache folder in steam) pointing to the appdata folder, you can make a symbol link.

So again, knowing we are linking from Steam -> Appdata, look at my actual path and substitute your own folders for your Username and Renderer folder (Vulkan or DirectX)

mklink /J "C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2\ShaderCacheVulkan" "C:\Users\Jafa\AppData\Roaming\Path of Exile 2\ShaderCacheVulkan"

If you go back to the steam folder you'll now see a Folder icon with a shortcut on it that will take you to the appdata folder. But windows doesn't treat it like a link where it jumps to that appdata folder, it treats it like that's the for real folder that exists there for any file lookups.

I use directory links like this to force different apps to dump their data to dropbox for work so it's auto backed up, so it's handy to use it like this sometimes.
Also note that AppData under the Users folder is a hidden folder. So if you don't see it in file explorer that's why

Report Forum Post

Report Account:

Report Type

Additional Info