aboutsummaryrefslogtreecommitdiff
path: root/NX2_NOTES.md
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 11:05:44 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 11:05:44 -0400
commite69481d1d5ddff079c16ef7bad9117c7049f9bea (patch)
tree9f7d5956b34ab04520a37c28a7d7539f4de50a30 /NX2_NOTES.md
parent704cee406ac9d0a6ef9dfa6ea719d4b198b1f6d4 (diff)
nx2: notes on the scene heap running out at the recurring crash
Diffstat (limited to 'NX2_NOTES.md')
-rw-r--r--NX2_NOTES.md1
1 files changed, 1 insertions, 0 deletions
diff --git a/NX2_NOTES.md b/NX2_NOTES.md
index 4af7dcb812..9246f0ae8d 100644
--- a/NX2_NOTES.md
+++ b/NX2_NOTES.md
@@ -131,6 +131,7 @@ With the patched decoder, games 1/3/4 only leave ~60-110 rare SIMD encodings in
| 73 | loading screen hangs, host GPU TDR | macro parameters split across GP entries were parked; method data continues across entries | continuous split methods (e8d060b) |
| 74 | rejected ATOMG/STL/LDL with small immediate offsets | lowering only took a zero offset | s20 ATOM offset, 24-bit STL/LDL offset (6302be8) |
| 75 | same crash 3 runs (415 s, 429 s, 9960 s): read 0x29 at pc 0x85096d10 (recursive mutex lock), lr 0x82ada310 | worker job runs main+0x2aba2b0 on object C = [A+0x18] whose manager [C+0x720] is null; C's destructor (main+0x2ab8e20, vtable main+0x4b660f8) nulls it before A's teardown (main+0x2b37b50) clears A+0x18; teardown and per-frame update are both jobs (via 0x8365c634); NFC Finalize comes 14-22 s before each crash; LSE atomics (exclusive pairs) and DMB (mfence) checked fine | open: catch all threads at the abort with the gdbstub (`nx2work/dbg_crash_threads.rsp`) |
+| 76 | debugger run, crash at 406 s in the same scene load: writes through a null result at pc 0x82b471fc (main+0x2b271fc) | the scene's frame heap "PaintSceneProcHeap.26" (fixed 90 MiB + 0xfc8 parent, head 0x12c9525d18, tail 0x12c9800208) had 2.98 MB left for a 0x302088 allocation (A init main+0x2b37de0 -> main+0x2b27020); about 160 KB short, so some allocation of that scene is bigger than on the console (only 11.7 MB of the heap is nx2:gpu memory); the main thread was waiting in svc 0x34 for job workers | open: log that heap's allocations to find the oversized one |
Run settings used (in `build/bin/user/config/sdl2-config.ini`): `memory_layout_mode=4`
(12 GB). Debug knobs: `EDEN_NX2_AUTO_STUB`, `EDEN_NX2_IPC_TRACE`, `EDEN_NX2_SVC_TRACE`,