HOWTO: PoE on Linux in DX11 mode w/ SteamPlay (Proton) or Lutris

EDIT: Delve has broken things but presidentbiggles has a solution for us.
"

presidentbiggles on github has a working solution for us. It runs but we're stuck with windowed 1920x1080 for now.

"
...Edited my production_Config.ini file for the game and changed directx_version= to 9, borderless_windowed_fullscreen=false, fullscreen=false. From here I verified that the game would load for me, changed to direct9ex, that worked, and then changed to directx11, and that now works in windowed mode
...
edit: Fullscreen, Fullscreen windowed and changing resolutions all seem to be a culprit here. So long as I am windowed and set the resolution I want in the config file the game handles perfectly fine.


Removing --gc2 from your launch options might also help. Several other people are reporting success with this method as long as you don't try changing the resolution away from windows 1920x1080.




Working copy of my notes
Spoiler
I'll also work up some notes for getting tools like PoE-TradeMacro to work.

Some resources:

Proton issue containing some troubleshooting a good version of the bins to download: https://github.com/ValveSoftware/Proton/issues/58

Steam community discussion about getting 'other' programs to work in Proton: https://steamcommunity.com/app/221410/discussions/0/1734336452578488603/

Run a program with Proton: https://dd.reddit.com/r/linux_gaming/comments/9au2qp/how_do_i_use_proton_via_command_line/
-also-
https://dd.reddit.com/r/SteamPlay/comments/9atr2r/how_do_i_use_proton_via_the_command_line_on_linux/
-also-
https://dd.reddit.com/r/linux_gaming/comments/9bjj4u/can_i_use_steam_compatibility_layers_for_nonsteam/

winetricks for Proton (although winetricks should work anyway): https://dd.reddit.com/r/linux_gaming/comments/9avot4/github_sirmentioprotontricks_a_simple_wrapper/

wwine - a wrapper for wine (bottle management?): https://gitlab.com/zerodogg/wwine/tree/master




This is a summary post of the excellent 200-page thread on Wine https://www.pathofexile.com/forum/view-thread/8980 where the community has finally gotten PoE to a playable state on linux. No more crashes or stuttering!

There is a version of this post on github that is easier to read: https://github.com/tainium/PoE-Lutris-DXVK
Spoiler

PoE-Lutris-DXVK

A HOWTO for Path of Exile on Ubuntu via Lutris and DXVK

There have been several recent advances that finally make PoE on Linux playable with good performance. PoE previously ran on Wine DirectX 9 with poor performance, frequent crashes and severe stuttering while loading shaders. doitsujin's DXVK enabled DX11 support which dramatically improved performance and eliminated crashes. Stuttering was still a problem that DXVK was unable to address but a 'gross hack' was devised by jomihaka and now maintained by BlazeKI including binaries. This hack enables DXVK to use 'placeholder' shaders while proper ones are becoming compiled on-the-fly. This feature won't be included in DXVK and so this patch will be necessary to run PoE for the foreseeable future. Wine ESYNC further improved performance by reducing CPU overhead. All of these pieces together (thanks to Lutris) enable a playable PoE! A Vulkan-capable DX11 NVIDIA GPU is required as DXVK currently doesn't support AMD (though it might work).

This is written for DXVK version .65 on Ubuntu 18.04 but DXVK is new and evolving rapidly so it will likely be obsolete by the time i click commit.
Requirements:

Vulkan-capable DirectX11 NVIDIA GPU
NVIDIA drivers version 396.24+
Wine >= 3.5 (You can install via this HOWTO)
Wine dependencies - Installing latest Wine-Staging into your system to pull in dependencies is recommended.
Mesa 18.1.2
root access and comfort using PPAs
64bit Ubuntu 18.04

Basic HOWTO steps

Install or update your NVIDIA drivers to version 396.24 or newer
Install Vulkan

sudo apt install libvulkan1 libvulkan1:i386

