https://bugs.winehq.org/show_bug.cgi?id=54810
Bug ID: 54810 Summary: PmxEditor 0.2.7.5 doesn't start after Wine 8.4. Product: Wine Version: 8.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: sagawa.aki+winebugs@gmail.com Distribution: Ubuntu
Created attachment 74303 --> https://bugs.winehq.org/attachment.cgi?id=74303 Full console output
PmxEditor is an editor software for PMX (MikuMikuDance's next generation model data) file. It starts fine with Wine 8.3 and some native modules. But, after Wine 8.4, the executable doesn't start anymore and shows X Error (BadWindow) in the console.
Steps to reproduce: 1. Download PmxEditor_0275.zip from https://kkhk22.seesaa.net/article/498439954.html because the author disallows deep linking. 2. Create a new 32-bit Wine prefix, e.g. export WINEPREFIX=$HOME/.wine-pmxeditor WINEARCH=win32 3. Download winetricks and run as follows: % ./winetricks d3dcompiler_43 d3dxof d3dx9_43 dotnet48 vcrun2010 vcrun2022 4. Create a work directory for PmxEditor and extract the archive. % mkdir $WINEPREFIX/drive_c/works % cd $WINEPREFIX/drive_c/works % unzip ~/Downloads/PmxEditor_0275.zip 5. Copy the 32-bit executable to the work directory % cd PmxEditor_0275 % cp x86/PmxEditor_x86.exe* . 6. Run the executable with Wine. % wine PmxEditor_x86.exe
Expected result: It starts and shows two windows titled PmxView and Pmx編集.
Actual result: It doesn't start. The console shows the following message: --- X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 12 (X_ConfigureWindow) Resource id in failed request: 0x54014a2 Serial number of failed request: 3418 Current serial number in output stream: 3418 --- Resource id and Serial numbers changes with each execution. Full console output is attached.
This issue was originally reported by @kakurakutekiko1 on Twitter.
https://bugs.winehq.org/show_bug.cgi?id=54810
Sagawa sagawa.aki+winebugs@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Regression SHA1| |46c8a637525d0f1cf67830295fb | |460c819b800b6
--- Comment #1 from Sagawa sagawa.aki+winebugs@gmail.com --- Git bisect says the first bad commit is 46c8a637525d0f1cf67830295fb460c819b800b6.
commit 46c8a637525d0f1cf67830295fb460c819b800b6 Author: Zebediah Figura zfigura@codeweavers.com Date: Fri Jan 20 16:23:42 2023 -0600
winex11: Separately store the internal pixel format set by WGL_WINE_pixel_format_passthrough.
https://bugs.winehq.org/show_bug.cgi?id=54810
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=54810
--- Comment #2 from Sagawa sagawa.aki+winebugs@gmail.com --- I sent MR, https://gitlab.winehq.org/wine/wine/-/merge_requests/2989 .
I found out that the cause of the problem was a glitch in the X11 client call by looking at the trace output of WINEDEBUG=x11drv,wgl and xtrace[1]. [1] https://web.archive.org/web/20140805180608/http://xtrace.alioth.debian.org/
The following are details.
When resizing a D3D child window, the XConfigureWindow that causes this X error (BadWindow) is called from the sync_client_position function.
1503358.331:0024:trace:x11drv:sync_client_position setting client win 54014a2 pos 1,1,730x562 changes=c
In another thread, the reparenting is performed and the original X window is discarded, as indicated by the following message.
1503358.440:0118:trace:x11drv:create_client_window 0x1011e reparent xwin 0/54014a2 1503358.440:0118:trace:wgl:release_gl_drawable destroying 54014a2 drawable 54014a3, gl->type 0x2 004:<:4612: 8: Request(4): DestroyWindow window=0x054014a2
After the window discarding, ConfigureWindow call described before is executed around 1503358.567.
005:<:0d76: 20: Request(12): ConfigureWindow window=0x054014a2 values={width=730 height=562} 005:>:0d76:Error 3=Window: major=12, minor=0, bad=0x054014a2, seq=0d76
Since the window ID 0x054014a2 no longer exists at this point, Wine will display the error message and terminate.
https://bugs.winehq.org/show_bug.cgi?id=54810
Sagawa sagawa.aki+winebugs@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |dcb123fac840ace40355d11000f | |df93fcfff0861 Resolution|--- |FIXED
--- Comment #3 from Sagawa sagawa.aki+winebugs@gmail.com --- Fixed by dcb123fac840ace40355d11000fdf93fcfff0861.
https://bugs.winehq.org/show_bug.cgi?id=54810
Sagawa sagawa.aki+winebugs@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
https://bugs.winehq.org/show_bug.cgi?id=54810
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.10.