AnyPS5/core/libs
alfalfa-star 3bb4494ea7 perf(agc): size the device staging pool from the device-local heap
The buffer pool's device tier (detiler scratch buffers and the staging
shadows of written guest buffers) retained at most 512 MiB by default.
A title whose working set of these buffers is larger allocates and
frees device memory continually: PPSA14632 (LEGO Horizon Adventures)
had 70761 misses and 69828 evictions per 10 s with 485 of 512 MiB
retained, each a vkAllocateMemory or vkFreeMemory.

The default budget is now an eighth of the largest device-local heap,
and at least the old 512 MiB, so a 16 GiB card retains up to 2 GiB and
an 8 GiB card 1 GiB. APS5_STAGING_POOL_MIB still sets it.

Only the constructor knows the device, so only the budget comes from the
heap. Whether the tier is in use at all (APS5_STAGING_POOL_MIB unset or
not 0) stays a static check, DeviceTierEnabled, which Capacity, Usage and
tierFor share, so the size classes and the tier stay consistent.

On PPSA14632 with 2 GiB the device tier has 1312 misses and 99
evictions per 10 s (1628 MiB retained), and presents rise from about 34
to about 39 per 10 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 10:19:34 +02:00
..
nid feat(nid): patch NIDs in Mach-O libraries 2026-10-09 15:40:29 +03:00
prx perf(agc): size the device staging pool from the device-local heap 2026-10-10 10:19:34 +02:00
tests Merge pull request #1777 from MathiasDevelopes/feat/libkernel-random-device 2026-10-10 09:27:46 +02:00
CMakeLists.txt Merge pull request #2247 from mugurc/macos-nid 2026-10-10 08:15:03 +02:00
HitLog.hpp style(prx): apply CONVENTIONS.md to misc PRX additions 2026-09-29 04:24:39 +03:00
SceShaders.hpp
…
SceTypes.hpp feat(libkernel): implement sceKernelGetModuleInfo 2026-10-09 19:39:49 -04:00