Skip to content

Conversation

cwoffenden
Copy link
Contributor

@cwoffenden cwoffenden commented Aug 14, 2025

This adds an interactive test to force growing the heap during playback:

test/runner interactive.test_audio_worklet_memory_growth

Tested with interactive64 and interactive_2gb (for interactive64_4gb the heap is already at the browser's max in testing so can't be grown).

It works by alloc'ing and leaking 2/3 of the current size until it can no longer do so. Emscripten regrows its wasm memory in the process, invalidating any data views (see #24891).

Edit: test can now grow from both the main and audio thread.

@cwoffenden cwoffenden changed the title [AUDIO_WORKLET] Add interactive heap growing test [AUDIO_WORKLET] Add interactive heap growing test NFC Aug 15, 2025
@cwoffenden
Copy link
Contributor Author

I'd be good to land this and its companion hard-pan test. Both are interactive so don't affect the CI.

@sbc100 sbc100 merged commit b4a7e77 into emscripten-core:main Aug 19, 2025
30 checks passed
sbc100 pushed a commit that referenced this pull request Aug 19, 2025
Built on #24931 (it touches the same file, but a rebase after merge will
fix this). This adds hard-panned audio files to test that the left and
right channels don't get flipped with any changes to the audio worklet
code (relevant for #24891, which changes how the copies are performed).
```
test/runner interactive.test_audio_worklet_hard_pans
```
The bass track is hard-left (with its right muted), drums are right.
@cwoffenden cwoffenden deleted the cw-aw-grow-heap branch August 19, 2025 19:24
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.

2 participants