diff --git a/Source/Core/VideoCommon/Present.cpp b/Source/Core/VideoCommon/Present.cpp index 0cc19d6e14..a90ffaf687 100644 --- a/Source/Core/VideoCommon/Present.cpp +++ b/Source/Core/VideoCommon/Present.cpp @@ -178,6 +178,25 @@ void Presenter::ViSwap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height, present_info.reason = PresentInfo::PresentReason::VideoInterface; } + if (m_xfb_entry) + { + // With no references, this XFB copy wasn't stitched together + // so just use its name directly + if (m_xfb_entry->references.empty()) + { + if (!m_xfb_entry->texture_info_name.empty()) + present_info.xfb_copy_hashes.push_back(m_xfb_entry->texture_info_name); + } + else + { + for (const auto& reference : m_xfb_entry->references) + { + if (!reference->texture_info_name.empty()) + present_info.xfb_copy_hashes.push_back(reference->texture_info_name); + } + } + } + BeforePresentEvent::Trigger(present_info); if (!is_duplicate || !g_ActiveConfig.bSkipPresentingDuplicateXFBs)