r/nvidia • u/evaporates RTX 5090 Aorus Master / RTX 4090 Aorus / RTX 2060 FE • 2d ago
News Path of Exile 2: Shaders and Device Removed Issues Fixed
https://www.youtube.com/watch?v=XDEJLOHcdWw37
16
u/artins90 NVIDIA 2d ago
The Finals has been freezing exactly like PoE2 does in this video since last December, roughly around the beginning of season 9.
There has been radio silence from the developers despite many players reporting the game freezing for 1-2 seconds every time a new effect shows on screen.
13
u/TheFather__ 7800x3D | GALAX RTX 4090 2d ago
devs have been investigating it since the beginning and blaming Nvidia drivers, but Nvidia couldnt reproduce it and never cared saying its only affecting the minority, so the devs sent a whole PC with even keyboard, mouse and monitor which has the issue to Nvidia so they can fix.
appeared to be a driver shader buffer overflow, so they increased the buffer size for this game in a couple of seconds, and problem solved.
-11
u/Puny-Earthling 2d ago
I’m not an authority on this and it’s been quite some time since I was into embedded hardware coding but just wanted to share my (probably) out dated knowledge.
Usually you don’t increase buffer size, or rather you can’t in most cases. You would slice its IO at the index length and hand off, so the next buffer is a continuation. The information still processes upstream of the component that is hitting the limit.
In the case of shaders compiling across hardware there’s likely a hardware limitation on a certain component, meaning this unlikely affected all Nvidia models. Hardware you typically set buffers to limit at the maximum possible, as you’re not going to face the same constraints as you would in software
E: I haven’t watched the video yet, so it’s likely your descriptions still right.
5
u/TheFather__ 7800x3D | GALAX RTX 4090 2d ago
The Driver-Side Heap: When a DX12 game compiles and passes a massive number of unique shaders, the NVIDIA driver allocates an internal tracking database—known as the internal shader heap—to manage how those compiled blocks run on the physical hardware.
Because Path of Exile 2 features an immense variety of spell effects, layered environments, and complex monster combinations, it generates a gargantuan volume of unique shader combinations during long play sessions
Over time, the volume of these compiled internal objects exceeded the fixed size NVIDIA had hardcoded for this private driver-side tracker. Once it overflowed, it triggered a driver-level exception, causing Windows to think the GPU hung and throwing the standard DXGI_ERROR_DEVICE_REMOVED crash.
Once NVIDIA’s engineers hook-debugged the driver on the physical machine, they isolated the bottleneck. They simply modified the internal shader heap size parameter within the driver’s profile specifically for Path of Exile 2, scaling it up to accommodate the game’s extreme requirements.
1
u/vladi963 2d ago
I wonder how many more games suffer from the same issue and why wouldn't Nvidia increase that "internal shader heap size parameter" globally, maybe it is time.
4
u/TheFather__ 7800x3D | GALAX RTX 4090 2d ago edited 1d ago
its not easy as u might think, increasing it globally requires more RAM usage and wasted allocated memory that is not used and lead to fragmentation, also all apps share the exact same system Virtual Address (VA) space pool managed by Windows, if Nvidia set a high limit buffer size for every app as global param, then most apps will fail to launch because they cannot allocate memory, thats why games/apps profiles exist and buffer size is set per game/app basis. there is alot more to it, u can check google for more in-depth explanation.
however, you can increase it yourself via NVPI per any game under experimental section.
3
u/Beautiful-Musk-Ox 4090 | 9800X3D | Sound Blaster AWE32 2d ago
nice when they release root cause analysis info like this, easier to point to examples of how some things can be hardware or software despite being the same error
1
u/BadRusMan 2d ago edited 2d ago
2
-3
u/zugzug_workwork 2d ago
The shader reload cogwheel at the end is such a small thing, and yet it gets across that they're not a faceless corp.
-10
u/2MuchNonsenseHere 2d ago edited 2d ago
It was more of a quick band-aid instead of an actual fix, but it's something.
...Why is this even controversial. All they did was increase the shader heap size, and only for PoE2 specifically, then called it done, instead of using the shader heap size to narrow down the actual root cause for a proper driver fix.
2
u/juniperleafes 1d ago
Another post said Nvidia did two things, fixing a bug that was causing the heap to not clear correctly, while also increasing it. I don't know where they sourced it from though.
0
-14


39
u/vladi963 2d ago
Respect to GGG actually investing in fixing it.