[Bug 59680] New: Path of Exile: font rendering related crash
http://bugs.winehq.org/show_bug.cgi?id=59680 Bug ID: 59680 Summary: Path of Exile: font rendering related crash Product: Wine Version: 10.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: gdi32 Assignee: wine-bugs@list.winehq.org Reporter: vitorcoliveira91@gmail.com Distribution: --- Created attachment 80776 --> http://bugs.winehq.org/attachment.cgi?id=80776 Proton log generated from PROTON_LOG=1 launch option (Since the crash happens on gdi32, that's the component I specified but I'm not 100% sure which one to select) Path of Exile and probably other applications crash when trying to render certain characters, one of which is: "e๋". Sadly I don't know how to run it with Wine alone since it's a game on Steam and is, therefore, configured to run with Proton. All steps below are based on Proton Experimental. How to reproduce: 1. Copy that character above. 2. Open Path of Exile with any Proton version that can run the game. 3. Log in with any character. 3a. Create one in any league if you don't have one. 4. Open chat (Enter key). 5. Paste character into chat. 6. Game crashes. Additional information @dsf3449 on GitHub has great information on what is causing this problem, I hope this can be of help: https://github.com/ValveSoftware/Proton/issues/58#issuecomment-4040483961 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #1 from Rafał Mużyło <galtgendo@o2.pl> ---
Sadly I don't know how to run it with Wine alone since it's a game on Steam and is, therefore, configured to run with Proton.
Well, I'm not sure how exactly proton configures things, but as long as you have a proper copy of wine installed and 'wine' refers to that copy, not what Proton installed, those steps (in most of the cases) consist of going into the directory with game executable and running 'wine <executable name>'. Though the crash analysis in the github report seem to look well done. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #2 from Vitor Coimbra <vitorcoliveira91@gmail.com> ---
Well, I'm not sure how exactly proton configures things, but as long as you have a proper copy of wine installed and 'wine' refers to that copy, not what Proton installed, those steps (in most of the cases) consist of going into the directory with game executable and running 'wine <executable name>'.
Unfortunately, doing that doesn't seem to just work, it's probably going to need some more fiddling to reproduce this problem with wine alone. This is the output I get from trying to run it straight from its directory: [vitorc@lambda:~/SteamGames/SteamLibrary/steamapps/common/Path of Exile]$ wine PathOfExileSteam.exe Application could not be started, or no application associated with the specified file. ShellExecuteEx failed: Bad EXE format for Z:\home\vitorc\SteamGames\SteamLibrary\steamapps\common\Path of Exile\PathOfExileSteam.exe. I noticed there was a second .exe in there so I tried it as well, but same result: [vitorc@lambda:~/SteamGames/SteamLibrary/steamapps/common/Path of Exile]$ wine PathOfExile_x64Steam.exe Application could not be started, or no application associated with the specified file. ShellExecuteEx failed: Bad EXE format for Z:\home\vitorc\SteamGames\SteamLibrary\steamapps\common\Path of Exile\PathOfExile_x64Steam.exe. For completeness' sake, this is on NixOS, and this is the version I'm using: [vitorc@lambda:~]$ wine --version wine-11.0 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 Vitor Coimbra <vitorcoliveira91@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|10.0 |11.0 --- Comment #3 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- Ok, well, I managed to reproduce this on something simpler than Path of Exile, namely Sublime Text. Here's the updated reproduction steps (on wine-11.0). 1. Download Sublime Text Windows portable version (from https://www.sublimetext.com/download) 2. Extract its .zip contents into some directory (e.g., "sublime/") 3. Copy this character (U+0065 U+0E4B): e๋ 4. cd sublime 5. wine sublime_text.exe 6. The text editor should open with a blank window. 7. Click on File on the upper left corner of the window. 8. Click Open File... 9. Paste that character into the "File name:" input field. 10. Immediate crash. Slight side note for NixOS users: for anyone else testing on NixOS, the wine package is not the proper way to install wine. Instead, use the wine64Packages.stableFull package, that brings in the binary and everything else it needs to actually properly run. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 Stian Low <wineryyyyy@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wineryyyyy@gmail.com --- Comment #4 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 80887 --> http://bugs.winehq.org/attachment.cgi?id=80887 Screenshot of (U+0065 U+0E4B): e๋ pasted to sublime open file without crash (In reply to Vitor Coimbra from comment #3)
Ok, well, I managed to reproduce this on something simpler than Path of Exile, namely Sublime Text. Here's the updated reproduction steps (on wine-11.0).
Attached is a screenshot of sublime not crashing when pasting the character into open file input field: 3. Copy this character (U+0065 U+0E4B): e๋ 9. Paste that character into the "File name:" input field. Tested sublime for wine-11.8-ad0f36c6897 custom build on Debian 13. Path of Exile not tested yet. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #5 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- Created attachment 80888 --> http://bugs.winehq.org/attachment.cgi?id=80888 Sublime Text font comparison. Above is Stian Low's, below is Vitor Coimbra's. (In reply to Stian Low from comment #4)
Created attachment 80887 [details] Screenshot of (U+0065 U+0E4B): e๋ pasted to sublime open file without crash
(In reply to Vitor Coimbra from comment #3)
Ok, well, I managed to reproduce this on something simpler than Path of Exile, namely Sublime Text. Here's the updated reproduction steps (on wine-11.0).
Attached is a screenshot of sublime not crashing when pasting the character into open file input field: 3. Copy this character (U+0065 U+0E4B): e๋ 9. Paste that character into the "File name:" input field.
Tested sublime for wine-11.8-ad0f36c6897 custom build on Debian 13. Path of Exile not tested yet.
Interesting, I'm unable to test on wine-11.8, NixOS offers packages only up to 11.6, which I also crash on. I'd probably need to build from source. I've noticed the font rendering looks slightly different on that screenshot than what I see on my end (screenshot attached). Yours is above, mine, below. The difference is noticeable on letters like S and G. Could be a resolution thing or something, but I think it's still worth pointing out. One of the workarounds discussed in the GitHub thread was to use winetricks (protontricks actually) to use Windows' implementation of glyph rendering. Is your wine a fresh install or customized to some extent? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #6 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 80889 --> http://bugs.winehq.org/attachment.cgi?id=80889 Screenshot comparison of character render wrong for emacs.exe via wine on left and rendered correct for emacs for Debian 13 on right (In reply to Vitor Coimbra from comment #5)
One of the workarounds discussed in the GitHub thread was to use winetricks (protontricks actually) to use Windows' implementation of glyph rendering. Is your wine a fresh install or customized to some extent?
Plain vanilla wine without any winetricks in a fresh WINEPREFIX. Attached is a screenshot showcasing the character rendered wrong for emacs.exe run via wine at the left vs emacs build for Debian 13 at the right. Unclear if bad rendering for emacs.exe is caused by wine but still no crash. Still need to test for Path of Exile. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 Bernhard Übelacker <bernhardu@mailbox.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org --- Comment #7 from Bernhard Übelacker <bernhardu@mailbox.org> --- Created attachment 80890 --> http://bugs.winehq.org/attachment.cgi?id=80890 debugging_notepad.txt Hello, I found I could reproduce a crash with only notepad by just pasting "e๋" into its edit area. This appeared in a normal build inside GPOS_apply_MarkToMark. And it also manifests in my ASan build like below: ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7f27270e0a9c at pc 0x6ffffcf616c9 bp 0x7ffffe20e2c0 sp 0x7ffffe20e308 READ of size 2 at 0x7f27270e0a9c thread T0 #0 in ShapeCharGlyphProp_Thai .../dlls/gdi32/uniscribe/shape.c:3162 #1 in SHAPE_CharGlyphProp .../dlls/gdi32/uniscribe/shape.c:3389 #2 in ScriptShapeOpenType .../dlls/gdi32/uniscribe/usp10.c:3153 #3 in ScriptShape .../dlls/gdi32/uniscribe/usp10.c:3252 #4 in ScriptStringAnalyse .../dlls/gdi32/uniscribe/usp10.c:2047 #5 in EDIT_UpdateUniscribeData_linedef .../dlls/comctl32_v6/edit.c ... 0x7f27270e0a9c is located 4 bytes before 68-byte region [0x7f27270e0aa0,0x7f27270e0ae4) 3162 pGlyphProp[i-dirL].sva.uJustification = SCRIPT_JUSTIFY_NONE; With i=0 and dirL=1 above line causes an access with a negative index. In a test VM I got this "e๋" rendered as two character. I needed to install a package fonts-freefont-otf, then I still only got this line, but notepad remained running: err:seh:user_callback_handler ignoring exception c0000005 In total there were three locations, which triggered such accesses. Attached file contains some hacky modifications to get over these lines. Maybe they are enough for the game to avoid the crashes. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #8 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- (In reply to Bernhard Übelacker from comment #7)
Hello, I found I could reproduce a crash with only notepad by just pasting "e๋" into its edit area.
Ah, very nice. I was unaware Wine shipped with the default windows programs (or at least notepad). Just confirming that I was also able to crash it by pasting the "e๋" character in its edit area as well. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #9 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 80891 --> http://bugs.winehq.org/attachment.cgi?id=80891 Windows 11 notepad rendering of character with zoom increased (In reply to Bernhard Übelacker from comment #7)
In a test VM I got this "e๋" rendered as two character. I needed to install a package fonts-freefont-otf, then I still only got this line, but notepad remained running: err:seh:user_callback_handler ignoring exception c0000005
Package was also installed for my custom build which may be why it does not crash, however "err:seh" are not logged: fonts-freefont-otf/stable,stable,now 20211204+svn4273-2 all [installed,automatic] Freefont Serif, Sans and Mono OpenType fonts Wine notepad also renders the character more correctly than emacs which uses harfbuzz/cairo character rendering backend which may cause differences. Emacs renders the character more correctly looking when at notepad zoom level, but when increasing zoom, the diacritic gets bigger but the 'e' stays the same size. Attached is a screenshot from Windows 11 notepad which renders the character worse than wine notepad but in a similar way as emacs with the diacritic appearing less stylized but the 'e' increases size with the diacritic unlike emacs.exe. Unclear if the worse rendering by Windows is due to missing language packs but it supports Romanian without diacritic issues. Wine notepad seems not to support zooming which is a feature of latest Windows notepad which may be worth adding in the future to more easily test font rendering bugs. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #10 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- @Stian Low, I'm very perplexed that you're not seeing _any_ crashes at all. Could it be that this was fixed between 11.6 and 11.8? That'd make me very confused since the crashing code was last touched 14 years ago (as seen by git blame), therefore character rendering would probably have to be going through some _real_ different codepath somehow. If you happen to have previous versions installed somewhere, do you see crashes there? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #11 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 80898 --> http://bugs.winehq.org/attachment.cgi?id=80898 GE-Proton-32 notepad crash which does not happen for Debian 13 wine-10.0 (Debian 10.0~repack-6) and custom build 11.8 using system libs (In reply to Vitor Coimbra from comment #10)
@Stian Low, I'm very perplexed that you're not seeing _any_ crashes at all. Could it be that this was fixed between 11.6 and 11.8? That'd make me very confused since the crashing code was last touched 14 years ago (as seen by git blame), therefore character rendering would probably have to be going through some _real_ different codepath somehow. If you happen to have previous versions installed somewhere, do you see crashes there?
Attached is a log and backtrace of it crashing for GE-Proton-10-32 which also happens for GE-Proton-10-11 available at: https://github.com/GloriousEggroll/proton-ge-custom/releases Run via: WINEPREFIX=/home/any/Downloads/GE-Proton10-11/files/share/pfx /home/any/Downloads/GE-Proton10-11/files/bin/wine64 notepad Both report version wine-10.0 (Staging) despite the version 11 32 difference so it seems they may be frozen there until they figure out how to integrate some fairly major changes that happened after 10.0. WINEPREFIX=/home/any/Downloads/GE-Proton10-11/files/share/pfx /home/any/Downloads/GE-Proton10-11/files/bin/wine64 --version wine-10.0 (Staging) WINEPREFIX=/home/any/Downloads/GE-Proton10-32/files/share/pfx /home/any/Downloads/GE-Proton10-32/files/bin/wine64 --version wine-10.0 (Staging) Debian 13 apt pkg wine-10.0 (Debian 10.0~repack-6) does not crash suggesting my system may have additional libs that fix the crash. Proton uses Docker/Podman containers instead of system libs which may be missing libs on my system used by wine-10.0 (Debian 10.0~repack-6) and my own custom build of latest wine 11.8 to handle the character. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #12 from Stian Low <wineryyyyy@gmail.com> --- Linked this bug to pending merge request which may be related: https://gitlab.winehq.org/wine/wine/-/merge_requests/10612 Other MRs which may also be related: https://gitlab.winehq.org/wine/wine/-/merge_requests/10672 https://gitlab.winehq.org/wine/wine/-/merge_requests/10844 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 समीरसिंह Sameer Singh <lumarzeli30@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lumarzeli30@gmail.com --- Comment #13 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- I opened an MR (https://gitlab.winehq.org/wine/wine/-/merge_requests/10859) which will hopefully address this issue. Can someone please install the patch and verify if the issue is fixed for them as well? https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #14 from Stian Low <wineryyyyy@gmail.com> --- (In reply to समीरसिंह Sameer Singh from comment #13)
I opened an MR (https://gitlab.winehq.org/wine/wine/-/merge_requests/10859) which will hopefully address this issue. Can someone please install the patch and verify if the issue is fixed for them as well? https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch
Unclear if I'll be able to test the patch until I'm able to reproduce the crash for my system versions of wine but I replaced gdi32.dll and gdiplus.dll in system32 and syswow64 of Proton with dlls built with patch and it still crashes when pasting the char into notepad. Perhaps this should not be considered a valid test but I figured it was worth a shot for whatever its worth. If it seems valid and I missed any other dlls that need to be replaced, please let me know. It's still odd that I seem to be the only one not able to reproduce the crash on for my system built versions of wine which still suggests that there may be lib diffs as part of the problem. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #15 from Stian Low <wineryyyyy@gmail.com> --- At the very least the patch does not break my system built versions of wine that have been able to handle pasting the char to notepad. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla