protonscr

Path of Exile fails to launch with "Failed to create WIC Factory"

dxvkclosed wine bug
doitsujin/dxvk#28 · opened 2018-01-22 by gravndal · updated 2018-07-11 · 6 comments · github
Ggravndal 2018-01-22 github

Wine proper has the same issue for whatever it's worth: https://bugs.winehq.org/show_bug.cgi?id=42695

Software information

DXVK https://github.com/doitsujin/dxvk/commit/05f00088919467b312888f15d8f38f66b1b0e7f5

https://www.pathofexile.com/
Also available on steam if that's of interest: http://store.steampowered.com/app/238960/Path_of_Exile/

Everything low with:

[DISPLAY]
directx_version=11

The game defaults to dx11 on Windows 7+ afaik.

System information

  • GPU: RX480
  • Driver: mesa 17.3.2
  • Wine version: Staging 2.21

Apitrace file(s)

Running $ apitrace trace -o poe.trace wine /path/to/PathofExile_x64.exe did not generate a trace.

Log files

Ddoitsujin maintainer 2018-01-22 github

Not directly related to D3D11, this is something that needs to be fixed in Wine.

Ggravndal 2018-01-22 github

Yeah I completely missed the ++ b/dlls/ole32/compobj.c in https://bugs.winehq.org/attachment.cgi?id=59204&action=diff making it seem like the diff only touched b/dlls/dxgi/utils.c.

Anyway, running it with the relevant bit of the patch applied yields a different results:

Still no apitrace.

Kkakra 2018-06-20 github

@gravndal Did you have any progress in solving this last exception you reported? Because I'm stuck at the same stage.

Ggravndal 2018-06-20 github

@kakra The game runs just fine with Mesa 18.1.1, and recent builds of DXVK and Wine Staging with the relevant half of the patch I linked applied, namely:

--- a/dlls/ole32/compobj.c
+++ b/dlls/ole32/compobj.c
@@ -3213,6 +3213,7 @@
 {
     MULTI_QI multi_qi = { iid };
     HRESULT hres;
+    CoInitialize(NULL);
 
     TRACE("(rclsid=%s, pUnkOuter=%p, dwClsContext=%08x, riid=%s, ppv=%p)\n", debugstr_guid(rclsid),
           pUnkOuter, dwClsContext, debugstr_guid(iid), ppv);
Kkakra 2018-06-20 github

This fix didn't help here, and according to latest updates in the wine bug tracker, it is also no longer needed. But let me try again, I'll report back. I first want to fix rendering issues I'm seeing in Witcher 3 with DXVK to sort other potential problems out.

Let me correct this: I indeed already have it in my bugfixes patchset:
https://github.com/kakra/wine/commit/3c2114165b39f1fd9cad7b24f3d13ad9542224e5

Kkakra 2018-07-11 github

Meanwhile, I've fixed another problem (PoE couldn't load textures). My wine patchsets include the windowscodecs patches from staging which fixes this problem and it runs flawlessly. I'm currently in the process of upgrading the patches to wine-3.12. You can have a look here:

https://github.com/kakra/wine

Please export patches from the branches as you feel needing them. patches-3.xx/wincodecs is definitely one of the needed patches. The patches are based against vanilla wine and work with dxvk. I'm running it successfully: PoE works mostly without stutters (only when shaders are seen the first time), and works pretty well in 4k resolution (40+ fps) without dynamic resolution dropping it back to 1/2 resolution.

The pulseaudio patches allow PoE to see your headset/headphones as a separate device so you can assign them within PoE.

The rest are some more or less necessary bugfixes and performance patches you may want to use. This patchset also runs other games here like Skyrim SE and Witcher 3 with DXVK without problems so far.

Upstream links