[Official] WINE info thread

So I just wanted to add my 2 cents about how I got it to work with DirectX11.

Hardware:
AMD FX6300 CPU
AMD RX480 GPU
16 GB DDR3 Ram
256GB SSD Drive

Software:
Arch Linux (4.15.9-1-ARCH kernel)
xf86-video-amd 18.0.1 (amdgpu opensource)
mesa 17.3.6

For wine I'm using my own package hosted over at the AUR (Arch User Repository):
https://aur.archlinux.org/packages/wine-staging-pba-git/

To put it short I'm on the git versions of wine 3.3, staging 3.3, the wine-pba patches applied which works wonders for my dx9/dx11 performance, and a little extra patch applied to allow DX11 in Path of Exile. You can find all the info, files, links and build details in the PKGBUILD file in the above link, if you're interested.

I'm running PoE in a fresh 64bit wine prefix created after installing the above wine version. I set windows version to windows10, and I'm using the staging options for accelerated video decoding and EAX sound effects. So no, I'm not disabling the sound.

The following settings in the ~/'Documents/My Games/production_Config.ini' are important:

[Display]
directx_version=11
dx11_antialias_mode=0
use_dynamic_resolution=false
vsync=false

[GENERAL]
engine_multithreading_mode=disabled

[UI]
show_corner_map=false


To explain a little further , dx11 is needed to avoid insane stuttering, as none of these things really helped at all with the dx9 32bit client. The antialiasing must be turned off or you'll just get a white screen with dx11, the dynamic resolution is a stupid setting you never want, as is vsync (I have a tearfree option in my amdgpu driver settings anyway). I've turned off the PoE engine multithreading and leave this to CSMT in wine instead. And I've turned off the corner map because sadly the maps are totally invisible with DirectX11.

I'm running Path of Exile with:
wine ./'PathOfExile_x64.exe' --garbage-generation 1 --waitforpreload

The initial loading time after the grinding gears animation is notably longer than before, but having most of the common spell effects and similar preloaded really helps with the stuttering. The stuttering is at a very low and tolerable level with these settings.

So apart from the non-working maps which has me playing after personal rules like "always go left until all is covered", I've finally gotten PoE to run in Linux. Yay!

Hope this helps some of you! :)
Last edited by Goldpaw on Mar 17, 2018, 9:30:06 AM
Good work Goldpaw. I can confirm that your package works well for me with an Nvidia GTX 760 and is the one I was using to test PBA out in my recent posts in this thread. Nice to see that you've added the PoE DX11 fix to it as well.

I'm close to sure that the invisible maps problem is a new one as I don't recall this occuring when I was doing testing a few days ago and a week ago which was with vanilla and patched versions of 3.3. So I imagine it was something with the 3.2.1 game patch.

Edit: I managed to get DXVK to work with your patch, which means the Staging + PBA + DXVK dream is now real! As a direct comparison between wined3d and DXVK I seem to be getting an improvement of 10-20 FPS at all times. So this is easily the best performance I think I can get right now.
same name in-game
Last edited by iao on Mar 18, 2018, 6:32:27 AM
Does Staging + PBA + DXVK crash after a while?

I'm getting fairly decent performance with 3.3/3.4, but the game typically crashes after 15-25 minutes. Often with "cannot allocate thread" or similar message.
"
hetjo wrote:
Does Staging + PBA + DXVK crash after a while?
I'm getting fairly decent performance with 3.3/3.4, but the game typically crashes after 15-25 minutes. Often with "cannot allocate thread" or similar message.


Short answer:
yes, all versions do.

Short solution:
add the following launch arguments:
--garbage-generation 1 --waitforpreload

Longer answer:
First of all it sounds like you're trying to mesh together all the good wine branches to get the best of the best. But that doesn't work.

