aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-31 03:57:31 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-31 03:57:31 -0400
commit7d82146663c0960cc8d7acece8642c7c4c944e3f (patch)
treefdd7d95970cc1e538a84211744779e37f0efaa0a /src/core
parentb40ad217ab829226841cb71f6e4c5cb05977a225 (diff)
nx2: shrink the graphics server pool to 2 GiB
The 12 GB layout added 8 GiB of DRAM for memory the Switch 2 graphics server keeps, and the whole emulated DRAM is committed at boot, so Switch 2 games needed 20 GB of free commit ("Failed to allocate 20480 MiB of backing memory" on PCs with 16 GB). With GPU-only regions backed as they are written and sparse regions taking tiles from the game's memory, Mario Kart World keeps ~1.1 GiB of the pool (texture pools it fills at boot, flat afterwards) and Splatoon Raiders none. 2 GiB leaves room and brings the commit to 14 GB. A title that runs the pool dry loses GPU writes into its unbacked blocks and logs it once.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/kernel/board/nintendo/nx/k_system_control.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/kernel/board/nintendo/nx/k_system_control.h b/src/core/hle/kernel/board/nintendo/nx/k_system_control.h
index cc5572bde8..9aa527adb1 100644
--- a/src/core/hle/kernel/board/nintendo/nx/k_system_control.h
+++ b/src/core/hle/kernel/board/nintendo/nx/k_system_control.h
@@ -23,7 +23,10 @@ public:
// Extra DRAM on the 12 GB layout for memory the Switch 2 graphics server keeps itself (nx2:gpu
// 214 GPU-only regions). It sits in the non-secure system pool, outside the application pool.
- static constexpr size_t Nx2GraphicsServerMemorySize = 8ULL * 1024 * 1024 * 1024; // 8_GiB
+ // GPU-only regions get memory only where guest memory is written and sparse regions take
+ // their tiles from the game's own memory (216), so much less of it is used (title 1: ~1.1 GiB,
+ // all of it at boot); all of it counts against the host's commit limit from boot.
+ static constexpr size_t Nx2GraphicsServerMemorySize = 2ULL * 1024 * 1024 * 1024; // 2_GiB
public:
class Init {