Like to an fsync guide for Ubuntu

This commit is contained in:
Robbert van der Helm
2021-04-01 20:36:32 +02:00
parent 790c1f532e
commit bb0a605a41
+21 -20
View File
@@ -463,27 +463,28 @@ the yabridge [Discord](https://discord.gg/pyNeweqadf).
## Performance tuning ## Performance tuning
Running Windows VST plugins under Wine should have a minimal performance impact, Running Windows plugins under Wine should have a minimal performance overhead,
but you may still notice an increase in audio spikes and overall processing but you may still notice an increase in latency spikes and overall DSP load.
latency. Luckily there are a few things you can do to get rid of most or all of Luckily there are a few things you can do to get rid of most or all of these
these negative side effects: negative side effects:
- First of all, you'll want to make sure that you can run programs with realtime - First of all, you'll want to make sure that you can run programs with realtime
priorities. Note that on Arch and Manjaro this does not necessarily require a scheduling. Note that on Arch and Manjaro this does not necessarily require a
realtime kernel as they include the `PREEMPT` patch set in their regular realtime kernel as they include the `PREEMPT` patch set in their regular
kernels. You can verify that this is working correctly by running `chrt -f 10 date`, kernels. You can verify that this is working correctly by running
which should print the current date and time, and running `uname -a` should `chrt -f 10 whoami`, which should your username, and running `uname -a` should
print something that contains `PREEMPT` in the output. You can also try print something that contains `PREEMPT` in the output. You can also try
enabling the `threadirqs` kernel parameter which can in some situations help enabling the `threadirqs` kernel parameter which can in some situations help
with xruns. with xruns.
- Make sure you're using the performance frequency scaling governor, as changing - Make sure that you're using the performance frequency scaling governor, as
clock speeds in the middle of a real time workload can cause latency spikes. changing clock speeds in the middle of a real time workload can cause latency
spikes.
- The last but perhaps the most important thing you can do is to use a build of - The last but perhaps the most important thing you can do is to use a build of
Wine with Proton's fsync patches. This can improve performance significantly, Wine compiled with Proton's fsync patches. This can improve performance
with certain multithreading-heavy plugins. If you're running significantly when using certain plugins. If you're running Arch or Manjaro,
Arch or Manjaro, then you can use [Tk-Glitch's Wine then you can use [Tk-Glitch's Wine
fork](https://github.com/Frogging-Family/wine-tkg-git) for a customizable fork](https://github.com/Frogging-Family/wine-tkg-git) for a customizable
version of Wine with the fsync patches included. Aside from a patched copy of version of Wine with the fsync patches included. Aside from a patched copy of
Wine you'll also need a supported kernel for this to work. Manjaro's kernel Wine you'll also need a supported kernel for this to work. Manjaro's kernel
@@ -498,16 +499,16 @@ these negative side effects:
env -i HOME="$HOME" $SHELL -l -c 'echo $WINEFSYNC' env -i HOME="$HOME" $SHELL -l -c 'echo $WINEFSYNC'
``` ```
If this prints `1` then everything is set up correctly. If you're using GDM or If this prints `1` then everything is set up correctly. If you're using GNOME,
LightDM, then you should replace `$SHELL` in the command above with `sh` XFCE, or any other desktop environment using GDM, LightDM or LXDM, then you
before running it. Running `wineboot` from a terminal should now also print should replace `$SHELL` in the command above with `sh` before running it.
`fsync: up and running.`. You'll have to log out and back in again for this to You'll have to log out and back in again for this to take effect on
take effect on applications launched from the GUI. applications launched from the GUI.
If anyone knows a good way to install an fsync patched version of Wine on You can find a guide to setting these things up on Ubuntu
other distros, then please let me know! [here](https://zezic.github.io/yabridge-benchmark/).
- If you have the choice, the VST3 version of a plugin usually performs better - If you have the option, the VST3 version of a plugin usually performs better
than the VST2 version. This is because with VST2 a typical audio processing than the VST2 version. This is because with VST2 a typical audio processing
cycle requires _at least_ two function calls plus another function call for cycle requires _at least_ two function calls plus another function call for
every parameter change and MIDI event. With VST3 all of that gets wrapped up every parameter change and MIDI event. With VST3 all of that gets wrapped up