Repository navigation
Engine patches: clears cover every layer of a layered target (Little Nightmares point lights) - #329
keanu-stitch8 wants to merge 1 commit into
Conversation
…saves every slice Little Nightmares' point lights lit only one side of a room: each light's one-pass cube shadow is cleared in a pass that is not layered, and the host's load-action clear covered face 0 alone, so faces 1-5 kept zero depth and read as fully shadowed. 0040 clears such an attachment, every layer of its view, in a pass of its own; 0039 makes DM_CTL texraw save every slice, the dump that showed it. Forwarded as seedds/nxnative#808. Fixes LNPANDY#328 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for the patch and the clear Reason. It is in v1.1.2. Engine changes go to seedds/nxnative first, as |
|
Thanks! The matching upstream PR is seedds/nxnative#808. It landed on main as ffdf67d, and both patch headers already reference #808. NX2Apple’s current upstream pin includes that commit, so this patch PR appears redundant now. Could you confirm whether #329 can be closed? |
|
Closing as superseded. The upstream engine now clears every layer of a bound render target. I verified that NX2Apple’s engine pin |
Fix or feature
What and why
In Little Nightmares (
01002FC00412C000), the lantern and the lighter lit only one side of a room, with straight edges. Each point light's one-pass cube shadow is cleared in a pass that is not layered, and the host's load-action clear covered face 0 only. Faces 1-5 kept zero depth and read as fully shadowed. NVN clears every layer of the bound view. Details are in the issue and in the upstream PR.Fixes #328
The patches:
patches/0039-dm-ctl-texraw-every-slice.patch: DM_CTLtexrawsaves every slice, the dump that showed the problem.patches/0040-layered-target-clears.patch: a cleared attachment whose view has more layers than a pass that is not layered is cleared in a pass of its own withrenderTargetArrayLength. It adds the new testt_clear_layersand thedocs/reference/rendering.mdentry.Both are
Upstream-Status: forwarded seedds/nxnative#808.docs/agents/symptoms.mdis left tosync. They are numbered after the open #325 (0038) to avoid a name clash.Checked
python3 tools/engine.py check: ok, 26 patches apply cleanly to upstream.make -C dm/gfx/tests GAME=010015100B514000 runpasses on the engine with these changes (and Engine patch: SDK 3 signals the audio renderer event through its kernel binding (Little Nightmares) #325's patch).t_clear_layers: 30 checks, 0 failed; without the fix, 4 of its 6 cases fail.01002FC00412C0001.0.4 (v262144) from the provisional profile, on an M2 Pro with macOS 27.2.texrawshowed faces 1-5 of the shadow cube all zero.scripts/regress.pywas not run, because no other local game has the harness's NSP folder layout.Screenshots
Before: the light covers one side only, with sharp edges. After: a round lit area around the lantern, with Six's shadow on the floor. (Screenshots not attached: game content.)
Scope
dm/,scripts/,docs/,ref/) is added to the repository: a change there is a patch inpatches/(a commit inengine/, thentools/engine.py export, andtools/engine.py checkpasses), with itsUpstream-Statusforwarded seedds/nxnative#..., orpendinguntil that PR is open🤖 Generated with Claude Code