https://bugs.winehq.org/show_bug.cgi?id=42982
--- Comment #15 from Toni eldrad@autistici.org --- (In reply to Zentarim from comment #14)
it's possible to hope, this patch will be merged in master branch?
I don't think we have much hope of merging this, even on staging, we will need to debug more to find out more information about why the application fails, maybe by running tests (simple tests checking behaviour on windows might be enough) on windows or debugging the internal calls more with a debugger.
The issue is windows is expected to behave like this (async operations can return synchronously), so it's not entirely justifiable, even if I thought it might be beneficial to perform asynchronously when requested, we also don't have specific cases about where this could improve performance. Also adapting the unit tests is quite hairy, that would also be a necessary first step but I'm not putting much hopes on that path to lead us anywhere soon.
So my bets are the moment are in finding out something more subtle that's actually causing the problem (In how read/write are being called and how the overlapped structure is being managed).
Otherwise I'm thinking of providing a version of koku-xinput-wine with a hotpatch for alternative1, that would be a reasonable albeit non standard fix for the moment, since koku-xinput also allows controllers to work fine with bayonetta (it's the only way i've managed to get rumble working on the gamepad).
Another way that might be possible to get accepted in staging is having the async behaviour as an optional feature enabled via registry, but the fact only bayonetta seems to be affected makes it tricky to make other devs willing to hear about the issue (they say we should debug more to find a root cause).
So this are our options:
- Find out a more subtle root cause that can actually be fixed (might get us into wine) - Push async behaviour forward by providing unit tests and making it optional behaviour (might get us into staging) - Hotpatch through ld_preload (would work as something people can use without compiling themselves or requiring a full alternative version of wine just to support bayonetta)
Also it would be beneficial to us finding other applications making use of the async behaviour in read and write.