https://bugs.winehq.org/show_bug.cgi?id=42154
Bug ID: 42154 Summary: Tomb Raider 2013 crashes with built-in xinput Product: Wine Version: 1.9.24 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: xinput Assignee: wine-bugs@winehq.org Reporter: joseph.kucia@gmail.com Distribution: ---
Tomb Raider 2013 crashes when starting. Reverting c0f77b4a4a2a389f54c3572156883eec6d6314d2 or setting xinput9_1_0 to native allows the game to start.
https://bugs.winehq.org/show_bug.cgi?id=42154
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |c0f77b4a4a2a389f54c35721568 | |83eec6d6314d2 Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=42154
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |39153
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #1 from Bruno Jesus 00cpxxx@gmail.com --- Does setting Windows version to 7 or higher helps? Is this the Steam version? Can you get a +module,+loaddll,+xinput please?
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #2 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Bruno Jesus from comment #1)
Does setting Windows version to 7 or higher helps? Is this the Steam version?
No, setting Windows version to 7 doesn't help. It's the Steam version.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #3 from Józef Kucia joseph.kucia@gmail.com --- Created attachment 56731 --> https://bugs.winehq.org/attachment.cgi?id=56731 +module,+loaddll,+xinput log
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #4 from Bruno Jesus 00cpxxx@gmail.com --- What could this mean?
trace:module:get_load_order_value got environment b for L"xinput9_1_0" trace:module:load_builtin_dll Trying built-in L"C:\windows\system32\xinput9_1_0.dll" warn:module:load_builtin_dll failed to load .so lib for builtin L"C:\windows\system32\xinput9_1_0.dll": /mnt/flashdrive/wineprefixes/tomb-raider-2013/dosdevices/c:/windows/syswow64/xinput9_1_0.dll: invalid ELF header
https://bugs.winehq.org/show_bug.cgi?id=42154
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
--- Comment #5 from Bruno Jesus 00cpxxx@gmail.com --- This also looks strange to me, but I don't know how to interpret it. All Wine xinput dlls point to 1.3. So if builtin can't be loaded things will go bad for sure.
trace:module:LdrGetDllHandle L"/home/joseph/src/wine/wine32-wow/dlls/xinput1_3/xinput1_3.dll.so" -> (nil) (load path L"C:\Program Files (x86)\Steam\steamapps\common\Tomb Raider;.;C:\windows\system32;C:\windows\system;C:\windows;C:\Program Files (x86)\Steam;C:\windows\system32;C:\windows;C:\windows\system32\wbem")
trace:module:load_dll looking for L"/home/joseph/src/wine/wine32-wow/dlls/xinput1_3/xinput1_3.dll.so" in L"C:\Program Files (x86)\Steam\steamapps\common\Tomb Raider;.;C:\windows\system32;C:\windows\system;C:\windows;C:\Program Files (x86)\Steam;C:\windows\system32;C:\windows;C:\windows\system32\wbem"
trace:module:get_load_order looking for L"C:\home\joseph\src\wine\wine32-wow\dlls\xinput1_3\xinput1_3.dll.so" trace:module:get_load_order got hardcoded default for L"C:\home\joseph\src\wine\wine32-wow\dlls\xinput1_3\xinput1_3.dll.so"
trace:module:load_builtin_dll Trying built-in L"xinput1_3.dll.so"
warn:module:load_builtin_dll cannot open .so lib for builtin L"xinput1_3.dll.so": /home/joseph/src/wine/wine32-wow/programs/xinput1_3.dll.so/xinput1_3.dll.so.so: cannot open shared object file: No such file or directory
warn:module:load_dll Failed to load module L"/home/joseph/src/wine/wine32-wow/dlls/xinput1_3/xinput1_3.dll.so"; status=c0000135
https://bugs.winehq.org/show_bug.cgi?id=42154
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Tomb Raider 2013 crashes |Tomb Raider 2013 (Steam) |with built-in xinput |crashes with built-in | |xinput
--- Comment #6 from Bruno Jesus 00cpxxx@gmail.com --- Unfortunately just like bug 42110 I can't reproduce this using the Steam version too. There is a missing link in all this that when found would for sure explain both bugs.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #7 from Bruno Jesus 00cpxxx@gmail.com --- Please get a +module,+loaddll,+tid,+xinput with patch https://bugs.winehq.org/attachment.cgi?id=56732
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #8 from Józef Kucia joseph.kucia@gmail.com --- Created attachment 56738 --> https://bugs.winehq.org/attachment.cgi?id=56738 +module,+loaddll,+tid,+xinput with patch https://bugs.winehq.org/attachment.cgi?id=56732
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #9 from Bruno Jesus 00cpxxx@gmail.com --- Thanks for the log, unfortunately no hints so far. The functions that are supposed to fail are failing, and the functions that are supposed to succeed are ok.
Xinput9_1_0 has only four functions but the game/steam is trying to load many others, but we have tests proving the functions do not exist.
So, I no clues so far. Unless this is a duplicate of 42110 in the sense that one or more functions are expected to be DECLSPEC_HOTPATCH.
The four functions present in 9.1.0 are:
XInputGetCapabilities XInputGetDSoundAudioDeviceGuids XInputGetState XInputSetState
The game/steam is also trying:
module:GetProcAddress (module 0xf2e20000, name 'XInputEnable') module:GetProcAddress -> (nil) module:GetProcAddress (module 0xf2e20000, name 'XInputGetAudioDeviceIds') module:GetProcAddress -> (nil) module:GetProcAddress (module 0xf2e20000, name 'XInputGetBatteryInformation') module:GetProcAddress -> (nil) module:GetProcAddress (module 0xf2e20000, name 'XInputGetKeystroke') module:GetProcAddress -> (nil) module:GetProcAddress (module 0xf2e20000, ordinal 100) module:find_ordinal_export ordinal 100 out of range! module:GetProcAddress -> (nil)
(all expected to be NULL)
https://bugs.winehq.org/show_bug.cgi?id=42154
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com
https://bugs.winehq.org/show_bug.cgi?id=42154
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dmitry@baikal.ru, | |erich.e.hoover@wine-staging | |.com, michael@fds-team.de, | |sebastian@fds-team.de Status|NEW |STAGED Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/xinput9_1_0-Pa | |rentsrc
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #10 from Matteo Bruni matteo.mystral@gmail.com --- Has anyone figured out the issue?
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #11 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Matteo Bruni from comment #10)
Has anyone figured out the issue?
Michael Müller has provided a proof-of-concept patch for Staging which uses PARENTSRC to compile the xinput9_1_0 dll independenty. According to my tests this fixes the bug. My suspicion is that the Steam (or Tomb Raider?) manually enumerates exports (probably in order to install hooks?) and can't deal with forwards. I am not sure how to verify this theory though. All the suspicious GetProcAddress calls for unimplemented functions seem to be harmless though. Probably they just wanted to write code compatible with various different versions of xinput.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #12 from Bruno Jesus 00cpxxx@gmail.com --- Another possibility is still that it expects a function to be hot patchable, I believe the only way to discard that is to make all functions hot patchable and try again. Since I cannot reproduce the issue I can't test this hypothesis.
By the way the functions are: XInputGetCapabilities XInputGetDSoundAudioDeviceGuids XInputGetState XInputSetState
Alistair contacted me by email about a similar issue in Microsoft Flight Simulator X, there using PARENTSRC also fixed the issue. And a different approach that also fixed the bug for him was to LoadLibraryA("xinput1_3.dll") inside DLL_PROCESS_ATTACH from xinput1_3 to ensure the library won't be unloaded.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #13 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Bruno Jesus from comment #12)
Another possibility is still that it expects a function to be hot patchable, I believe the only way to discard that is to make all functions hot patchable and try again. Since I cannot reproduce the issue I can't test this hypothesis.
By the way the functions are: XInputGetCapabilities XInputGetDSoundAudioDeviceGuids XInputGetState XInputSetState
I've just make those function hot patchable and Microsoft Flight Sim X still fails to load.
For me, the only approaches are, 1. Stop xinput1_3 from being unloaded or 2. Using the patch from staging.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #14 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Alistair Leslie-Hughes from comment #13)
- Stop xinput1_3 from being unloaded or
Could you check if the following patch works? http://ix.io/1QCN
It looks like Wine currently does not add any reference if the DLL used by forward was already loaded before.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #15 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Sebastian Lackner from comment #14)
(In reply to Alistair Leslie-Hughes from comment #13)
- Stop xinput1_3 from being unloaded or
Could you check if the following patch works? http://ix.io/1QCN
It looks like Wine currently does not add any reference if the DLL used by forward was already loaded before.
No, it still crashes on startup.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #16 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Alistair Leslie-Hughes from comment #15)
No, it still crashes on startup.
What about pinning the target of the DLL forward? http://ix.io/1QCU
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #17 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Sebastian Lackner from comment #16)
(In reply to Alistair Leslie-Hughes from comment #15)
No, it still crashes on startup.
What about pinning the target of the DLL forward? http://ix.io/1QCU
No. Same result.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #18 from Bruno Jesus 00cpxxx@gmail.com --- Alistair, can you get a +module,+loaddll,+tid with https://bugs.winehq.org/attachment.cgi?id=56732 patch?
I would like to compare the backtrace from Flight Simulator to Tomb Raider.
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #19 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Created attachment 56973 --> https://bugs.winehq.org/attachment.cgi?id=56973 As Requested +module,+loaddll,+tid
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #20 from Bruno Jesus 00cpxxx@gmail.com --- Thanks for the log, I can't see a backtrace nor GetProcAddr calls from attachment 56732 in it though.
But I can see things like:
0097:trace:module:MODULE_DecRefCount (L"xinput1_3.dll") ldr.LoadCount: 0
This is not present in Józef's log from Tomb Raider, I'm interested in the backtrace because in Tomb Raider there is a call to 0x00000000, I would like to check if the problem is the same in Flight Simulator case or if it is really trying to call a valid function pointer from a unloaded DLL.
https://bugs.winehq.org/show_bug.cgi?id=42154
Andrey Gusev andrey.goosev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andrey.goosev@gmail.com
--- Comment #21 from Andrey Gusev andrey.goosev@gmail.com --- I've set xinput9_1_0 to disable and it helps.
https://bugs.winehq.org/show_bug.cgi?id=42154
BieHDC byi5000@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |byi5000@gmail.com
--- Comment #22 from BieHDC byi5000@gmail.com --- I never had this bug? May you retry this in the newest?
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #23 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to BieHDC from comment #22)
I never had this bug? May you retry this in the newest?
I'm sure some people never had the bug (including me), but some other have and nothing changed since the last test so it is surely in the same situation.
https://bugs.winehq.org/show_bug.cgi?id=42154
Andrey Gusev andrey.goosev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Tomb Raider 2013 (Steam) |Multiple games crashes with |crashes with built-in |built-in xinput (Deus Ex: |xinput |Human Revolution, Thief | |(2014), Tomb Raider (2013))
https://bugs.winehq.org/show_bug.cgi?id=42154
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple games crashes with |Multiple games crashes with |built-in xinput (Deus Ex: |built-in xinput (Deus Ex: |Human Revolution, Thief |Human Revolution, Thief |(2014), Tomb Raider (2013)) |(2014), Tomb Raider (2013), | |Bejeweled 3)
https://bugs.winehq.org/show_bug.cgi?id=42154
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple games crashes with |Multiple games crash with |built-in xinput (Deus Ex: |built-in xinput (Deus Ex: |Human Revolution, Thief |Human Revolution, Thief |(2014), Tomb Raider (2013), |(2014), Tomb Raider (2013), |Bejeweled 3) |Bejeweled 3)
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #24 from Andrey Gusev andrey.goosev@gmail.com --- Created attachment 58565 --> https://bugs.winehq.org/attachment.cgi?id=58565 patch
Perhaps it's because XInputGetStateEx isn't present in 9_1_0
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #25 from Chris Y. emailofchris@gmail.com --- Created attachment 58646 --> https://bugs.winehq.org/attachment.cgi?id=58646 Details from the crash
Is this crash from the same thing? I can't get Deus Ex: HR to launch, thought this might be why seeing as it's the only bug listed on that AppDB page.
https://bugs.winehq.org/show_bug.cgi?id=42154
Chris Y. emailofchris@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |emailofchris@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=42154
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #26 from winetest@luukku.com --- (In reply to Chris Y. from comment #25)
Created attachment 58646 [details] Details from the crash
Is this crash from the same thing? I can't get Deus Ex: HR to launch, thought this might be why seeing as it's the only bug listed on that AppDB page.
Does disabling gameoverlayrenderer (the steam overlay thing) help?
https://bugs.winehq.org/show_bug.cgi?id=42154
--- Comment #27 from Chris Y. emailofchris@gmail.com --- (In reply to winetest from comment #26)
Does disabling gameoverlayrenderer (the steam overlay thing) help?
Actually yes, it does. The game does load now. (Though there are some other visual issues unrelated to it.) Thanks!
https://bugs.winehq.org/show_bug.cgi?id=42154
Chris Y. emailofchris@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|emailofchris@gmail.com |
https://bugs.winehq.org/show_bug.cgi?id=42154
mrdeathjr28@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mrdeathjr28@yahoo.es
https://bugs.winehq.org/show_bug.cgi?id=42154
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|STAGED |RESOLVED Fixed by SHA1| |0991e015316e382f787b1f5c93b | |483c3faf04b9b Resolution|--- |FIXED
--- Comment #28 from Józef Kucia joseph.kucia@gmail.com --- Fixed with commit 0991e015316e382f787b1f5c93b483c3faf04b9b
https://bugs.winehq.org/show_bug.cgi?id=42154
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #29 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.18.