https://bugs.winehq.org/show_bug.cgi?id=50261
Bug ID: 50261 Summary: Gothic2.exe complains about missing symbols from d3dcompiler_47 when used with GD3D11 renderer Product: Wine Version: 5.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: herrtimson@yahoo.de Distribution: ---
hey there,
I'm using wine-5.22 on gentoo multilib to play Gothic2 with the GD3D11 renderer from https://github.com/Kirides/GD3D11 , in combination with dxvk-1.7.3. This combination does work well, given that there is a dll override for ddraw.dll to prefere native over built-in
output from console for GothicStarter.exe with latest GD3D11 renderer is:
002c:err:winediag:WS_getaddrinfo Failed to resolve your host name IP WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely 0108:err:module:import_dll Loading library d3dcompiler_47.dll (which is needed by L"C:\windows\system32\d3d10.dll") failed (error c000035a). 0108:err:module:find_forwarded_export module not found for forward 'd3d10.D3D10CreateStateBlock' used by L"C:\windows\system32\d3d10_1.dll" 0108:err:module:import_dll Loading library d3dcompiler_47.dll (which is needed by L"C:\windows\system32\d3d10.dll") failed (error c000035a). 0108:err:module:find_forwarded_export module not found for forward 'd3d10.D3D10StateBlockMaskEnableAll' used by L"C:\windows\system32\d3d10_1.dll" 0108:err:module:import_dll Loading library D3DCOMPILER_47.dll (which is needed by L"C:\Program Files\JoWood\Gothic II Gold\System\DDRAW.dll") failed (error c000035a). 0108:err:module:import_dll Library DDRAW.dll (which is needed by L"C:\Program Files\JoWood\Gothic II Gold\System\Gothic2.exe") not found 0108:err:module:LdrInitializeThunk Importing dlls for L"C:\Program Files\JoWood\Gothic II Gold\System\Gothic2.exe" failed, status c0000135
which made me think of installing the missing d3dcompiler_47 via winetricks. But that didn't help at all.
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #1 from tt_1 herrtimson@yahoo.de --- the output if using Gothic2.exe instead of the mod loader is a bit more verbose:
0024:err:module:import_dll Loading library d3dcompiler_47.dll (which is needed by L"C:\windows\system32\d3d10.dll") failed (error c000035a). 0024:err:module:find_forwarded_export module not found for forward 'd3d10.D3D10CreateStateBlock' used by L"C:\windows\system32\d3d10_1.dll" 0024:err:module:import_dll Loading library d3dcompiler_47.dll (which is needed by L"C:\windows\system32\d3d10.dll") failed (error c000035a). 0024:err:module:find_forwarded_export module not found for forward 'd3d10.D3D10StateBlockMaskEnableAll' used by L"C:\windows\system32\d3d10_1.dll" 0024:err:module:import_dll Loading library D3DCOMPILER_47.dll (which is needed by L"C:\Program Files\JoWood\Gothic II Gold\System\DDRAW.dll") failed (error c000035a). 0024:err:module:import_dll Library DDRAW.dll (which is needed by L"C:\Program Files\JoWood\Gothic II Gold\System\Gothic2.exe") not found 0024:err:module:LdrInitializeThunk Importing dlls for L"C:\Program Files\JoWood\Gothic II Gold\System\Gothic2.exe" failed, status c0000135
Are these some missing symbols in wine?
I've also seen problems with internal symlinks (?) over at https://bugs.winehq.org/show_bug.cgi?id=49042
https://bugs.winehq.org/show_bug.cgi?id=50261
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |o.dierick@piezo-forte.be Status|UNCONFIRMED |NEEDINFO
--- Comment #2 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to tt_1 from comment #0)
I'm using wine-5.22 on gentoo multilib to play Gothic2 with the GD3D11 renderer from https://github.com/Kirides/GD3D11 , in combination with dxvk-1.7.3. This combination does work well, given that there is a dll override for ddraw.dll to prefere native over built-in
Hello,
What do you mean it does work well? With what combination do those DLL failures show, then?
Please, clarify.
0108:err:module:find_forwarded_export module not found for forward 'd3d10.D3D10CreateStateBlock' used by L"C:\windows\system32\d3d10_1.dll"
0108:err:module:find_forwarded_export module not found for forward 'd3d10.D3D10StateBlockMaskEnableAll' used by
Both functions are defined in the Wine source code. Is d3d10 set to native in winecfg?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #3 from tt_1 herrtimson@yahoo.de --- Created attachment 68813 --> https://bugs.winehq.org/attachment.cgi?id=68813 screenshot with dx11 via dxvk
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #4 from tt_1 herrtimson@yahoo.de --- Created attachment 68814 --> https://bugs.winehq.org/attachment.cgi?id=68814 dx11 log from console
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #5 from tt_1 herrtimson@yahoo.de --- I have dll overrides for these dll files, they are from dxvk:
d3d10core (native) d3d11 (native) d3d9 (native) dxgi (native)
and also ddraw (native, builtin) ; otherwise the renderer doesn't pick up the dx11 path.
This setup breaks, when I update the GD3D11 renderer to dev12 or newer.
You may want to download the archive with the precompiled libs and have a look at it: https://github.com/Kirides/GD3D11/releases/download/v17.7-dev15/Gothic2-GD3D... it ships it's own ddraw and d3dcompiler_47 dll
https://bugs.winehq.org/show_bug.cgi?id=50261
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |UNCONFIRMED Ever confirmed|1 |0
--- Comment #6 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
There is a bug in GD3D11: https://github.com/Kirides/GD3D11/issues/25
The d3dcompiler_47.dll shipped with GD3D11 was 64-bit. The game is 32-bit so Wine couldn't load that native DLL.
There was an update to GD3D11 3 hours ago to fix it: https://github.com/Kirides/GD3D11/commit/44b2746ffb06c3c26979f65a61112e7a960...
Please retest with updated GD3D11: https://github.com/Kirides/GD3D11/releases/tag/v17.7-dev15-fix1
Regards.
https://bugs.winehq.org/show_bug.cgi?id=50261
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Gothic2.exe complains about |Gothic2.exe can't load |missing symbols from |native d3dcompiler_47 from |d3dcompiler_47 when used |GD3D11 dev12 or newer |with GD3D11 renderer |(application bug: wrong | |architecture)
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #7 from tt_1 herrtimson@yahoo.de --- yeah, it was me who filed that bug after poking the dll files randomly.
thing is, the GD3D11 renderer ships some additional third party dll files. Gothic2.exe starts to look in the same dir it resides for dll files it needs, and before the update it picked the wrong X86_64 dll file and got really angry.
GD3D11 upstream now ships with X86 dll file, but it's slightly updated and now asks for CRYPTSP.dll - wine doesn't seem to ship this, and winetricks doesn't offer it. So I copied CRYPTSP.dll from my old Win7 install right into the System Folder of Gothic2 and got a working application.
better solution is propably to remove d3dcompiler_47.dll and reinstall it with winetricks, this doesn't need additional CRYPTSP.dll cause it's an older version of the lib it seems.
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #8 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
--- quote https://github.com/Kirides/GD3D11/issues/25#issuecomment-739973976 --- the d3dcompiler_47.dll is used to compile the used shaders at runtime.
i deploy the latest available version of it with the renderer. Because some systems do not come shipped with it. --- end of quote ---
As far as I understand, GD3D11 ships an unmodified d3dcompiler_47.dll for systems that don't have it. It's not a specially modified version specific to GD3D11.
Wine ships its own d3dcompiler_47.dll, you theoretically shouldn't have to use the native DLL that come with GD3D11. What happens when you force d3dcompiler_47.dll to 'builtin only' in winecfg?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=50261
--- Comment #9 from tt_1 herrtimson@yahoo.de --- Created attachment 68827 --> https://bugs.winehq.org/attachment.cgi?id=68827 non working wine built-in d3dcompiler_47
As far as I understand, GD3D11 ships an unmodified d3dcompiler_47.dll for systems >that don't have it. It's not a specially modified version specific to GD3D11.
that's correct, the d3dcompiler_47 dll is a binary blob and was added because some win systems may need it. I don't know which one.
using built-in d3dcompiler_47 dll gives an error, as shown on the screenshot. I think it corresponds to https://github.com/Kirides/GD3D11/blob/master/D3D11Engine/Shaders/VS_Ex.hlsl...
do you think this is a bug in wine implementation of d3dcompiler_47?
P.S: this is fixable by using the d3dcompiler_47 dll override provided by winetricks
https://bugs.winehq.org/show_bug.cgi?id=50261
tt_1 herrtimson@yahoo.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |NOTOURBUG
--- Comment #10 from tt_1 herrtimson@yahoo.de --- closing, upstream picked the wrong dll when packing their release