https://bugs.winehq.org/show_bug.cgi?id=50232
Bug ID: 50232 Summary: Path of Building: Crashes when loading Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: tlund@ymail.com Distribution: ---
Created attachment 68739 --> https://bugs.winehq.org/attachment.cgi?id=68739 Backtrace from running wine
I'm a developer for Path of Building, working on this issue: https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/1678 On Wine, Path of Building crashes upon startup.
You can download a standalone ZIP of the program here: https://github.com/PathOfBuildingCommunity/PathOfBuilding/releases/download/...
We ship a custom graphics DLL with PoB, and recently open sourced it, changing some code to make it license-friendly mostly. Here is that repo: https://github.com/PathOfBuildingCommunity/PathOfBuilding-SimpleGraphic
I submitted a patch to fix our library, but the patch mostly consists of removing the offending call to ShowWindow. Here is the patch: https://github.com/PathOfBuildingCommunity/PathOfBuilding-SimpleGraphic/pull...
I'm thinking there is a bug in Wine regarding that function call, as the program works fine in Windows.
Attached are output files from the following commands: 1. wine Path\ of\ Building.exe
Note that this was run in a VM on a fresh copy of Ubuntu 20.04.1 and wine was installed through apt install.
https://bugs.winehq.org/show_bug.cgi?id=50232
--- Comment #1 from tlund@ymail.com --- Created attachment 68740 --> https://bugs.winehq.org/attachment.cgi?id=68740 winedbg relay channel output
Unfortunately, the output of: WINEDEBUG=+relay winedbg Documents/Path\ of\ Building.exe
Is too large to upload here or on pastebin, but I've attached a snippet of the output.
There's a call to ShowWindow without a return at ret=00799505, which I think is causing the crash. If I set the second parameter to the ShowWindow call to something other than 'SW_HIDE', the program runs fine, just shows the window instead.
https://bugs.winehq.org/show_bug.cgi?id=50232
tlund@ymail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |5.5
https://bugs.winehq.org/show_bug.cgi?id=50232
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download CC| |z.figura12@gmail.com URL| |https://github.com/PathOfBu | |ildingCommunity/PathOfBuild | |ing/releases/download/v1.4. | |170.16/PathOfBuildingCommun | |ity-Setup-1.4.170.16.zip
https://bugs.winehq.org/show_bug.cgi?id=50232
tlund@ymail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Path of Building: Crashes |Path of Building: Crashes |when loading |when loading (Calling | |ShowWindow(hwnd, SW_HIDE) | |internally)
https://bugs.winehq.org/show_bug.cgi?id=50232
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |zzhang@codeweavers.com
--- Comment #2 from Zhiyi Zhang zzhang@codeweavers.com --- Confirmed with wine-5.22
https://bugs.winehq.org/show_bug.cgi?id=50232
--- Comment #3 from Zebediah Figura z.figura12@gmail.com --- The application crashes inside of the window procedure for "SimpleGraphic Class" while handling WM_ACTIVATEAPP. It's basically expecting none of the calls in the sys_video_c constructor [1] to trigger WM_ACTIVATEAPP, but Wine does send WM_ACTIVATEAPP while taking focus from the
[1] https://github.com/sthalik/PathOfBuilding-SimpleGraphic/blob/2af2596819e7129...
https://bugs.winehq.org/show_bug.cgi?id=50232
--- Comment #4 from Zebediah Figura z.figura12@gmail.com --- Sorry, accidentally hit submit.
The application crashes inside of the window procedure for "SimpleGraphic Class" while handling WM_ACTIVATEAPP. It's basically expecting none of the calls in the sys_video_c constructor [1] to trigger WM_ACTIVATEAPP, but Wine does send WM_ACTIVATEAPP while taking focus from the window. I'll have to check to see whether that's correct, but I'm not immediately sure why it wouldn't be.
[1] https://github.com/sthalik/PathOfBuilding-SimpleGraphic/blob/2af2596819e7129...
https://bugs.winehq.org/show_bug.cgi?id=50232
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source Summary|Path of Building: Crashes |Path of Building crashes |when loading (Calling |while loading |ShowWindow(hwnd, SW_HIDE) | |internally) |
https://bugs.winehq.org/show_bug.cgi?id=50232
--- Comment #5 from Zebediah Figura z.figura12@gmail.com --- It's a bit of an odd case. The application creates one visible window ("SimpleGraphic Console") on a separate thread, then creates another visible window ("SimpleGraphic") on the main thread, then hides it.
On Windows, after the second window is created, it is active but the first is still foreground. On Wine, the second is foreground. On Windows, the second window doesn't actually become deactivated as a result of SW_HIDE, apparently because it's not foreground; I'm not sure whether Wine correctly accounts for this, but it's a moot point since the window isn't foreground anyway.
Focus is my least favourite part of user32. I could probably write a hack if necessary, but I am rather disinterested in fixing this bug upstream personally.