- May 26, 2020
You gotta hand it to the GGG guys, they really work hard on PoE. Vulkan support has now been added for possible improved performance.
We have just deployed the 3.10.2 Patch, which includes a Beta version of our Vulkan renderer. This alternate renderer provides much more consistent performance than the DirectX 11 one, especially when under high CPU load.
Over the last few years, we have increased the amount of multithreading that the Path of Exile engine uses, which lets us take more advantage of modern CPUs with many threads (logical cores). Because of the dynamic shader system we use, shader uploads occur frequently throughout gameplay and currently may stall the entire game when they occur. In our DirectX11 backend, shader uploads happen on the background threads, but the graphics driver (the AMD/Nvidia/Intel layer) processes them before the GPU can use them. It does so in its own threads that can be starved when the CPU usage is high. In that case, driver processing appears to happen in the main thread, causing stalls. Somewhat ironically, the additional multithreading we have been adding over the years actually makes this problem worse, as it increases overall CPU usage (in order to get faster frame rates). Thankfully, this is where Vulkan comes in. Among many other improvements, this rendering API lets you do everything in function calls we have full control over, letting us completely avoid these uncontrollable DirectX11 graphics driver stalls.
Because there's no server component to the new renderer, the patch has been released without a full realm restart (so just restart your client to download it, whenever you're ready). Due to new shaders, the patch isn't tiny.
To access the new Vulkan renderer, launch the game and go to the Graphics Options screen. Then change the Renderer option to "Vulkan (Beta)". It should take effect without you having to relaunch Path of Exile.
The Vulkan renderer will not magically make your graphics card perform better than it previously did, but it will make performance a lot more consistent. This means that your peak frame rate will not increase, but you won't have anywhere near as many unpredictable spikes that were making the game feel stuttery and reducing average frame rate. Basically, this new renderer gives us complete control over how resources are managed, so we can tune it for Path of Exile's exact requirements.
On many systems, this renderer is actually marginally slower than the DirectX11 one at the moment. This is something we can easily improve over the coming weeks (and aim to by the release of 3.11). Basically, Vulkan gives you a much better framework for making optimisations, and we have barely begun to scratch the surface of this. You may find that even in its marginally-slower state, the significant frame rate stability difference makes it worth using. But the main goal at the moment is stability testing while we work on getting the frame rate as fast as possible through optimisation.
In addition, our Vulkan renderer will force texture detail to "Medium" on systems with less than 3gb of graphics memory. This means we can avoid any kind of stuttering/spikes as textures have to be moved between GPU and system RAM. This type of thing is something we are constantly iterating on and trying to find a solution that looks as good as possible while performing as well as it can. Our philosophy with the Vulkan renderer is frame rate consistency, so that players can enjoy Path of Exile without stuttering/spikes at arbitrary times. Performance will still be proportional to how much is going on on-screen, and better graphics cards will of course always help a lot.
Currently this renderer is in Beta, so there may be issues. Please report any rendering bugs that you encounter in the Bug Reports forum. It may be best not to play your most important hardcore characters with this Beta renderer until you're comfortable that it works well for you. We will rapidly fix reported issues and try to get it as final as possible by the release of 3.11. Eventually it will become the default renderer for Path of Exile.
If you get into a state where the game won't launch with the Vulkan renderer, then you can edit the production_Config.ini file (usually found in Documents\My Games\Path of Exile) and change renderer_type=Vulkan to renderer_type=DirectX11
Thanks very much for helping us test this renderer, and please let us know your feedback!
Last edited by a moderator: