mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
rsx: Remove sections that are wholly inherited by new blocks
- Allows sections reclaimed by the surface store due to overlap/inheritance to be identified and removed. - Additionally, potentially lowers the number of flushes required per block with multiple overlaps improving efficiency and theoretically performance.
This commit is contained in:
parent
f6e90b4c72
commit
7d2ed9200d
|
|
@ -749,6 +749,14 @@ namespace rsx
|
|||
tex.is_flushable() &&
|
||||
tex.get_section_base() != fault_range_in.start)
|
||||
{
|
||||
if (tex.get_context() == texture_upload_context::framebuffer_storage &&
|
||||
tex.inside(fault_range, section_bounds::full_range))
|
||||
{
|
||||
// FBO data 'lives on' in the new region. Surface cache handles memory intersection for us.
|
||||
verify(HERE), tex.inside(fault_range, section_bounds::locked_range);
|
||||
tex.discard(false);
|
||||
}
|
||||
|
||||
// HACK: When being superseded by an fbo, we preserve overlapped flushables unless the start addresses match
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue