mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-06-22 03:43:59 +02:00
Make sure effProcessEvents() also never allocates
This basically changes the default small vectors during VST2 event processing from 256 bytes to the size of a `DynamicVstEvents` object (which also includes a small_vector to hold MIDI events without allocating) and makes them thread local. We already have a similar optimization for VST3. There it's a bit neater since we already had to separate audio processing functions from non-time critical functions. Here we don't have that separation, so we just made these buffers thread local, large enough to hold our predefined number of events, and we then just shrink them to fit if these buffers grow even more (which can only happen after reading or writing chunk data). The change doesn't specifically target `effProcessEvents()`, but that's where you would see the differences. This is also relevant for `audioMasterProcessEvents()`.
This commit is contained in:
+2
-2
@@ -49,8 +49,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
- VST2 audio processing also received the same small vector optimization to get
|
||||
rid of any last potential allocations during audio processing.
|
||||
- The same small vector optimization has been applied across yabridge's entire
|
||||
communication architecture, meaning that most function calls should no longer
|
||||
produce any allocations for both VST2 and VST3 plugins.
|
||||
communication and event handling architecture, meaning that most function
|
||||
calls should no longer produce any allocations for both VST2 and VST3 plugins.
|
||||
- Changed the way mutual recursion in VST3 plugins on the plugin side works to
|
||||
counter any potential GUI related timing issues with VST3 plugins when using
|
||||
multiple instances of a plugin.
|
||||
|
||||
Reference in New Issue
Block a user