diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-31 03:57:31 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-31 03:57:31 -0400 |
| commit | 7d82146663c0960cc8d7acece8642c7c4c944e3f (patch) | |
| tree | fdd7d95970cc1e538a84211744779e37f0efaa0a /src/core | |
| parent | b40ad217ab829226841cb71f6e4c5cb05977a225 (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.h | 5 |
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 { |
