diff options
| author | JosJuice <josjuice@gmail.com> | 2025-06-20 09:17:21 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2026-02-04 21:33:56 +0100 |
| commit | 083f3a7e0e6d35f5a9046c9f3e17c16427e6fde8 (patch) | |
| tree | e665c4e0c98a7749eb74ad4ee74994fe16c47cea /Source/Core/VideoCommon/PixelEngine.cpp | |
| parent | d3ec630904b362774d16f1e52d522fb0ecb6711f (diff) | |
Core: Create fastmem mappings for page address translation
Previously we've only been setting up fastmem mappings for block address
translation, but now we also do it for page address translation. This
increases performance when games access memory using page tables, but
decreases performance when games set up page tables.
The tlbie instruction is used as an indication that the mappings need to
be updated.
There are some accuracy downsides:
* The TLB is now effectively infinitely large, which matters if games
don't use tlbie when modifying page tables.
* The R and C bits for page table entries get set pessimistically rather
than when the page is actually accessed.
No games are known to be broken by these inaccuracies, but unfortunately
the second inaccuracy causes a large performance regression in Rogue
Squadron 3. You still get the old, more accurate behavior if Enable
Write-Back Cache is on.
Diffstat (limited to 'Source/Core/VideoCommon/PixelEngine.cpp')
0 files changed, 0 insertions, 0 deletions
