v0.2.12 - a freeze now names the plugin that caused it
A slow plugin does not only drop audio, it freezes Resolve. This release measures that instead of guessing at it.
Resolve holds one lock per plugin for the whole of its processing call, and the same lock is taken when the playhead moves or the audio preview is cleared. So while a hosted plugin is working, the next thing you do that touches that effect waits behind it — and a plugin that takes seconds to answer looks exactly like a hung application.
Added
-
A watchdog on the hosted processing call. Every block is timed, and a block over 50 ms is written to the log by name:
audio: SLOW - "MAutoDynamicEq" took 4231.077 ms for 1024 frames (block 1 past the limit, worst 4231.077 ms)FXBRIDGE_SLOW_MSmoves the threshold. A 1024-frame block at 48 kHz is 21 ms of audio, so 50 ms has already missed the deadline twice over.
Nothing is aborted. A VST3 call through yabridge cannot be cancelled once it is in flight, and pretending otherwise would trade a freeze for a corrupted plugin. What the line buys is the name of the plugin to remove, which no crash dump carries.
Where this came from
A tester hit the same freeze four times on 2026-09-05, each with the identical stack:
ClearAudioPreview -> Previewer::Reset -> BMDChainFX::ResetHistory
-> BMDAudioPluginImpl::ResetHistory+0x34 <- waiting on a lock
Reading libBMDAudioPlugins.so settles why that matters. Of the five functions that lock a plugin's own this+0x218, two are ResetHistory and PreProcess — and PreProcess is the call under which a hosted plugin runs.
Not fixed, and not claimed to be
Whether the hosted plugin is the slow party is still unmeasured. That is the point of the watchdog: the next freeze either names a plugin or clears the bridge. The frozen process was observed at 145% CPU, so it is a spin rather than a plain deadlock; where that CPU goes is not known.
Install
install -Dm755 libfxbridge.so ~/.local/share/BMDAudioPlugins/libfxbridge.so
install -Dm755 fxbridge-scan ~/.local/share/BMDAudioPlugins/fxbridge-scanBuilt in an Ubuntu 20.04 rootfs; floor is GLIBC_2.16, CXXABI_1.3.9. Verify with sha256sum -c SHA256SUMS.