Repository navigation
Lost Soul Aside (PPSA26358): bring-up and remaining blockers #4401
eljackjoestar-cmd
started this conversation in
Game bring-up
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Tracking Lost Soul Aside, PPSA26358, on Windows 11 with NVIDIA RTX 5070 (12 GB VRAM, driver 617.14), Ryzen 7 7800X3D, 32 GB RAM and GCC 15.2 Release builds.
Current status — 2026-10-14
The stable integration is now
61e07e20028b7526c536d999f688849ee12f6a20, based on mainee9037d85. It contains the current published heads of #4715, #4806, #5049, #5198, #5461 and #5472. The earlier local line-strip allowance is now covered by #4715 atd4b59ce9f; local copies of that change and its integration adjustments have been replaced with the published patch. Main includes #4551 and #5003. No additional unpublished runtime fix remains in this integration.The Windows Release integration build succeeded. Twelve focused cache/BDA/depth/rendering/AudioOut2 tests passed in 11.57 s, three descriptor/state/preparation tests in 2.08 s, and the two image regressions on AMD integrated graphics in 1.25 s. After replacing the old #4715 integration with its current published head, six graphics/state/descriptor/preparation/image tests passed in 7.20 s. These are combined-integration checks, not new isolated main-versus-one-PR measurements.
#4806, #5049, #5198, #5461 and #5472 have been rebased and pushed onto
ee9037d85; #5472 still depends on #5461. The image proof extends main's cache codec version 30 to 31 and updates its aggregate-field-count assertion. The two rendering fixes retain their native gfx1036 measurements and NVIDIA/AMD readback coverage.The title background renders the crystal terrain and floor again. Green flashes/tint fixes are in main (#4551/#5097). Startup/title audio remains fixed by #5198, previously confirmed by the tester. Background flicker still uses the confirmed
r.AllowOcclusionQueries=0workaround; a native query fix remains outstanding.Loading blocker and controlled experiments
Normal-clock runs on the newer main still reach
LastObjectNotReadyForFinishDestroy is NULLduring level loading after the observed title screen and two X presses. Gameplay has not been verified. Run 134 had approximately 12,467 MiB private memory and 8,326 MiB free Windows commit headroom immediately before the assertion, so this run did not hit the resource guard. Its dump again shows the submission thread inholdFlipBehindWorker; a shader-preparation thread was also active inSpecialization::prune. That sample alone does not prove which task prevents cleanup.The following experiments did not establish a loading fix and are removed from the stable runtime:
gc.MultithreadedDestructionEnabled=0and, separately,gc.IncrementalBeginDestroyEnabled=0: same cleanup assertion; Engine.ini restored.APS5_NO_PIPELINE_LTO=1: same assertion on the newer main.007721d43: clean integration and four focused tests passed (2.21 s), but the live run still asserted.573ba3b29: clean integration and four focused tests passed (1.86 s), but the live run still asserted. No title performance claim is made from these runs.APS5_STORE_AT_FLIP=1: slower startup and the same loading assertion. This tests the stale-result path discussed in fix(agc): store small pending storage results at each flip #4841, without claiming that PR is needed by this title.APS5_TIME_SCALE=0.25: the cleanup timer's live import was verified assceKernelGetProcessTimeCounter; the slowed-clock run stayed at its first rendered frame for several minutes and was stopped. This is not a gameplay workaround.The normal-clock configuration is restored. The runtime keeps only
r.AllowOcclusionQueries=0in Engine.ini, with file-backed SPIR-V, an 8 GiB host-import budget and a 1 GiB texture cache in the test launch scripts. Fresh shader-cache runs useANYPS5_NO_SHADER_CACHE=1, with an owned-process memory/disk guard. The broad packet trace and temporary source probes are disabled; RenderDoc is not used. Logs, screenshots and investigation artifacts remain outside the repository.Earlier investigation history
Tracking Lost Soul Aside, PPSA26358, on Windows 11 with an NVIDIA RTX 5070 (12 GB VRAM, driver 617.14), Ryzen 7 7800X3D, 32 GB RAM, and a GCC 15.2 Release build.
The local integration reaches the title screen and starts level loading. Gameplay has not been verified, and the title is not fully playable.
Fixes used by the integration
APS5_EXPERIMENTAL_RECLAIM_IR=1.LastObjectNotReadyForFinishDestroy is NULL. Two separate fresh-cache runs with the change reached the title screen on their first launch, then started loading after two X presses. Its focused tests and isolated main-based branch regression pass, including a failing FIFO negative control. The PR is ready for review.Open fixes: #4551 (color-view slice XOR), #4806 (file-backed shared SPIR-V storage), #5049 (scalar-only buffer descriptor word 3), and #5198 (completed AudioOut2 PCM/gain snapshots across producer and pushing threads). The local rendering stack also includes #4715, #5003 and #5097.
Other existing rendering patches were integrated during testing, including #425 and #3952. The Opus surround fix #3831 and masked first-lane proof #3739 have been merged into main. The zero-position vertex/tessellation fix #3878 is also in main.
Remaining blockers
r.AllowOcclusionQueries=0; a native occlusion-query fix remains outstanding. Original report and screenshot: Lost Soul Aside (PPSA26358): flashing green artifacts on the title screen #4387.Local experiments
A mesh-stage extension of zero-position primitive rejection passes native pixel-readback checks for positive/negative zero, out-of-bounds vertex data, and a valid origin position. It has not been established as a fix for the game's green flashes and has no PR yet. The integration also carries local rendering/audio diagnostics. No game assets or captured requests are committed to the repository.
Review follow-up and range capture (2026-10-12)
#4150 is rebased onto main
9aa5fd290; merged #3739 is absent from its diff. Extra refolding now requires a livePackedAncillarybuiltin after masked-select elimination. Eight related tests pass, and all 245 successfully replayed non-ancillary modules are byte-identical to main (ten matching SRT-read failures). The captured ancillary shader compiles to 309,229 validated SPIR-V words; main's array path still rejects it, so no working array/select GPU performance comparison is claimed. Review response.A reproduced green-flash interval now has an exact vertex-fetch and shader-buffer range trace, color formats/extents, descriptor words and shader-address mappings. No recorded overlap or alias rejection occurred; the offending draw remains unidentified. Issue response, screenshot and trace. The temporary range probes have been removed. Latest runs reached title and level loading after two X presses, then the guard stopped them below 2 GiB remaining commit headroom. Gameplay, green artifacts and startup crackles remain unresolved.
Main sync and loading memory investigation (2026-10-12)
Synced the integration to main
ffa198407(integration merge2f52582c4), including merged #4281, parked-import lifetime fixes, depth-storage reuse and far-out-of-range vertex handling. Preserved the local depth-seeding path only when main's context/format/extent match identifies a compatible depth surface. Six focused checks pass: graphics, depth reuse, wave reduction, prepared publication, relative ancillary and guest memory (8.72 s).Two synced runs reached title and level loading after automatic double X, then the memory guard stopped them. Disabling graphics pipeline libraries did not unblock loading. Temporary heap measurements show about 5.5 GiB of live cached SPIR-V at 3,840 prepared variants, within roughly 9.4 GiB of live process-heap allocations; this is not principally unreturned free heap space. The probes were removed.
The existing default SPIRV-Tools optimizer validated 29 sampled modules and reduced their total bytes by 21.3%. The ancillary capture shrank from 309,229 to 78,564 words. An optimized build passes four focused GPU/publication tests and is now being tried with a fresh cache. Enabling this existing feature is a configuration experiment, not a new fix or a gameplay claim. Green artifacts, startup crackles and level-load memory remain under investigation.
Startup audio fix (2026-10-13)
#5198 is ready for review. PPSA26358 rewrites the same 512-frame, 12-channel float buffer on a producer thread and pushes from another thread. Advance now retains completed PCM and gain; Push consumes those snapshots in order. Separate 43.69-second generated-input captures on the same integration based on main
5b0834458showed repeated adjacent non-silent blocks falling from 1,083/3,067 (35.31%) to 0/3,068, and block-boundary jumps larger than 0.03 falling from 86 to zero. The tester confirmed the startup/title audio sounds clean.The standalone PR on main
759c66564passes a full Windows Release build and all 10 audio tests without skips (9.66 s), including mutable-buffer, gain snapshot and producer/pusher regressions. Restoring main audio runtime files while retaining the new tests fails the native buffer regression. Temporary recording probes are absent from the PR. The playable integration is rebased onto759c66564; its full Windows build and all 16 focused audio/rendering checks pass without skips (11.49 s). The game was relaunched with the clean modules and reached the title background. Full gameplay remains unverified.All reactions