Install Wine Staging via PPA. Lutris doesn't install it as a dependency and doesn't document that you need Wine as a separate installation (https://lutris.net/downloads/). Don't just 'apt install' it! Our bleeding-edge setup needs the 'staging' version from the offical Wine PPA: https://wiki.winehq.org/Ubuntu
Install Lutris from their PPA https://lutris.net/downloads/
Install the Lutris runners. The offical instructions are here (https://github.com/lutris/lutris/wiki/How-to:-Esync) but I'll add some comments. The 'versions' image is rather cryptic. Access that dialog by launching Lutris and in the GUI click Lutris then 'manage runners' and scroll down to Wine and click 'manage versions'. You can install the different versions by single-clicking on the box and waiting for the download to start (the box doesn't get checked...just wait). This takes a while to download and you can download more than one at a time.
Install PoE (the standalone DXVK version) via the Lutris web installer https://lutris.net/games/path-of-exile/
Install the patched DXVK.
Download the release binaries from BlazeKI: https://github.com/BlazeKl/dxvk-async-hack/releases and then unpack them to a custom location that Lutris is able to find. Example: ~/.local/share/lutris/runtime/dxvk/0.65_POEhack
Configure the Lutris runner (Lutris->Right-Click PoE->Configure->Runner Options):

Ensure that the esync runner is selected. (currently esync-3.13-x86_64)
Click 'Enable DXVK'
Type in the folder name of the aforementioned location where you unpacked the patched DXVK bins (0.65_POEhack)

Set cpu to performance (per DXVK's documentation):

sudo apt-get install cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable ondemand

Set env vars in the Lutris interface for PoE's configuration (Lutris->Right-Click PoE->Configure->System Options->Show Advanced Options->Environment variables):

DXVK_USE_PLACEHOLDER_SHADERS=1
DXVK_USE_PIPECOMPILER=1
WINEESYNC=1

OPTIONAL: Unselect: Lutris->POE->Configure->System Options->Advanced Options-> Disable Lutris Runtime. This isn't documented anywhere but I had to do it on both of my test rigs to get the game to start. Try skipping this step and let me know if you find another solution. The Lutris runtime is a sort of lightweight version of Wine that Lutris provides in an effort to support a base library of game out-of-the-box.

Play PoE! It should be playble now without adjusting any in-game options. You can adjust them for your own performance preference but some people report that doing so can resurrect the shader compilation problems.







(I made posted this outside of the Wine thread because this solution isn't really Wine-centric and that thread supports many other efforts and platforms.)



Last edited by tainium on Sep 1, 2018, 11:31:44 AM
Last bumped on Apr 8, 2023, 2:15:20 PM
its very good that there are people who invest all that research and work to push it forward - but what does it help if there are massive performance increases with dx11 if there is no way to play without shadows then; and as all improvements are eaten up by the disadvantages of 'missing' true fullscreen? (own experiences under - still - windows)
invited by timer @ 10.12.2011
--
deutsche Community: www.exiled.eu & ts.exiled.eu
I don't think I understand. Your goal is to play without shadows? This configuration allows for low- and high-quality shadows but it does seem that DX9 is required if you want to completely disable shadows.

Perhaps you were referring to the shader (unrelated to shadows) patch that almost completely eliminates stuttering by using non-optimal shaders...but that really only applies to mobs exploding (in my experience) so you never see those shaders anyway.

I've tested windowed and windowed-fullscreen modes with great results. YMMV, ofc.
Thanks for posting this in a separate thread. It's important information and a new development for us on Linux, making it genuinely playable, totally without crashes.

I'd just like to add that I've not used the hack you mention, and the game runs perfectly anyway. At least 99.9% of the time. Once in a blue moon there are lags, I just had one yesterday, but don'ẗ recall when the one before that happened. Probably weeks ago. I'm going to venture a guess that the "ShaderCacheD3D11" folder matters a good deal here. It has thousands of files on my end.
You're almost certainly correct about the cache. There is an active bug being tracked by NVIDIA regarding the shader cache being hard-limited to 128MB. Many people think that raising the limit would fix this problem and many others for other games.

I wonder how you managed to eliminate the shader caching and compiling stutter without using the patch. Did you develop some breakthrough configuration technology without realizing it?
"
tainium wrote:
You're almost certainly correct about the cache. There is an active bug being tracked by NVIDIA regarding the shader cache being hard-limited to 128MB. Many people think that raising the limit would fix this problem and many others for other games.

I wonder how you managed to eliminate the shader caching and compiling stutter without using the patch. Did you develop some breakthrough configuration technology without realizing it?


Doubt I'm doing something particularly revolutionary, as I pretty much just installed Lutris, updated drivers, and used the script (it has been updated since, but can't imagine much has changed). I also have the game installed in PlayOnLinux, but again I can't imagine that matters. Maybe I've just been fortunate that POE and Lutris likes my particular composition of hardware? No idea really. But the game runs pretty much perfectly. I don't really have any complaints.

Looking in Lutris options, I'm using DXVK 0.63 and the Lutris runtime is set to Disabled (whatever that does).

I have graphics on low settings (it's how I tried it to begin with, for safety, and haven't changed them). Postprocessing is off, Vsync is on, Dynamic resolution is off, multithreading off, and I'm using Windowed Fullscreen.

This is on Linux Mint 18.2 Cinnamon with Nvidia 770 GTX on the 396.x drivers. Those drivers are installed using the graphics-drivers PPA, which I suppose everybody else use as well.

Whatever is causing it, I'm just glad it worked like a charm. It was really frustrating to have the game crash every 15-20 minutes while using DX9Ex. Sometimes even quicker. And it was always a pain to do the labs or Rotten Core (etc), or any area where you need to play continuously for a good while.
"
tainium wrote:
I don't think I understand. Your goal is to play without shadows? This configuration allows for low- and high-quality shadows but it does seem that DX9 is required if you want to completely disable shadows.

Its indeed about shadows - like for many others, even with 'light' settings (the lowest possible on dx11) I have too many situations where low lights ("deeper" dungeons like in prison, but also just between trees in the forests) adds up to barely seeing anything from the rapidly decreasing contrasts. And I refuse to manually adjust gamma (with external tools) to a value that would 'correct' it.

"
tainium wrote:
I've tested windowed and windowed-fullscreen modes with great results. YMMV, ofc.

I'm still on W7 (with POE as a big part of the reasons), with a 'medium' I5 and graphic power slightly below RX480 - and the interference between the game and the background-rendered desktop cuts the whole performance down way below half from what its in 'real' fullscreen. I still have (many) situations with other chars effects in towns that turn even the really good performance into basically unplayable stutter; and the 'final' issue is that its impossible to use (and switch to) anything else in backgrounds with windowed-fullscreen.
invited by timer @ 10.12.2011
--
deutsche Community: www.exiled.eu & ts.exiled.eu
"
Mr_Cee wrote:
and the 'final' issue is that its impossible to use (and switch to) anything else in backgrounds with windowed-fullscreen.

Do you mean to for instance Ctrl+Alt+left/right arrow to change workspace? (this works on Mint, not sure if Ubuntu and other distros use other shortkeys)

I do this very frequently while playing, and haven't had any serious issues. Sometimes the mouse is a little funky when I use Path of Building via Wine, but other than that I can use the computer as usual. Typically switch workspaces like this to check something in the forum, looking for trades, or to see what nodes to pick when levelling up, change music, etc.

Not noticed your shadow issue either. Though I have seen a few times that the lights appear to go out for a few seconds, perhaps after heavy fighting with lots of stuff going on. It comes back after a few seconds though, so not a big issues, and it doesn't go pitch black either.
"
Mr_Cee wrote:
I'm still on W7 (with POE as a big part of the reasons), with a 'medium' I5 and graphic power slightly below RX480 - and the interference between the game and the background-rendered desktop cuts the whole performance down way below half from what its in 'real' fullscreen. I still have (many) situations with other chars effects in towns that turn even the really good performance into basically unplayable stutter; and the 'final' issue is that its impossible to use (and switch to) anything else in backgrounds with windowed-fullscreen.
If you're having that many problems with Windows 7 on your hardware then it sounds like Linux isn't an option for you. You might even have better luck falling back to Win7+DX9.
Made a post in original Wine thread, if anyone interested...
...on fully AMD machine BTW
Also using Lutris, Wine-Esync and dxvk-poe-patch (linked in this thread)

It runs better than native DX11 windows version now, at least for me.



PoE in linux, and it's running smooth finally!
“Three great forces rule the world: stupidity, fear and greed.”
― Albert Einstein
Last edited by jozefch on Aug 20, 2018, 2:14:14 PM

Report Forum Post

Report Account:

Report Type

Additional Info