http://bugs.winehq.org/show_bug.cgi?id=58688
--- Comment #20 from Stian Low wineryyyyy@gmail.com --- (In reply to Nikolay Sivov from comment #13)
Do we know why it helps, if it actually does?
Further details:
NtSetEventBoostPriority was introduced to Xenia-Canary by commit eb8154908 3 years ago: https://github.com/xenia-canary/xenia-canary/commit/eb8154908
NtSetEventBoostPriority is entirely absent from upstream Xenia from which Xenia-Canary is forked: https://github.com/xenia-project/xenia/blob/master/src/xenia/base/threading_...
Xenia-Canary Discord links are now broken which may have explained how NtSetEventBoostPriority was intended to work: https://github.com/xenia-canary/xenia-canary/blob/canary_experimental/src/xe...
NtSetEventBoostPriority is practically undocumented by Microsoft so only third party sources hint at it: https://j00ru.vexillium.org/syscalls/nt/64/
ReactOS implements by calling KeSetEventBoostPriority: https://doxygen.reactos.org/d4/deb/ntoskrnl_2ex_2event_8c.html#a0865a1c73b82...
KeSetEventBoostPriority for WINE has only this stub for entire codebase: https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/ntoskrnl.exe/ntoskrnl...
Xenia-Canary simply used NtSetEvent matching vanilla Xenia prior to regression commit ed9f31120b6 introducing NtSetEventBoostPriority syscall.
NtSetEventBoostPriority for Xenia-Canary seems not intended for use with WINE.
Therefore unless reporter has specific reason to use more experimental Xenia-Canary instead of upstream, I recommend using vanilla Xenia for better support for WINE: https://github.com/xenia-project/release-builds-windows/releases
My basic brief tests reproduced the same results for official Xenia as Xenia-Canary for WINE 10.12 and latest with NtSetEventBoostPriority patch.
Black screen still appears where graphics should be rendered for official Xenia as for Xenia-Canary for vanilla WINE.
GE-Proton10-14 renders graphics instead of black screen as expected for official Xenia just as for Xenia-Canary.
As for the merge request I submitted to handle NtSetEventBoostPriority, it may be considered unnecessary based on these latest findings.
I'm unable to find NtSetEventBoostPriority usage anywhere else outside of Xenia-Canary so it seems to be an extremely edge case that may be considered invalid until a better explanation is provided as to how it is intended for use for Xenia-Canary.
I leave the decision whether my merge request should be closed as unnecessary to Nikolay, Zeb, and/or Julliard who have better insights as to how these edge cases should be handled.