From 309251ce7a564ef73315971d52ba510a8c7069c6 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Wed, 15 Jan 2020 16:12:23 +0300 Subject: [PATCH] rsx: Touch locked dst memory after blit transfer operations in case it is locked by WCB/WDB --- rpcs3/Emu/RSX/Common/texture_cache.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rpcs3/Emu/RSX/Common/texture_cache.h b/rpcs3/Emu/RSX/Common/texture_cache.h index 745cdaea54..dc2aff4ede 100644 --- a/rpcs3/Emu/RSX/Common/texture_cache.h +++ b/rpcs3/Emu/RSX/Common/texture_cache.h @@ -2589,6 +2589,19 @@ namespace rsx dst_subres.surface->on_write_copy(rsx::get_shared_tag()); m_rtts.notify_memory_structure_changed(); + // Reset this object's synchronization status if it is locked + lock.upgrade(); + + if (const auto found = find_cached_texture(dst_subres.surface->get_memory_range(), 0, false, false)) + { + if (found->is_locked()) + { + verify(HERE), found->is_flushable(); + found->touch(m_cache_update_tag); + update_cache_tag(); + } + } + if (src_is_render_target) { if (helpers::is_gcm_depth_format(typeless_info.src_gcm_format) !=