pipewire: reduce realtime priority so it doesnt crash moby gpu driver

This commit is contained in:
Colin 2024-04-24 09:36:22 +00:00
parent 0cbb81cfea
commit 215864e3d4

View File

@ -22,32 +22,32 @@ in
};
suggestedPrograms = [
"rtkit"
# "rtkit"
"wireplumber"
];
# sandbox.method = "landlock";
sandbox.method = "bwrap"; #< also works, but can't claim the full scheduling priority it wants
sandbox.method = "landlock"; #< works, including without rtkit
# sandbox.method = "bwrap"; #< also works, but can't claim the full scheduling priority it wants
sandbox.whitelistAudio = true;
sandbox.whitelistDbus = [
# dbus is used for rtkit integration
# rtkit runs on the system bus.
# xdg-desktop-portal then exposes this to the user bus.
# therefore, user bus should be all that's needed, but...
# xdg-desktop-portal-wlr depends on pipewire, hence pipewire has to start before xdg-desktop-portal.
# then, pipewire has to talk specifically to rtkit (system) and not go through xdp.
# "user"
"system"
];
# sandbox.whitelistDbus = [
# # dbus is used for rtkit integration
# # rtkit runs on the system bus.
# # xdg-desktop-portal then exposes this to the user bus.
# # therefore, user bus should be all that's needed, but...
# # xdg-desktop-portal-wlr depends on pipewire, hence pipewire has to start before xdg-desktop-portal.
# # then, pipewire has to talk specifically to rtkit (system) and not go through xdp.
# # "user"
# "system"
# ];
sandbox.wrapperType = "inplace"; #< its config files refer to its binaries by full path
sandbox.extraConfig = [
"--sane-sandbox-keep-namespace" "pid" #< required for rtkit
];
# sandbox.capabilities = [
# # if rtkit isn't present, and sandboxing is via landlock, these capabilities allow pipewire to claim higher scheduling priority
# "ipc_lock"
# "sys_nice"
# ];
sandbox.capabilities = [
# if rtkit isn't present, and sandboxing is via landlock, these capabilities allow pipewire to claim higher scheduling priority
"ipc_lock"
"sys_nice"
];
sandbox.usePortal = false;
sandbox.extraPaths = [
"/dev/snd"
@ -88,12 +88,30 @@ in
name = libpipewire-module-rt
args = {
nice.level = 0
#rt.prio = 88
rt.prio = 0
#rt.time.soft = -1
#rt.time.hard = -1
#rlimits.enabled = true
#rtportal.enabled = true
#rtkit.enabled = true
rlimits.enabled = false
rtportal.enabled = false
rtkit.enabled = true
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
}]
'';
fs.".config/pipewire/pipewire-pulse.conf.d/20-sane-rtkit.conf".symlink.text = ''
# documented: <repo:pipewire/pipewire:src/daemon/pipewire-pulse.conf.in>
context.modules = [{
name = libpipewire-module-rt
args = {
nice.level = 0
rt.prio = 0
#rt.time.soft = -1
#rt.time.hard = -1
rlimits.enabled = false
rtportal.enabled = false
rtkit.enabled = true
#uclamp.min = 0
#uclamp.max = 1024
}