Repository navigation
Conversation
Owner
|
Thanks for this, and for the failing cases. Main already has the same fix, so I'm closing this PR without landing it:
Your Ice Cavern finding on the M5 is useful, but it was seen on a different host build. If the dark blocks still show in the Ice Cavern on current main, please open an issue with the spot and a pass dump ( |
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 and why
A depth-writing draw that samples its own depth attachment can still read stale depth after #1917.
OP_CLEAR_DSrecords a full clear for the next render pass, butfb_depth_snapcan copy the attachment before that pass opens: store 0.75, record a clear to 0.375, then draw, and the snapshot still contains 0.75.Apply pending depth/stencil clears through
rp_flushbefore taking a fresh snapshot. Existing snapshot reuse and the depth-read rule stay the same. The real-depth fixture now covers pending clears for Depth32Float and Depth32Float_Stencil8, both with a colour attachment and in depth-only passes. All four new cases fail on main before the fix.The game note also records an independent Ice Cavern diagnosis on M5: the affected materials sample their own depth at slot 6, and I confirmed in play that a depth snapshot removed the dark blocks. The general depth-feedback fix is already upstream; this patch contributes the remaining clear-ordering case.
Checked
check_t_feedback: 273 checks, 0 failed with Metal validation; 4 failures before the fix.make -C dm/gfx/tests -j3 GAME=0400486024DEC000 run: passes, including every graphics test in the run list and the pull/TBDR fixtures.0400486024DEC000, v131072), Ice Cavern, using the independent local depth-snapshot host on3b6b9803/ chain39417042cfe8. Current main plus this patch has not been played.regress.py impactreaches NVN users (Breath of the Wild, Pokémon Scarlet and Tears of the Kingdom have usage manifests).regress.py checkwas not run: only Ocarina of Time is available locally, and its installed shaders use the older chain above. Other games and iOS remain untested.Docs
docs_symptoms.pywas run.