From fa2b348fc2b9d7d1439099d14ec7fb8119f7af0c Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Sat, 25 Nov 2023 13:49:12 +0100 Subject: [PATCH] Run effVendorSpecific on the main thread This should fix a freeze in Renoise. --- src/wine-host/bridges/vst2.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/wine-host/bridges/vst2.cpp b/src/wine-host/bridges/vst2.cpp index 164a7d29..10deeaf0 100644 --- a/src/wine-host/bridges/vst2.cpp +++ b/src/wine-host/bridges/vst2.cpp @@ -98,12 +98,16 @@ static const std::unordered_set safe_mutually_recursive_requests{ * New Sonic Arts' Vice plugin spawns a new thread and calls drawing code * while changing sample rate and block size. We'll need to see if doing * this on the main thread introduces any regressions. + * NOTE: `effVendorSpecific` is used by Renoise to set the content scale, so it + * needs to run on the main thread: + * + * () */ static const std::unordered_set unsafe_requests{ - effOpen, effClose, effEditGetRect, effEditOpen, - effEditClose, effEditIdle, effEditTop, effMainsChanged, - effGetChunk, effSetChunk, effBeginLoadBank, effBeginLoadProgram, - effSetSampleRate, effSetBlockSize}; + effOpen, effClose, effEditGetRect, effEditOpen, + effEditClose, effEditIdle, effEditTop, effMainsChanged, + effGetChunk, effSetChunk, effBeginLoadBank, effBeginLoadProgram, + effSetSampleRate, effSetBlockSize, effVendorSpecific}; /** * These opcodes from `unsafe_requests` should be run under realtime scheduling