add audio-rt module to fight xruns under cpu load
EasyEffects DSP plugins (rnnoise, deepfilternet, crystalizer) drop audio when the system is under load. Layered workaround with per-optimization toggles for bisecting impact: - cgroup-based CPU partitioning: dedicated audio.slice with AllowedCPUs pinning, restricted app/session/background slices for everything else - rlimits so PipeWire's module-rt sets SCHED_FIFO 88 directly instead of going through RTKit's priority-10 ceiling - persistent watcher that re-applies performance governor on audio cores (gamemoded/PPD keep resetting it) - ananicy rule pinning easyeffects to nice -12 for non-RT DSP threads - znver4-tuned rebuilds of easyeffects and its DSP deps Master switch + per-feature toggles via lumpiasty.audioRt.*; all enabled by default on acer host. None of this fully eliminates dropouts on this thermally constrained laptop but each layer is independently testable.
This commit is contained in:
@@ -20,13 +20,21 @@
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
|
||||
extraConfig.pipewire."99-quantum" = {
|
||||
"context.properties" = {
|
||||
"default.clock.quantum" = 1024;
|
||||
"default.clock.min-quantum" = 1024;
|
||||
"default.clock.max-quantum" = 8192;
|
||||
};
|
||||
};
|
||||
|
||||
wireplumber.configPackages = [
|
||||
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/99-alsa-nova-3.conf" ''
|
||||
monitor.alsa.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
node.name = "alsa_output.usb-SteelSeries_Arctis_Nova_3-00.analog-stereo"
|
||||
node.name = "alsa_output.usb-SteelSeries_Arctis_Nova_7-00.analog-stereo"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
@@ -34,7 +42,7 @@
|
||||
audio.format = "S24LE"
|
||||
audio.rate = 96000
|
||||
api.alsa.period-size = 1024
|
||||
api.alsa.period-num = 4
|
||||
api.alsa.period-num = 8
|
||||
api.alsa.disable-batch = false
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user