diff --git a/CHANGELOG.md b/CHANGELOG.md index 251da9c5..d3373e45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Changed + +- Change the low `RLIMIT_RTTIME` warning to mention setting up realtime + priviliges instead of changing PipeWire's config now that PipeWire MRs + [!1118](https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1118) + and + [!1120](https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1120) + have been merged. + ## [3.8.0] - 2022-01-15 ### Added diff --git a/README.md b/README.md index 185fd55a..5d027d73 100644 --- a/README.md +++ b/README.md @@ -580,7 +580,7 @@ the yabridge [Discord](https://discord.gg/pyNeweqadf). there instead. - If yabridge prints errors or warnings about memory locking limits, then that - means that you have not yet set up realtime priviliges for your user. Setting + means that you have not yet set up realtime privileges for your user. Setting the memlock limit to unlimited (or -1) is usually part of this process. How you should do this will depend on your distro. On _Arch_ and _Manjaro_, you will need to install the `realtime-privileges` package, add your user to the @@ -593,13 +593,19 @@ the yabridge [Discord](https://discord.gg/pyNeweqadf). to the `audio` group and reboot. In any other case you may need to [set this up yourself](https://jackaudio.org/faq/linux_rt_config.html). -- Using PipeWire's JACK implementation might cause certain plugins to crash with - the out of the box configuration, and yabridge will warn you about this in - advance. With PipeWire 0.32.0 you only need to change a single configuration - file to prevent this from happening. Simply copy - `/usr/share/pipewire/jack.conf` to `~/.config/pipewire/jack.conf`, uncomment - the `rt.time.soft` and `rt.time.hard` arguments for the - `libpipewire-module-rt` module, and then set both to `-1`. Alternatively, give +- The above process also applies to warnings about low `RLIMIT_RTTIME` values + when using PipeWire's JACK implementation. If you don't change this, then + certain slow loading plugins may crash during initialization or at any other + time. Starting with PipeWire 0.3.44, you only need to make sure your user has + realtime privileges to resolve this warning. If your user does not have these + permissions, then PipeWire will use RTKit instead of regular realtime + scheduling which requires this limit to be set for it to work. + + With PipeWire 0.3.32 through 0.3.43 you'll need to change a configuration file + to prevent this from happening. Simply copy `/usr/share/pipewire/jack.conf` to + `~/.config/pipewire/jack.conf`, uncomment the `rt.time.soft` and + `rt.time.hard` arguments for the `libpipewire-module-rt` module, and then set + both to `-1`. Alternatively, give [this](https://github.com/robbert-vdh/dotfiles#pipewire) optimized PipeWire configuration a try. diff --git a/src/plugin/bridges/common.h b/src/plugin/bridges/common.h index 98e746eb..a2fca5f7 100644 --- a/src/plugin/bridges/common.h +++ b/src/plugin/bridges/common.h @@ -171,10 +171,11 @@ class PluginBridge { "RLIMIT_RTTIME is set to " + std::to_string(*rttime_limit) + " us. This can happen when using PipeWire's JACK " - "backend with the default settings. Some plugins " - "may crash during initialization because of this, " - "so it's recommended to either increase or to " - "remove this limit. Check the readme for " + "backend with RTKit instead of regular realtime " + "scheduling. Some plugins may crash during " + "initialization because of this, so it's " + "recommended to set up proper realtime privileges " + "for your user. Check the readme for " "instructions on how to do that.", false); } else {