Skip to content

merge: de-leak AU OfflineRender / VST3 process-mode fixes into master (product pin union) - #23

Merged
unohee merged 4 commits into
masterfrom
merge/product-pins-union-20261021
Oct 21, 2026
Merged

unohee merged 4 commits into
masterfrom
merge/product-pins-union-20261021

Conversation

@unohee

@unohee unohee commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Part of the Intrect shared-stack P0: one fork rev for every product.

Today de-artifact pins bd819ab (already in master) and de-leak-rt pins 91266c6, which master lacks. Neither has the other's fixes:

  • de-artifact is missing 91266c62 (report kAudioUnitProperty_OfflineRender as the process mode) and f68c86bd (forward current VST3 setup/callback process modes).
  • de-leak-rt is missing the AU set_property notification fixes (1152dc72, bd819abf) and the AUD-2067 lifecycle serialization.

This merges 91266c6 into master. One conflict in src/wrapper/vst3/wrapper.rs: both sides added a helper after Wrapper::new (clear_process_outputs from AUD-2067, process_mode_from_host from f68c86b) — both kept, no logic change.

Verification

  • cargo test --lib --features "vst3 au standalone": 161 passed (incl. the new setup_processing_tests).
  • cargo fmt --check clean.
  • Product-level checks (au_qc 44.1/48 kHz, AAX smoke, offline render) follow in each product's pin-bump PR; this PR is not tagged pinned/* until those pass.

The AU wrapper ignored kAudioUnitProperty_OfflineRender, so an offline
bounce in hosts such as Logic still reached the plugin as real-time:
AuProcessContext fell back to the trait's `host_render_mode() == None`
and BufferConfig.process_mode was hard-coded to Realtime.

Support the property on the global scope (GetPropertyInfo/Get/Set as a
writable UInt32 stored in an atomic, settable while initialized), feed
it into BufferConfig.process_mode for Initialize and ClassInfo restore,
and snapshot it once per render block so host_render_mode() follows a
change between renders without re-initialisation, as the VST3 and CLAP
wrappers already do.
…-artifact pin

Union of the two product pins (bd819ab de-artifact, 91266c6 de-leak-rt) so
both products can ship the same fork rev. Conflict in vst3/wrapper.rs: both
sides added a helper next to Wrapper::new (clear_process_outputs,
process_mode_from_host); both kept.
@unohee
unohee merged commit 90b97b0 into master Oct 21, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant