docs: shadow/SSAO fix post-mortem; keep F5-F8 render-pass debug toggles#6
Merged
Merged
Conversation
Adds docs/shadow-cascade-and-ssao-fixes.md -- a full write-up of the 2026-07 investigation into the "moving dark patch" (a collapsed shadow-cascade fit) and the two SSAO flicker/over-darkening bugs. Root causes, false trails, fixes, and the diagnostic tooling used. The code fixes live in the engine repo (Bloom-Engine/engine#85). Keeps the F5-F8 live render-pass toggle bar + status line in main.ts as a standing debug aid (relabeled from the temporary "flicker-hunt" wording), and gitignores F12 native screenshots.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdded persistent render-pass debug toggle variables (SSGI, SSAO, SSR, shadows) in src/main.ts, bound to F5–F8 keys with a HUD status line. Added a .gitignore entry for screenshot captures. Added a documentation file describing SSAO and shadow-cascade fix post-mortem. ChangesDebug toggles and documentation
Estimated code review effort: 2 (Simple) | ~10 minutes ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
proggeramlug
pushed a commit
that referenced
this pull request
Jul 13, 2026
…pawn is a no-op) #6 is the one that matters. JSON.stringify CORRUPTS a large object graph that came from JSON.parse -- 5,296 characters above U+00FF in a document whose source is almost pure ASCII -- and the corruption is invisible from TypeScript. It only shows up at the FFI, where the string fails its UTF-8 check, gets replaced with "", and writeFile wrote a zero-byte file and returned success. That is how the editor destroyed every world it ever saved. The rule that falls out of it: never JSON.stringify anything you are going to PERSIST. Hand-serialise by literal key. settings.ts already did this and now engine/src/world/serialize.ts does too. Also adds the shooter's `--world <path>` override, which is what play-in-editor launches the game with. Claude-Session: https://claude.ai/code/session_01V3MihNxaRwMR8GjMPvMkRb
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
docs/shadow-cascade-and-ssao-fixes.md— full post-mortem of the 2026-07 "moving dark patch" + SSAO flicker investigation: symptoms, false trails, root causes, fixes, and the diagnostic tooling (F5–F8 toggles, native F12 capture, runtime-loaded shader debug viz, engine stderr probes).src/main.ts— keeps the F5–F8 live render-pass toggle bar + top-left status line as a standing debug aid (relabeled from the temporary "flicker-hunt" wording)..gitignore— ignoresscreenshot_*.png(F12 native captures).The actual engine code fixes are in Bloom-Engine/engine#85 (collapsed shadow-cascade fit + SSAO contact-shadow/radius). This PR is docs + the shooter-side debug bar only.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation