diff --git a/rpcs3/Emu/RSX/Common/surface_store.h b/rpcs3/Emu/RSX/Common/surface_store.h index 1380e109dd..a9aa8235f2 100644 --- a/rpcs3/Emu/RSX/Common/surface_store.h +++ b/rpcs3/Emu/RSX/Common/surface_store.h @@ -812,7 +812,7 @@ namespace rsx #ifndef INCOMPLETE_SURFACE_CACHE_IMPL // Check if old_surface is 'new' and avoid intersection - if (old_surface && old_surface->last_use_tag == write_tag) + if (old_surface && old_surface->last_use_tag >= write_tag) { new_surface->set_old_contents(old_surface); } @@ -943,7 +943,7 @@ namespace rsx #ifndef INCOMPLETE_SURFACE_CACHE_IMPL // Check if old_surface is 'new' and avoid intersection - if (old_surface && old_surface->last_use_tag == write_tag) + if (old_surface && old_surface->last_use_tag >= write_tag) { new_surface->set_old_contents(old_surface); } diff --git a/rpcs3/Emu/RSX/Common/texture_cache.h b/rpcs3/Emu/RSX/Common/texture_cache.h index 3db9be7fda..0af7d1dd9c 100644 --- a/rpcs3/Emu/RSX/Common/texture_cache.h +++ b/rpcs3/Emu/RSX/Common/texture_cache.h @@ -2939,7 +2939,8 @@ namespace rsx } else { - dst_subres.surface->on_write(); + dst_subres.surface->on_write(rsx::get_shared_tag()); + m_rtts.notify_memory_structure_changed(); } if (rsx::get_resolution_scale_percent() != 100)