wine-osu-spectator-9.21-1
·
9 commits
to master
since this release
General release info
- Rebase to latest wine/staging master
- Update generic builds from
-march=x86-64 -mtune=generic
to-march=nocona -mtune=core-avx2
, which is the same as what Proton is built with - Switch back to clang + llvm-mingw-msvcrt for compilation due to some annoying missing features with clang's MSVC mode, shouldn't affect runtime performance at all
- Clean up and refine the USD time thread patch to better match the behavior of Windows
- Rely on the fast USD time updates to remove an expensive syscall from every
__fsync_wait_objects
call
- Rely on the fast USD time updates to remove an expensive syscall from every
- Add a patch to use
MONITORX/MWAITX
if available and spin (if necessary) before falling back to a full futex wait to reduce contention/increase successful object acquires in fsync- These instructions are available on AMD processors since Bulldozer, but Intel processors should still see some benefit from the spinloop
- Remove AC: Odyssey-specific fsync hacks and other game-specific fsync hacks that were in Proton's fsync
- Add a dubious patch to use the
get_async_keyboard_state
instead of the non-async, thread-specific keyboard state to reduce blocking/overhead- Also try using AVX512 instructions to set the key up/key down state instead of a for loop if available (probably worthless, but it reduced cycle count/time by some non-zero amount)
- This might break some applications which needed the thread-specific non-async keyboard state, but I've yet to find an example of that
- Clean up a lot of environment-variable-dependent patches to be less messy and cache the results instead of calling
getenv
multiple times (likecursor-clip-hack.patch
and the osu! direct rendering/childwindow hacks) - Add a
WINE_DISABLE_RAWINPUT
env var (not active by default, obviously) if you want to completely disable rawinput events, to reduce overhead if you're not using rawinput at all
Curious if anyone using this package will run into regressions related to the fsync changes. I tried to test them extensively with a synthetic test suite, but I can't be sure that every game/app will have the same behavior. I'm hoping its an improvement for most cases, as my benchmark was showing.
For extra information, refer to my comment on the AUR package, and the previous releases' notes.
Patches
Staging patches: all, minus eventfd-synchronization
(replaced with Proton's impl.) and ntdll-HashLinks
(replaced with pending upstream)
Other patches: repo at this tag. As usual, a log of all patches is also installed to /opt/wine-osu-spectator(-wow64)/patchlog.txt
.