Mitigate issues of expensive plugin analysis -- #7795

Plugin analysis uses a GUI thread instance of a given plugin to
perform a IR analysis.

Some plugins can be rather CPU expensive to analyze.
e.g. a-hi/lo-filter when interpolating is recalculating biquad
coefficients every 64samples during the 8k IR analysis. This can take
a significant amount of time on older CPUs.

Furthermore live-signal collection happens in the rt-thread,
using cross-thread signals. Signal collection is  periodically initiated
from the same timeout signal as analysis.

Analysis is was done using default thread priority, which is higher
than the GUI redraw priority (PRIORITY_HIGH_IDLE).

So it was possible to contiguously initiate analysis, loading the CPU
and preventing redraws.
This commit is contained in:
Robin Gareus 2019-08-24 17:11:10 +02:00
parent ab62c8a926
commit 3f19db4180
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
1 changed files with 1 additions and 1 deletions

View File

@ -224,7 +224,7 @@ void
PluginEqGui::start_updating ()
{
if (!_update_connection.connected() && is_visible()) {
_update_connection = Glib::signal_timeout().connect (sigc::mem_fun (this, &PluginEqGui::timeout_callback), 250);
_update_connection = Glib::signal_timeout().connect (sigc::mem_fun (this, &PluginEqGui::timeout_callback), 250, Glib::PRIORITY_DEFAULT_IDLE);
}
}