aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache/texture_cache.h
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 22:24:39 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 22:24:39 -0400
commit808039e5806dc841a30ef7d887462635860ae291 (patch)
treeef4d0aac85e999bc1ba34ff2fa19b22054c0d4fd /src/video_core/texture_cache/texture_cache.h
parentf7b32cb82fafc1fdadabe71e15afdee38f9d9212 (diff)
nx2:gpu: free GPU-only region memory when the region is destroyed
Sub 215 dropped the region's GPU mapping but kept the kernel pages 214 had allocated for it, and their SMMU mapping (cached per CPU range). Title 1 creates and destroys these regions as scenes load, so the pool ran dry within minutes and later regions got no memory at all (37 allocation failures in 85 s, 165 in a longer run): GPU writes to them were lost. Destroying a region now drops its GPU mapping, then (through a new registry release step, in GPU-thread order) each address space's SMMU mapping and cache entry, and frees the pages once the GPU thread is past both. A 4-minute run destroyed 116 regions with no later failures and renders cleanly; only the 5.8 GB virtual texture regions and three 170-340 MB regions at startup still do not fit the pool.
Diffstat (limited to 'src/video_core/texture_cache/texture_cache.h')
0 files changed, 0 insertions, 0 deletions