Hello @colleirose, this should be evaluated and merged upstream before taking a look at backporting it downstream. When that lands, then give me a ping and we can ponder this further.
@kisak-valve The PR in question has been merged upstream: https://gitlab.winehq.org/wine/wine/-/merge_requests/2044
@colleirose Thank you for the visibility on these upstream patches and the cherry-pick request. I tested all three of the games you mentioned with the upstream patches cherry-picked, and unfortunately they are still all crashing before launching a real game window. It looks like just those upstream cherry-picks are not enough to get the games working.
I mentioned in the comments on the upstream merge request that there a handful of other fixes needed that are also available. If none of them are merged upstream, I will submit a PR there myself I suppose.
If you upstream enough patches to get at least one of the games fully working, please let me know! And in the meantime, thank you for the report! If I find someone else with time/interest in upstreaming them, I'll try to report back and let you know so that everyone avoids duplicating work :)
Nothing extracted yet.
Feature Request
I confirm:
contain this feature already.
Description
Implement
KeTryToAcquireGuardedMutex,KeAcquireGuardedMutex, andKeReleaseGuardedMutex.Justification [optional]
Per https://github.com/MicrosoftDocs/windows-driver-docs/blob/staging/windows-driver-docs-pr/kernel/fast-mutexes-and-guarded-mutexes.md, in Windows 8 and later, these functions are the exact same as the already implemented fast mutex functions, but they have not been implemented in Wine despite a pull request being opened upstream since January 2023: https://gitlab.winehq.org/wine/wine/-/merge_requests/2044. The implementation is nothing more than creating a wrapper around the existing fast mutex functions, so the fix is trivial and low-risk.
The lack of these features causes Duet Night Abyss to fail since the latest update. I believe these errors are caused by the AntiCheatExpert (ACE) driver:
It appears that at least two other games fail for the same reason. See #9258 and #8988.
Risks [optional]
The upstream PR mentioned that the changes caused tests to fail, but the OP said that the failing tests were unrelated to their PR. No further activity ever occurred, so I don't know who is correct. If these functions are the cause of the failing tests, that has to be fixed before it can be implemented.
References [optional]