[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.
http://bugs.winehq.org/show_bug.cgi?id=59680 --- Comment #16 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Stian Low from comment #14)
(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.
Weird, I tried the same and after pasting the patched dlls, the crash stopped. What I did was add notepad.exe to steam and set it to open via "Proton - Experimental", I then pasted 32 and 64 bit gdi32.dll to "~/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/{i386,x86_64}-windows/gdi32.dll" respectively.
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 #17 from Stian Low <wineryyyyy@gmail.com> --- (In reply to समीरसिंह Sameer Singh from comment #16)
Weird, I tried the same and after pasting the patched dlls, the crash stopped. What I did was add notepad.exe to steam and set it to open via "Proton - Experimental", I then pasted 32 and 64 bit gdi32.dll to "~/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/{i386,x86_64}-windows/gdi32.dll" respectively.
Works for GE-Proton10-32 following your instructions. I copied to pfx directories by mistake instead of lib directories so after copying just gdi32.dlls to the correct paths it worked. Thanks for fixing. Hopefully it works for reporter also. -- 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 #18 from Bernhard Übelacker <bernhardu@mailbox.org> --- (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
Hello, I put 10859.patch on top of my ASan tree, but unfortunately it still gets triggered when pasting "e๋" into notepad, The patch seems to fix the function GPOS_apply_MarkToMark, but ShapeCharGlyphProp_Thai and GPOS_apply_MarkToBase seem to need a similar fix. -- 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 #19 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Bernhard Übelacker from comment #18)
(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
Hello, I put 10859.patch on top of my ASan tree, but unfortunately it still gets triggered when pasting "e๋" into notepad, The patch seems to fix the function GPOS_apply_MarkToMark, but ShapeCharGlyphProp_Thai and GPOS_apply_MarkToBase seem to need a similar fix.
Can you try now with: https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch and https://gitlab.winehq.org/wine/wine/-/merge_requests/10868.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 #20 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- First of all, thanks for the very quick work @Sameer Singh! Also, I'm probably going to need some serious handholding on how to test this, especially given that I'm on NixOS. I'm not super knowledgeable on how to tinker with Wine in general, lol. Another thing is that I think it's worth reminding everyone that there's a very good analysis in the GitHub thread linked in the original post (linked here again for convenience: https://github.com/ValveSoftware/Proton/issues/58#issuecomment-4040483961) which goes over causes and possible problematic code locations. Of course there's no guarantee it's a *complete* analysis, but there should still be valuable info in 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 #21 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Vitor Coimbra from comment #20)
First of all, thanks for the very quick work @Sameer Singh!
Glad, I could be of help :)
Also, I'm probably going to need some serious handholding on how to test this, especially given that I'm on NixOS. I'm not super knowledgeable on how to tinker with Wine in general, lol.
I am not at all familiar with NixOS, so I can only give you some general purpose distro steps, you can then maybe adapt them to Nix. 1.First clone and compile the wine repo with the patches. a) Install the required system dependencies by reading this: https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine#satisfying-build-d..., it does not give the specific package names for NixOS, so you have to find it out on your own. Once the build dependencies are installed. b) git clone https://gitlab.winehq.org/wine/wine.git --depth 1 c) cd wine d) wget https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch e) wget https://gitlab.winehq.org/wine/wine/-/merge_requests/10868.patch f) git apply 10859.patch g) git apply 10868.patch h) mkdir build && cd build i) ../configure --enable-archs=i386,x86_64 j) make -j$(nproc) Wait for it to compile, this may take some time, On my system with 16 threads it took around 24 minutes to compile. After the compilation is complete: 2. ./wine notepad 3. paste "e๋" in the notepad, the notepad will not crash. If you want to test the patches on "Path of Exile". I am assuming that you are launching the game from steam using Proton Experimental. 4. Copy 32 and 64 bit gdi32.dll from <wine repo path>/build/dlls/gdi32/i386-windows/gdi32.dll (for 32bit) and <wine repo path>/dlls/gdi32/x86_64-windows/gdi32.dll 5. Paste the 32bit dll in "~/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/i386-windows" and the 64bit in "~/.steam/steam/steamapps/common/Proton - Experimental/files/lib/wine/x86_64-windows" 6. Launch the game as normal from steam and test. If you face any problem while performing the above steps then you can ask here.
Another thing is that I think it's worth reminding everyone that there's a very good analysis in the GitHub thread linked in the original post (linked here again for convenience: https://github.com/ValveSoftware/Proton/issues/58#issuecomment-4040483961) which goes over causes and possible problematic code locations. Of course there's no guarantee it's a *complete* analysis, but there should still be valuable info in there.
Thanks, I read that and the suggestions are present in the 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 #22 from Bernhard Übelacker <bernhardu@mailbox.org> --- (In reply to समीरसिंह Sameer Singh from comment #19)
Hello, I put 10859.patch on top of my ASan tree, but unfortunately it still gets triggered when pasting "e๋" into notepad, The patch seems to fix the function GPOS_apply_MarkToMark, but ShapeCharGlyphProp_Thai and GPOS_apply_MarkToBase seem to need a similar fix.
Can you try now with: https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch and https://gitlab.winehq.org/wine/wine/-/merge_requests/10868.patch
Hello, with 10859.patch and 10868.patch applied ASan stays silent here. I tried also some of the other character combinations from the proton issue, and it no longer shows an issue, thanks for fixing. -- 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 #23 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- (In reply to समीरसिंह Sameer Singh from comment #21)
1.First clone and compile the wine repo with the patches. a) Install the required system dependencies by reading this: https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine#satisfying-build- dependencies, it does not give the specific package names for NixOS, so you have to find it out on your own. Once the build dependencies are installed. b) git clone https://gitlab.winehq.org/wine/wine.git --depth 1 c) cd wine d) wget https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch e) wget https://gitlab.winehq.org/wine/wine/-/merge_requests/10868.patch f) git apply 10859.patch g) git apply 10868.patch h) mkdir build && cd build i) ../configure --enable-archs=i386,x86_64 j) make -j$(nproc)
Thank you for the very thorough instructions. If anyone else wants to test this on NixOS, step a) is basically the following command: nix-shell -p wine64Packages.stagingFull.nativeBuildInputs wine64Packages.stagingFull.buildInputs winePackages.stagingFull.nativeBuildInputs winePackages.stagingFull.buildInputs wget git This will pull in all dependencies needed to build wine 32 and 64 bits (as well as wget and git) straight from the nixpkgs repo into a nix-shell session. Then just follow the rest of the instructions as written. Ok, so after waiting quite a while for wine to build (I don't have a good computer), I tried running the following test (from the build directory created by the above instructions): 1) ./wine programs/notepad/i386-windows/notepad.exe but was met with the following output: [nix-shell:~/wine/build]$ ./wine programs/notepad/i386-windows/notepad.exe wine: created the configuration directory '/home/vitorc/.wine' 002c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 004c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) 0054:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 004c:err:vulkan:vulkan_init_once Failed to load libvulkan.so.1 004c:err:wgl:egl_init Failed to load libEGL.so.1: libEGL.so.1: cannot open shared object file: No such file or directory 004c:err:wgl:X11DRV_OpenGLInit Failed to load libGL: libGL.so.1: cannot open shared object file: No such file or directory 004c:err:wgl:X11DRV_OpenGLInit OpenGL support is disabled. 0054:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002 0054:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002 0054:err:ole:apartment_get_local_server_stream Failed: 0x80004002 0054:err:ole:start_rpcss Failed to open RpcSs service 004c:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002 004c:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002 004c:err:ole:apartment_get_local_server_stream Failed: 0x80004002 Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 0094:err:winediag:gnutls_process_attach failed to load libgnutls, no support for encryption 0094:err:winediag:process_attach failed to load libgnutls, no support for pfx import/export Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 009c:err:winediag:gnutls_process_attach failed to load libgnutls, no support for encryption 009c:err:syslink:SYSLINK_SetFont Failed to create link font! Upon further reflecting on why this could be happening, I'm guessing it could be FHS related, since NixOS does not follow it. wine is probably looking for runtime stuff in places it won't be in. Again, just a guess though. -- 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 #24 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Vitor Coimbra from comment #23)
(In reply to समीरसिंह Sameer Singh from comment #21)
1.First clone and compile the wine repo with the patches. a) Install the required system dependencies by reading this: https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine#satisfying-build- dependencies, it does not give the specific package names for NixOS, so you have to find it out on your own. Once the build dependencies are installed. b) git clone https://gitlab.winehq.org/wine/wine.git --depth 1 c) cd wine d) wget https://gitlab.winehq.org/wine/wine/-/merge_requests/10859.patch e) wget https://gitlab.winehq.org/wine/wine/-/merge_requests/10868.patch f) git apply 10859.patch g) git apply 10868.patch h) mkdir build && cd build i) ../configure --enable-archs=i386,x86_64 j) make -j$(nproc)
Thank you for the very thorough instructions. If anyone else wants to test this on NixOS, step a) is basically the following command:
nix-shell -p wine64Packages.stagingFull.nativeBuildInputs wine64Packages.stagingFull.buildInputs winePackages.stagingFull.nativeBuildInputs winePackages.stagingFull.buildInputs wget git
This will pull in all dependencies needed to build wine 32 and 64 bits (as well as wget and git) straight from the nixpkgs repo into a nix-shell session. Then just follow the rest of the instructions as written.
Ok, so after waiting quite a while for wine to build (I don't have a good computer), I tried running the following test (from the build directory created by the above instructions):
1) ./wine programs/notepad/i386-windows/notepad.exe
but was met with the following output:
[nix-shell:~/wine/build]$ ./wine programs/notepad/i386-windows/notepad.exe wine: created the configuration directory '/home/vitorc/.wine' 002c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 004c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) 0054:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 004c:err:vulkan:vulkan_init_once Failed to load libvulkan.so.1 004c:err:wgl:egl_init Failed to load libEGL.so.1: libEGL.so.1: cannot open shared object file: No such file or directory 004c:err:wgl:X11DRV_OpenGLInit Failed to load libGL: libGL.so.1: cannot open shared object file: No such file or directory 004c:err:wgl:X11DRV_OpenGLInit OpenGL support is disabled. 0054:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002 0054:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002 0054:err:ole:apartment_get_local_server_stream Failed: 0x80004002 0054:err:ole:start_rpcss Failed to open RpcSs service 004c:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002 004c:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002 004c:err:ole:apartment_get_local_server_stream Failed: 0x80004002 Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 0094:err:winediag:gnutls_process_attach failed to load libgnutls, no support for encryption 0094:err:winediag:process_attach failed to load libgnutls, no support for pfx import/export Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org 009c:err:winediag:gnutls_process_attach failed to load libgnutls, no support for encryption 009c:err:syslink:SYSLINK_SetFont Failed to create link font!
Upon further reflecting on why this could be happening, I'm guessing it could be FHS related, since NixOS does not follow it. wine is probably looking for runtime stuff in places it won't be in. Again, just a guess though.
If this is indeed an FHS issue, then have you tried building an FHS environment with all the runtime libraries wine needs, to run wine from? See: https://ryantm.github.io/nixpkgs/builders/special/fhs-environments/ -- 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 #25 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- Wait, nevermind, I got it. NixOS can apply patches from its own configuration file using overlays, I just had to figure out how to do that. The patches technically were applied to the 11.8 release rather than master, but I don't think that's gonna change much anyway. I think. Once again it took a bit to build it from scratch one more, but I was finally able to run it. So, I did the following tests: 1) wine notepad Pasted "e๋" into edit area, no crash. 2) wine sublime_text Pasted "e๋" into "File name..." input field. Also no crash. Typing normal characters into the edit area seemed to make the program hang though. Not sure if it's something on my system. 3) Copied the dlls to Proton - Experimental's i386 and x86_64 directories and booted up Path of Exile. Pasted "e๋" into chat and did not crash. It didn't seem to render the mark though, which is a bit strange. But regardless, the crashes seem to be fixed at least. -- 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 #26 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Vitor Coimbra from comment #25)
Wait, nevermind, I got it. NixOS can apply patches from its own configuration file using overlays, I just had to figure out how to do that. The patches technically were applied to the 11.8 release rather than master, but I don't think that's gonna change much anyway. I think.
Once again it took a bit to build it from scratch one more, but I was finally able to run it. So, I did the following tests:
1) wine notepad
Pasted "e๋" into edit area, no crash.
2) wine sublime_text
Pasted "e๋" into "File name..." input field. Also no crash. Typing normal characters into the edit area seemed to make the program hang though. Not sure if it's something on my system.
3) Copied the dlls to Proton - Experimental's i386 and x86_64 directories and booted up Path of Exile. Pasted "e๋" into chat and did not crash. It didn't seem to render the mark though, which is a bit strange. But regardless, the crashes seem to be fixed at least.
Is the mark rendered when the game is run on Windows? -- 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 #27 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- (In reply to समीरसिंह Sameer Singh from comment #26)
Is the mark rendered when the game is run on Windows?
Unfortunately, I don't have a Windows machine to confirm that, so I asked in the global chat if anyone can see it and a couple of people replied "yes", so while it's not certain (they may have been trolling after all), it's very likely to be rendering for them. -- 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 #28 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- Created attachment 80939 --> http://bugs.winehq.org/attachment.cgi?id=80939 Post-patches "e๋" comparison between Windows (left) and Wine (right) in Path of Exile (In reply to Vitor Coimbra from comment #27)
Unfortunately, I don't have a Windows machine to confirm that, so I asked in the global chat if anyone can see it and a couple of people replied "yes", so while it's not certain (they may have been trolling after all), it's very likely to be rendering for them.
Just confirmed it with a friend of mine. He's on Windows and can see the mark on top of the "e๋" while I can't. I added a screenshot of what we both see. The sequence of "e๋e๋e๋e๋e๋e๋"'s on the left is what he sees (Windows), to the right is how I see (Linux/Wine) the same sequence of characters. I know it's a bit tiny but hopefully you can see the marks on the left, but not on the right. -- 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 #29 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Vitor Coimbra from comment #28)
Created attachment 80939 [details] Post-patches "e๋" comparison between Windows (left) and Wine (right) in Path of Exile
(In reply to Vitor Coimbra from comment #27)
Unfortunately, I don't have a Windows machine to confirm that, so I asked in the global chat if anyone can see it and a couple of people replied "yes", so while it's not certain (they may have been trolling after all), it's very likely to be rendering for them.
Just confirmed it with a friend of mine. He's on Windows and can see the mark on top of the "e๋" while I can't. I added a screenshot of what we both see. The sequence of "e๋e๋e๋e๋e๋e๋"'s on the left is what he sees (Windows), to the right is how I see (Linux/Wine) the same sequence of characters. I know it's a bit tiny but hopefully you can see the marks on the left, but not on the right.
Thanks, yes I can see the thai marks in the Windows screenshot. I will figure out why this is happening, maybe I am bailing out too early in the GPOS functions ????...., nevertheless I will get back with a new patch when I figure out a solution. -- 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 #30 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- Created attachment 80966 --> http://bugs.winehq.org/attachment.cgi?id=80966 bandaid-patch does the above patch work display the thai marks? This is obviously not a clean solution, but I wanted to know if I was in the right direction. -- 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 #31 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- (In reply to समीरसिंह Sameer Singh from comment #30)
Created attachment 80966 [details] bandaid-patch
does the above patch work display the thai marks? This is obviously not a clean solution, but I wanted to know if I was in the right direction.
Left the project compiling with all 3 patches (I assume it has to be this way?), but was met with the following error (in pastebin, because pasting directly here makes it unreadable): https://pastebin.com/mgUneNn4 Not entirely sure what could be causing it. I chose the wineWow64Packages.unstableFull package from nixpkgs, which I assume is the most up to date with the latest commit, but maybe even that is not enough and some mismatch caused this error? -- 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 #32 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- (In reply to Vitor Coimbra from comment #31)
(In reply to समीरसिंह Sameer Singh from comment #30)
Created attachment 80966 [details] bandaid-patch
does the above patch work display the thai marks? This is obviously not a clean solution, but I wanted to know if I was in the right direction.
Left the project compiling with all 3 patches (I assume it has to be this way?), but was met with the following error (in pastebin, because pasting directly here makes it unreadable): https://pastebin.com/mgUneNn4
Not entirely sure what could be causing it. I chose the wineWow64Packages.unstableFull package from nixpkgs, which I assume is the most up to date with the latest commit, but maybe even that is not enough and some mismatch caused this error?
Looks like you are not at the latest wine commit. First discard all of the local changes by executing "git restore ." in the wine repo. Then apply the first two patches again and finally at last apply the "bandaid" patch and compile the repo. -- 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 #33 from Vitor Coimbra <vitorcoliveira91@gmail.com> --- Created attachment 80969 --> http://bugs.winehq.org/attachment.cgi?id=80969 Post-bandaid patch "e๋" rendering in Path of Exile.
Looks like you are not at the latest wine commit. First discard all of the local changes by executing "git restore ." in the wine repo. Then apply the first two patches again and finally at last apply the "bandaid" patch and compile the repo.
I was applying the patches to the latest NixOS unstable wine package, since running the locally compiled wine turned out to not work. But then I remembered that I can just compile it, grab the resulting DLLs and throw them into Proton's directories. This is ok to do since I won't be running the compiled wine anyway. Anyways, after doing just that, I can confirm the mark _does_ show up now. I've attached a screenshot of what it looks like after this latest bandaid 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 #34 from Stian Low <wineryyyyy@gmail.com> --- Possibly related: https://bugs.winehq.org/show_bug.cgi?id=59775 -- 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 #35 from समीरसिंह Sameer Singh <lumarzeli30@gmail.com> --- Before I forget, I opened the MR which would enable the game to show the Thai marks. https://gitlab.winehq.org/wine/wine/-/merge_requests/10998 -- 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