aboutsummaryrefslogtreecommitdiff
path: root/NX2_GPU_THREAD_SPLIT.md
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-29 11:55:07 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-29 20:49:48 -0400
commit15e953cafd5cb348833cb373d7ddd996b81307f7 (patch)
tree3fd08c6943dd5b620fe1c899c283c1c78a6a5545 /NX2_GPU_THREAD_SPLIT.md
parent17c10c3690eab1ab461318f7e3e8850d490fb753 (diff)
video_core: GPU thread split on by default for Switch 2 titles; cheaper front paths
Clean A/B in title 1 (3 rounds each): 1.46x the draws a second of one thread, frames 17% shorter, no crashes, front register copies equal to the back's in 57,089 checks. EDEN_NX2_SPLIT=0 runs everything on one thread, =1 keeps macros on the back. The front's per-write paths no longer check guarded statics (GpuSplit::Get, Nx2Profile::Enabled, the skip-same switches) and the ring's method writes are inline. Notes row 145.
Diffstat (limited to 'NX2_GPU_THREAD_SPLIT.md')
-rw-r--r--NX2_GPU_THREAD_SPLIT.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/NX2_GPU_THREAD_SPLIT.md b/NX2_GPU_THREAD_SPLIT.md
index 2807b930dc..75fd0e4105 100644
--- a/NX2_GPU_THREAD_SPLIT.md
+++ b/NX2_GPU_THREAD_SPLIT.md
@@ -59,4 +59,5 @@ on the back, `EDEN_NX2_SPLIT=2` also runs the 3D and compute macros on the front
copies. Measured in title 1 (NX2_NOTES rows 142-144): ~44,000 draws a second on one thread, ~47,400
with stage 2, 50,000-66,500 with stage 3. The front waits ~4,000-5,000 times a second (semaphore
acquires, MME DMA reads); the back still spends ~200 ms a second outside its zones (ring dispatch,
-method sink). Next: a clean A/B for the default, then trimming the back's ring overhead.
+method sink). Clean A/B (NX2_NOTES row 145): 1.46x throughput, frames 17% shorter; on by
+default since. The back is ~92% busy, ~53% of it draw setup: the next step is there, not the ring.