diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-31 22:53:16 -0400 |
|---|---|---|
| committer | kraibse <33869366+kraibse@users.noreply.github.com> | 2026-11-01 17:29:56 +0100 |
| commit | 139b7e5efb7c4181f14e987706eef26ca1f327c0 (patch) | |
| tree | 0d6ce4243e0eb9566c997c780f1917040c8ac2f3 /src/video_core/texture_cache/texture_cache.h | |
| parent | 4d6a13e3d9eaa7bf17381fce0e50d5275ac8957e (diff) | |
nx2: count a mapped sparse tile as written
With remap support Mario Kart World fills nine world-sized masks
(R8 16384x16384, RG16 and R16 8192x8192, one sparse region each) in its
own memory and then maps them in through 216. Nothing writes them through
the sparse region, so its blocks stayed unwritten and the texture cache
kept the images over them without memory, reading zero: the static world
(roads, buildings, rocks, trees) rendered unlit while karts and cars were
lit. Without remap support the game never maps them and lights the world
without them.
A tile map now counts its blocks as written and invalidates the caches
over the tile, so those images get memory and load what the game mapped.
That costs the masks' full size in device memory (about 2.9 GB in Mario
Kart World), which is what they need until the texture cache can back
single images tile by tile. DeviceMemoryManager::Unmap no longer needs
its flag to keep the caches.
Diffstat (limited to 'src/video_core/texture_cache/texture_cache.h')
0 files changed, 0 insertions, 0 deletions
