Add a section on performance tuning

And mention @nine7nine's Wine PKGBUILD as a good starting point for
using fsync.
This commit is contained in:
Robbert van der Helm
2020-07-28 21:10:47 +02:00
parent c3638a7d5d
commit 4dda7d5f8f
+37
View File
@@ -26,6 +26,7 @@ compatibility while also staying easy to debug and maintain.
- [Editor hosting modes](#editor-hosting-modes)
- [Example](#example)
- [Troubleshooting common issues](#troubleshooting-common-issues)
- [Performance tuning](#performance-tuning)
- [Runtime dependencies and known issues](#runtime-dependencies-and-known-issues)
- [Building](#building)
- [32-bit bitbridge](#32-bit-bitbridge)
@@ -330,6 +331,42 @@ group = "This will be ignored!"
being able to start. There should be plugin output messages in your DAW or
terminal that with more information on what went wrong.
## Performance tuning
Running Windows VST plugins under Wine should have minimal performance impact,
but you may still notice an increase in latency and audio spikes. There are a
few things you can do to get rid of most or all of these negative side effects:
- First of all, you'll want to make sure that your user is able to run programs
with realtime privileges. Note that on Arch and Manjaro this does not
necessarily require a realtime kernel as the `PREMPT` patch set is enabled on
their regular kernels. You can verify that this is set up correctly by running
`chrt -f 10 whoami`, which should print your username.
- The second, possibly even more important thing is to use a build of Wine with
Proton's fsync patches. This can improve performance significantly when using
a lot of plugins at once. If you're running Arch or Manjaro, then you can use
[this](https://github.com/nine7nine/pkgbuilds_nspa/tree/master/wine-nspa)
audio production optimized Wine PKGBUILD. Aside from a patched version of Wine
you'll also need a supported kernel for this to work. Manjaro's kernel
supports fsync out of the box, and on Arch you can use the `linux-zen` kernel.
Finally you'll have to set the `WINEFSYNC` environment variable to `1` to
enable fsync. See the [search path setup](#search-path-setup) section for more
information on where to do this. You can use the following command to check if
this is set correctly:
```shell
env -i HOME="$HOME" $SHELL -l -c "echo $WINEFSYNC"
```
If this prints `1` then everything is set up correctly. You'll have to log out
and back in again for this to take effect on applications launched from the
GUI.
I don't know the what the best way to install an fsync patched version of Wine
on other distros is, so if anyone knows more about this then please let me
know and I'll add it to this section.
## Runtime dependencies and known issues
Any VST2 plugin should function out of the box, although some plugins will need