You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sceAudioPropagationSourceRender currently clears every destination buffer even though the existing no-propagation model supplies no audio paths. That erases any audio already mixed by the caller or another source. Preserve the destination instead, while retaining all existing descriptor, system, source, buffer and format validation.
The additive-output contract comes from the public SharpProspero interop declaration and render-buffer documentation. This is a source-based correction, not console-measured behaviour. The technical-debt entry records that limitation. No acoustic simulation, path allocation, dry-signal rendering or additional formats are implemented, and this does not claim to unblock a title.
Tested
Arch Linux, Ryzen 9 7950X. Based on current main 03c4cb5e78e0679db09cbad743981068c40ed2c6.
ctest --test-dir build-full -R '^guest_audio_propagation$' --output-on-failure: passed, zero skips. Tests preserve distinct finite positive/negative sample patterns for one source, separate destinations with a shorter output range, a shared destination, overlapping destinations and an initially silent mix. Existing rejected-input and lifetime checks remain covered.
Negative control: the same updated test on unmodified main fails with empty source erased an existing mix; removing the destructive clear makes it pass.
Conventions, test registration and whitespace checks passed. No native-title, Windows or console run performed.
Checklist
Based on current main; no other open PR implements the same functions
One topic per PR; follow-ups go in a new PR
No comments in code except technical debt
Unimplemented paths throw; existing silent-stub limitations remain documented in the library debt file
No notes, investigation .md files or images added to the repository
New third-party code is a submodule built from source (none added)
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
Temporarily parking this PR to free one of the 20 open slots for the refreshed ULT condition-variable implementation in #5942, which addresses four imports previously blocking Earthion PPSA28061. This audio correction remains valid, but currently has no demonstrated native-title benefit or outside validation.
Implementation and tests are preserved on fix/audio-propagation-preserve-mix at 4c2b12439f3883cff7c4dcba10f31a3b047bf311; the branch is retained. Reopen when a title reproduces the erased-mix problem, an independent review/test makes it ready to merge, or an available slot makes it the best next contribution.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
sceAudioPropagationSourceRendercurrently clears every destination buffer even though the existing no-propagation model supplies no audio paths. That erases any audio already mixed by the caller or another source. Preserve the destination instead, while retaining all existing descriptor, system, source, buffer and format validation.The additive-output contract comes from the public SharpProspero interop declaration and render-buffer documentation. This is a source-based correction, not console-measured behaviour. The technical-debt entry records that limitation. No acoustic simulation, path allocation, dry-signal rendering or additional formats are implemented, and this does not claim to unblock a title.
Tested
Arch Linux, Ryzen 9 7950X. Based on current main
03c4cb5e78e0679db09cbad743981068c40ed2c6.cmake --build build-full --target libs guest_audio_propagation_tests -j24passed, Release, bundled dependencies.ctest --test-dir build-full -R '^guest_audio_propagation$' --output-on-failure: passed, zero skips. Tests preserve distinct finite positive/negative sample patterns for one source, separate destinations with a shorter output range, a shared destination, overlapping destinations and an initially silent mix. Existing rejected-input and lifetime checks remain covered.empty source erased an existing mix; removing the destructive clear makes it pass.Checklist
main; no other open PR implements the same functions.mdfiles or images added to the repository