From 213a89ab72fe8ebb82d4af71ef9732c2ea580460 Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Tue, 29 Apr 2025 01:58:38 +0200 Subject: [PATCH] GS/HW: Also unlink source texture from target before deletion on z draws. --- pcsx2/GS/Renderers/HW/GSTextureCache.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp index 9a4e368134..81899f8187 100644 --- a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp +++ b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp @@ -2666,6 +2666,13 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(GIFRegTEX0 TEX0, const GSVe if (!is_shuffle && (!ds || (ds != t)) && t->m_TEX0.TBW != TEX0.TBW && TEX0.TBW != 1 && !preserve_rgb && min_rect.w > GSLocalMemory::m_psm[t->m_TEX0.PSM].pgs.y) { + if (src && src->m_target && src->m_from_target == t && src->m_target_direct) + { + src->m_target_direct = false; + src->m_shared_texture = false; + t->m_texture = nullptr; + } + DevCon.Warning("Deleting Z draw %d", GSState::s_n); InvalidateSourcesFromTarget(t); i = rev_list.erase(i);