https://bugs.winehq.org/show_bug.cgi?id=48291
--- Comment #25 from Paul Gofman gofmanp@gmail.com --- Created attachment 66094 --> https://bugs.winehq.org/attachment.cgi?id=66094 Don't use fast_wait_cv in conditional variable waits
Attached patch fixes the terrible performance issue for me (both on demo and full game). I did not test performance in details but that impossibly slow poerformance is gone with this patch.
I didn't yet fully analyzed what exactly is wrong with the fast_wait_cv() for this case, I suppose it was helping in some other cases, I didn't yet analyse what exactly is specifics here.
To summarize, the following is covered by the previous and this patch:
1. The game requires x64 syscalls emulation (supported in the previously attached patch using seccomp). Unfortunately seccomp is Linux specific, it won't work on Mac. The emulation of syscalls might be useful for some other DRMs.
2. The game requires processor features to be set more accurately. Somehow some features are currently set for AMD CPUs only, while Intel can have the same. The previous patch addresses that.
3. User shared data area has NumberOfPhysicalPages not filled in
4. Performance issue (use of fast_wait_cv).
The issues 1-3 are in the previous patch.
I suggest to make this bug about issue 1 (x64 syscalls emulation). The other 3 needs separate bugs to be created.