diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-29 11:55:07 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-29 20:49:48 -0400 |
| commit | 15e953cafd5cb348833cb373d7ddd996b81307f7 (patch) | |
| tree | 3fd08c6943dd5b620fe1c899c283c1c78a6a5545 /NX2_GPU_THREAD_SPLIT.md | |
| parent | 17c10c3690eab1ab461318f7e3e8850d490fb753 (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.md | 3 |
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. |
