From c5dfc5d5da86923fcde69fa52299722a69a50d4f Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Wed, 3 Apr 2024 11:41:14 +0100 Subject: [PATCH] GS/TC: Read indexed texture from GS memory if complete dirty overlap --- pcsx2/GS/Renderers/HW/GSTextureCache.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp index 6ac2095e1e..52294535b8 100644 --- a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp +++ b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp @@ -1308,6 +1308,9 @@ GSTextureCache::Source* GSTextureCache::LookupSource(const bool is_color, const const u32 dirty_end = GSLocalMemory::GetUnwrappedEndBlockAddress(t->m_TEX0.TBP0, t->m_TEX0.TBW, t->m_TEX0.PSM, dirty_rect); overlapping_dirty = read_start <= dirty_end && read_end >= dirty_start; + + if (overlapping_dirty && (psm == PSMT8 || psm == PSMT4)) + continue; } const bool t_clean = ((t->m_dirty.GetDirtyChannels() & GSUtil::GetChannelMask(psm)) == 0) || rect_clean;