Repository navigation
Conversation
6 tasks done
Owner
Author
|
Development and review continue in the upstream project at boykopovar#9006, which carries the source-owned path-slot work plus the render-format follow-up. Closing this fork-only review entry to keep the active review upstream. The branch is preserved. |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Saros PPSA07631 v01.000.000 requests audio path0 immediately after source creation, before setting source attributes or calculating paths. The existing no-propagation model throws because it has no path handles.
Add a source-owned pool of36 initially empty, invalid path slots. Return stable handles by index, copy validated path configuration, expose the stored point count, and invalidate the handles when their source or system is destroyed. Reject malformed updates and references to another system's materials. The 224-byte path and48-byte point layouts and36-path maximum follow the public SharpProspero interop declarations. Fixed-pool allocation and reporting36 slots through the count query are inferred, not measured on a console.
The inactive-path renderer also validates whole float frames for formats0/1/2/4/5 (4/9/16/8/8 channels) and preserves the existing mix when every path is empty, invalid or muted. The public API describes an additive render contract; returning no contribution must not erase the caller's mix. A PID-matched Saros diagnostic sees format0 with4096 bytes of mono float PCM and16384 output bytes (1024 four-channel frames), and its18 configured slots have0 points with Invalid flags.
This is configuration/lifetime and inactive-path render support. Active nonempty acoustic rendering remains explicitly unsupported and throws before changing output. Ray-based path calculation, occlusion, reflections and reverb remain unimplemented. This draft is not a claim that Saros runs.
Tested
Current topic
db91769497on main31bfc4e869. Linux strict C++20 compilation (-Wall -Wextra -Werror) and the existing audio-propagation test with added lifecycle/configuration cases pass. The project CMake guest_audio_propagation check also passes on the private Saros integration.The tests cover immediate path lookup, stable first/last slots, bounds and null outputs, copied caller data, invalid and cross-system materials, nonfinite input, failure preserving old state, source/system teardown, and active rendering refusal without writes. A negative control removing only owned path-object teardown fails with
path survived source destruction; restoring it passes. Conventions and whitespace checks pass. Full CI run 38538209446 passes headdb91769497bb4a8dfd993801e9ed6fb87e7d14f4against base31bfc4e8693d86318824d83c47cfa418703a7cc8: Linux 1,071 passed / 46 skipped; Windows 738 passed / 402 skipped.guest_audio_propagationpasses on both. Skipped cases and macOS remain unvalidated.Saros native verification on a recorded integration with boykopovar#5716, boykopovar#5176, boykopovar#757/boykopovar#758, boykopovar#4706 and boykopovar#5647 passes the former path0 lookup and proceeds to
sceAudioPropagationSourceRender: render format0 is unknown. The getter/configuration stage is exercised; rendering, title menu and gameplay remain unverified. None of those peer changes is included in this branch. No standalone current-main title unblock is established. No private game assets, screenshots, binary excerpts or raw game logs are included.Current-main native check
On main
d92a8dadplus the common private SPIRV-Tools teardown repair, Saros aborts at 70.25 seconds withsceAudioPropagationSourceGetAudioPath: index 0 out of range (0 audio paths). A focused current-main integration of this topic, boykopovar#6160's FS table and boykopovar#6094's atomic policy passes that getter and renders the Soltari intro logo by 240 seconds in a cold run. The full Linux Release build and nine selected shader/audio CTests pass on Radeon and Lavapipe. The cold run ends at its planned 300-second limit; a warm run then aborts around 100 seconds with GPU virtual-memory faults and Vulkan device loss. Both restore the temporary kernel setting. This establishes progress past the audio initialization failure, with menu/gameplay and active acoustic rendering still unverified. The exact public/private test revisions and remaining component assumptions are recorded in #73.Checklist
Earlier private integrations passed getter/setter initialization, then encountered the format0 refusal, computed call target at pc0x130 and unaligned BDA access. Those reports are historical; the current-main integration's remaining reproduced gate is the GPU fault described above.