Skip to content

v0.2.5 - Bundle Handling & Node Performance

Latest
Compare
Choose a tag to compare
@Barinzaya Barinzaya released this 21 Jul 10:07

This update includes three changes, none of which are likely to be noticeable to the user.

First, rather than separating bundles into individual messages on the async thread and feeding them to the main thread one at a time, bundles are passed through to the main thread in whole. Most importantly, this ensures atomicity of bundles (per the OSC spec). All of the messages in a bundle are guaranteed to be processed on the same frame, and no other messages can be interspersed in the bundle. This also has the side effect of making it easier to implement bundle time tags in the future to "schedule" a bundle, but that hasn't been implemented yet.

Second, data output port changes are reduced, such that rather than recreating all data output ports every time an argument type changes, only the affected ports are recreated.

Finally, an unnecessary Broadcast on the input node is removed when processing a received message. This was incurring a large performance cost in serializing the node every time a message is received, but it's entirely unnecessary and has been fixed. Thanks to @TigerHix for pointing this out!