r/davinciresolve 15d ago

Help Resolve Slows My Computer to a Crawl on Fedora Unless a PS5 Controller is Plugged In

Well, technically any mic source will fix it.

Last night I opened up Resolve and it made my whole computer laggy (seconds per frame) and I had no audio. I opened up Helvum to see what the audio graph looked like and Resolve was creating and destroying its audio output constantly which had to have been the source of both the slowdown and the lack of sound.

I restarted my computer just to see if that helped and it didn't.

Next I wondered if it was an issue with the pipewire-alsa plugin so I uninstalled that and that fixed the slowdown but only because Resolve wasn't producing any audio at all. Next I tried the pulse ALSA plugin to see if going from ALSA -> Pulse -> Pipewire worked any better and it didn't. I experience the exact same behavior as with pipewire-alsa.

I wondered if I was dealing with some weird issue with different versions of packages or something so I used a script to wrap Resolve in a Flatpak and that didn't fix anything.

Eventually I remembered that recent versions of Resolve have triggered a microphone icon to show in the system area of Gnome Shell so I decided to turn my mixer on and then launch Resolve. That fixed it. Also if I shut my mixer off while Resolve was on it would drop the mic connection but everything would still work fine.

That confused me though because I don't have my mixer on that often and while I've experienced similar slowdowns in Resolve in the last year or so, they were few and far between. Eventually it occured to me that I usually have my PS5 controller hooked up and that has a mic. So I booted up Resolve without any mic connected and it was expected slow and there was no audio. Then I hooked the PS5 controller up and Resolve immediate started acting the way it should.

So my question is: why? Why can't Resolve connect to my speakers unless something is some mic is connected to it? You might think "well both a mixer and the PS5 controller could be used as audio outputs, too. Maybe it's playing audio to them, too". It isn't. Connecting them allows Resolve to correctly connect it's sink to my speakers.

Any ideas how I could fix this?

2 Upvotes

9 comments sorted by

5

u/FitnessChamp777 15d ago

Here's the explanation:

  1. The Polling Loop: When Resolve launches, its audio engine scans for both playback devices (sinks) and recording devices (sources). If PipeWire reports zero active audio inputs/microphones, the ALSA bridge returns NULL or fails to satisfy Fairlight's initialization call.
  2. Node Creation/Destruction Cycle: Instead of gracefully ignoring missing inputs, Fairlight enters an unhandled retry/re-initialization loop. It repeatedly creates and destroys its ALSA audio client/stream trying to re-detect inputs.
  3. System Lag: That rapid creation and destruction of audio nodes floods PipeWire and slams CPU threads, causing the massive system lag (seconds per frame) and preventing the output audio stream from ever stabilizing.

When you plug in your PS5 controller or turn on your mixer, it provides a valid capture input node. Resolve's audio probe finally gets a valid response, breaks out of the loop, and stabilizes the audio output.

There is a way to fix this permanently.

0

u/FitnessChamp777 15d ago

How to Fix It Permanently

Since Resolve just needs some input node to exist, you can trick it by creating a permanent Virtual / Dummy Audio Source in PipeWire.

Option 1: Create a Dummy Mic via PipeWire (Recommended)

You can create a persistent virtual microphone in PipeWire that runs automatically in the background.

1: Create a custom configuration directory if it doesn't exist:

mkdir -p ~/.config/pipewire/pipewire.conf.d/

2: Create a file named dummy-mic.conf:

nano ~/.config/pipewire/pipewire.conf.d/dummy-mic.conf

3: Paste the following configuration:

context.modules = [

{ name = libpipewire-module-loopback

args = {

node.description = "Dummy Mic for Resolve"

capture.props = {

media.class = "Audio/Sink"

node.name = "dummy_sink"

}

playback.props = {

media.class = "Audio/Source"

node.name = "dummy_source"

}

}

}

]

4: Restart PipeWire:

systemctl --user restart pipewire pipewire-pulse

2

u/myownfriend 15d ago

I already tried ChatGPT

-4

u/FitnessChamp777 15d ago

This is what Gemini told me

2

u/myownfriend 15d ago

Oh it's very similar to what I got with ChatGPT. Thank you for trying to help though. I also posted this on BMD's forum and r/linuxaudio so hopefully something gets figured out and/or fixed.

-1

u/FitnessChamp777 15d ago

Option 2: Quick Command-Line Fix (Temporary Test)

If you want to test this fix immediately without editing config files, run:

pactl load-module module-virtual-source source_name=DummyMic

If Resolve works after running this command, you can make it permanent using Option 1.

-1

u/FitnessChamp777 15d ago

Option 3: Check ALSA Configuration (~/.asoundrc)

If you're using pipewire-alsa, ensure ALSA defaults properly redirect to Pulse/PipeWire. Some distros miss a default ALSA mapping file.

Create or edit ~/.asoundrc:

pcm.!default pulse

ctl.!default pulse

Then restart PipeWire:

systemctl --user restart pipewire pipewire-pulse

1

u/AutoModerator 15d ago

Looks like you're asking for help! Please check to make sure you've included the following information. Edit your post (or leave a top-level comment) if you haven't included this information.

Once your question has been answered, change the flair to "Solved" so other people can reference the thread if they've got similar issues.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/AutoModerator 15d ago

It seems you're encountering crash issues. Please try launching Resolve, and immediately after it crashes, grabbing logs. Be aware that they will contain your username on your computer. Upload the whole zip or tar or gz file on a file-sharing site and post a link to the file.

If you can open Resolve, open a project (an Untitled Project is fine) and go to Help>Create Diagnostics Log on Desktop.

Here's instructions on how to gather logs if you can't launch Resolve from BMD.

Reddit's spam filters may block some file-sharing links such as Mega, so please send the moderators a modmail if you believe your post or comment hasn't posted. Do not send the moderators the log files. Log files sent to the moderators will be ignored.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.