wine-pba works by patching the way wine translates D3D calls to OpenGL, while DXVK works by translating the D3D calls to Vulkan instead. Meaning that wine-pba and DXVK are mutually exclusive. If you're using DXVK, you're not getting wine-pba. Or in super simple terms: wine-pba adds an extra door in your house so you can move faster through it, but it doesn't help when you're using DXVK, because then you're in a completely different house! :D

Also worth mentioning that DXVK is a 64bit only patchset. It works by translating D3D11 and 11 only to Vulkan. It does not support D3D9 which the 32bit client uses. Meaning it only supports the 64bit version of PoE with DX11 chosen.

Having that out of the way, try running the path of exile file with the launch options I mentioned in my previous post:

wine ./'PathOfExile_x64.exe' --garbage-generation 1 --waitforpreload

Where you ofc change your path to the exe file accordingly.

What those arguments do is to first preload all the common spell effects. This will increase the load time, but prevent a LOT of the stutter! And the garbage thingie argument, what that does is to empty the other less important cached stuff much more often. For me this has removed all the out of memory crashes.
Last edited by Goldpaw on Mar 19, 2018, 4:12:11 PM
With just the difference of having the PBA patches, DXVK runs better for me. But I can't make sense of it really. I've skimmed through the code and it only applies to wined3d.

Edit: Unsurprisingly it turned out to be something else altogether.
same name in-game
Last edited by iao on Mar 20, 2018, 2:45:51 AM
that does sound pretty great, @goldpaw.
but, I just cant seem to make sense of what I'm supposed to do, as shameful as that is. how can I install this version of wine from git? I managed to clone the repository... but now I'm looking at it dumbfounded.
maybe I am a stupid beast :<
Well it's made for arch linux, it's a part of the Arch User Repository (AUR), which Arch and Manjaro users know what to do with.

If you're using another distro, or if you're not familiar with bash scripting and building and compiling wine yourself, then I really can't offer much help right here and now. This isn't a ready to install package, and setting up a build environment for wine isn't done in a heartbeat.

I guess I could attempt to write a more general guide to get this version, but that'll take a little time to get ready. Time as in days. Minimum. :)

But I'll see what I can do!
Oh, thanks a lot! I thought I was just being a complete noob, now it makes a lot more sense.
If you do, I would be grateful. I can see that being a lot of work, too!
Note: the wine-pba patch number 0008 fails to apply to latest git wine source/
I had to patch the patch (!?!), and figured out it is a known issue : https://github.com/acomminos/wine-pba/issues/45

Thanks you so much Goldpaw for the aur package :)
"
Goldpaw wrote:
"
hetjo wrote:
Does Staging + PBA + DXVK crash after a while?
I'm getting fairly decent performance with 3.3/3.4, but the game typically crashes after 15-25 minutes. Often with "cannot allocate thread" or similar message.


Short answer:
yes, all versions do.

Short solution:
add the following launch arguments:
--garbage-generation 1 --waitforpreload


Tried it out. Performance is not really better or worse, but the client can go additional time before performance gets worse. It also tends to deteriorate over time instead of just crashing.

"
Goldpaw wrote:

Longer answer:
First of all it sounds like you're trying to mesh together all the good wine branches to get the best of the best. But that doesn't work.

wine-pba works by patching the way wine translates D3D calls to OpenGL, while DXVK works by translating the D3D calls to Vulkan instead. Meaning that wine-pba and DXVK are mutually exclusive. If you're using DXVK, you're not getting wine-pba. Or in super simple terms: wine-pba adds an extra door in your house so you can move faster through it, but it doesn't help when you're using DXVK, because then you're in a completely different house! :D

Also worth mentioning that DXVK is a 64bit only patchset. It works by translating D3D11 and 11 only to Vulkan. It does not support D3D9 which the 32bit client uses. Meaning it only supports the 64bit version of PoE with DX11 chosen.


Thanks for the explanation. I might try and compile wine with the pba patches myself.

Report Forum Post

Report Account:

Report Type

Additional Info