mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +02:00
Like to an fsync guide for Ubuntu
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user