https://bugs.winehq.org/show_bug.cgi?id=52231
Bug ID: 52231 Summary: Notation Software 4 freeze when moving mouse over buttons Product: Wine Version: 6.23 Hardware: x86-64 OS: Mac OS X Status: UNCONFIRMED Severity: major Priority: P2 Component: winemac.drv Assignee: wine-bugs@winehq.org Reporter: reinhold.hoffmann@hotmail.com
For the testing I used the Mac builds of Gcenx. See https://github.com/Gcenx/macOS_Wine_builds
From Wine-6.17 onward there is a regression bug when moving the mouse over
buttons. Please see a quick gif video attached.
How to reproduce: (1) Download Notation Player from the link (2) Open MIDI file Song.mid included in the attachment (3) Move mouse as shown in the video
PROBLEM: The app freezes after moving the mouse over the buttons
Analysis: This functions has worked forever (since Wine-1.7 at least) The app freezes since Wine-6.17
Interestingly the bug does not exist on Linux but only on macOS. Looks like the bug appears not on every macOS version but definitely on macOS Monterey with metal graphics.
Because Wine-6.16 and all previous Wine versions Wine-6.x work fine, I conclude that with Wine-6.17 a change came in which causes the problem.
From what I see candidates could be
The enhancements in Wine-6.17 - More preparation work for the GDI syscall interface or the bug is related to Bug 52216 (https://bugs.winehq.org/show_bug.cgi?id=52216)
Unfortunately I was not able to detect the regression earlier due the another regression bug 50514 (https://bugs.winehq.org/show_bug.cgi?id=50514) which was fixed with the gdi redesign in Wine-6.19.
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #1 from Reinhold reinhold.hoffmann@hotmail.com --- Created attachment 71329 --> https://bugs.winehq.org/attachment.cgi?id=71329 gif video to demonstrate bug, MIDI file to reproduce bug
https://bugs.winehq.org/show_bug.cgi?id=52231
Reinhold reinhold.hoffmann@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression URL| |https://www.notation.com/Do | |wnloadTrialProduct.php?Tria | |l_Product=Player_English
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #2 from Reinhold reinhold.hoffmann@hotmail.com --- The bug happens on every macOS version (not only on macOS Monterey with metal graphics as formerly stated)
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #3 from Reinhold reinhold.hoffmann@hotmail.com --- The bug happens when tips for the button are delayedly displayed. The "delay" is done by timers (set, kill).
As the bug does not happen for Linux, I conclude that there is something wrong when various timers are frequently set and killed on a Mac.
In such a case the bug has a broader implication.
https://bugs.winehq.org/show_bug.cgi?id=52231
Huw Davies huw.davies@physics.ox.ac.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cdavis5x@gmail.com, | |huw.davies@physics.ox.ac.uk Regression SHA1| |9e599a89e30c9ae403f5c7861e0 | |f7690a03c4e22
--- Comment #4 from Huw Davies huw.davies@physics.ox.ac.uk --- It's caused by this commit:
commit 9e599a89e30c9ae403f5c7861e0f7690a03c4e22 Author: Charles Davis cdavis@codeweavers.com Date: Wed Sep 1 09:28:23 2021 -0500
winemac.drv: Set the surface contents directly to the layer.
Use a top-down DIB for the surface instead of a bottom-up DIB. This seems to match better with how Core Graphics expects to receive image data, and allows us to avoid a transform to flip the surface image.
There's quite a lot going on in this commit and it's not immediately obvious what the issue is (not least this commit adds code to drawRect which is then removed in the following commit).
To observe this I needed to backport commit 39fea6cd1eb175cddf3cbccc1fd09fec48da881e to avoid a font_cs deadlock, I'll attach that in the next comment.
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #5 from Huw Davies huw.davies@physics.ox.ac.uk --- Created attachment 71390 --> https://bugs.winehq.org/attachment.cgi?id=71390 patch to avoid font_cs deadlock
Note, not a patch to fix the issue, but it was required for me to bisect to the real problem.
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #6 from Reinhold reinhold.hoffmann@hotmail.com --- Thanks for the analysis. Can the status be changed to be NEW now?
https://bugs.winehq.org/show_bug.cgi?id=52231
Huw Davies huw.davies@physics.ox.ac.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #7 from Huw Davies huw.davies@physics.ox.ac.uk --- This is happening because updateLayer gets called right after its window, and therefore its surface, are destroyed. I've sent in a patch: https://source.winehq.org/patches/data/222906
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #8 from Reinhold reinhold.hoffmann@hotmail.com --- Thanks a lot.
https://bugs.winehq.org/show_bug.cgi?id=52231
Huw Davies huw.davies@physics.ox.ac.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |6bb537c8b0c5a178665ef0b8c1f | |38d9c746d9c3b Status|NEW |RESOLVED
--- Comment #9 from Huw Davies huw.davies@physics.ox.ac.uk --- Fixed by commit 6bb537c8b0c5a178665ef0b8c1f38d9c746d9c3b
https://bugs.winehq.org/show_bug.cgi?id=52231
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.0-rc5.
https://bugs.winehq.org/show_bug.cgi?id=52231
--- Comment #11 from Reinhold reinhold.hoffmann@hotmail.com --- Fix confirmed. Tested with 7.0-rc6 on various Mac versions.