mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 11:36:13 +00: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
1 changed files with 8 additions and 0 deletions
|
@ -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…
Add table
Reference in a new issue