I tried to benchmark various kernels available as binary packages for Ubuntu as well as to check if fsync/futex2 makes a noticeable difference for Wine. The Bitwig project used for the benchmark consists of 4 VST synths running in parallel, and 3 VST effects on a master chain. All plugins are non-native and running with yabridge. CPU is AMD Ryzen 3 1200 (8-core version) running at 3700 MHz, and RAM is DDR4 running at 3200 MHz with 16-18-18-36 timings.
|Wine Staging 6.5||2.221 ms||2.301 ms||1.868 ms||2.215 ms|
|Wine Staging 6.5 TkG||2.215 ms||2.268 ms||1.852 ms||1.734 ms|
The Liquorix kernel shows surprisingly good results even without fsync/futex2 enabled.
The XanMod kernel (STABLE, non-rt version, without CacULE) makes things better if you use it with fsync/futex2-enabled Wine version. It performs a bit better than Liquorix and gives me about 3%-5% higher efficiency.
Enabling fsync on the supported kernels gives me a feel that spikes are less likely to occur, but I can't prove it yet so you will have to check it yourself. Obviously, it has to be enabled on XanMod kernel to make an advantage out of it.
How to get system-wide Wine with TkG patches on Ubuntu easily
There is a repo by Kron4ek which provides various binary Wine builds.
- Install the stock Wine provided by Ubuntu or Wine Staging. It's an easy way to get all dependencies needed for every other Wine version.
- Navigate to the Releases section and download a
.tar.xzarchive for your architecture (it's most probably an amd64). The archive should have a "tkg" in its name. Example:
- Unpack the archive you downloaded and find a
binfolder inside it – path to that folder will be used as an override for the
- Make changes to your shell's environment by editing its profile. Please refer to the yabridge manual to find out which file is used by your shell. Most of the time it's one of
Add the next construction to the end of file:
if [ -d "$HOME/Downloads/wine-6.5-staging-tkg-amd64/bin" ] ; then PATH="$HOME/Downloads/wine-6.5-staging-tkg-amd64/bin:$PATH" fiWhere
$HOME/Downloads/wine-6.5-staging-tkg-amd64/binis a path to the
binfolder from previous step. Prepending it to the
$PATHvariable gives it higher priority when system searches for executables, so
wine, winecfgand other Wine executables will be picked from that folder instead of system one.
Explicitly enable fsync/futex2 by adding the next line to the file:
- Add the next construction to the end of file:
- Relogin to your account.