June 3, 2021•184 words
WaitMultipleObjects() Win32 API call
Using Wine for multimedia without glitches is highly dependent on futex2() API, which is in foreseeable making its way to the mainline Linux kernel:
More precisely, the patches add futex_waitv(), which allows a drop-in replacement of WaitMultipleObjects() Win32 API call, leading much more efficient single round-trip processing, rather than having to use a variable number of futex() calls.
In order to take advantage of the new API now, a patched kernel must be used. Arch Linux provides and officially supports Zen Kernel (linux-zen), which contains a well-considered set of patches on top of the mainline kernel for desktop usage, include futex2() patches.
In addition a patched version of Wine is required because official releases still lack the support futex2() API (for more than obvious reasons). A popular, and "field-tested" choice is wine-tkg available at:
WineASIO is ASIO driver proxy for JACK Audio available at:
In Arch Linux the AUR package is out-dated, but luckily WineASIO is somewhat trivial to compile from sources. Once successfully setup, Windows audio applications should discover an ASIO device unsurprisingly having the name "WineASIO".