From ece89051bd3a038ecb3bfc8a924434b7297f2adc Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 23 Apr 2024 17:31:47 +1000 Subject: [PATCH] GS/HW: Stretch double buffered targets when scale changes Otherwise the coordinates are out of range => GPU crash. --- pcsx2/GS/Renderers/HW/GSTextureCache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp index 960d9b7c32..452b883e4a 100644 --- a/pcsx2/GS/Renderers/HW/GSTextureCache.cpp +++ b/pcsx2/GS/Renderers/HW/GSTextureCache.cpp @@ -2587,7 +2587,7 @@ bool GSTextureCache::PreloadTarget(GIFRegTEX0 TEX0, const GSVector2i& size, cons // Clear the dirty first dst->Update(); // Invalidate has been moved to after DrawPrims(), because we might kill the current sources' backing. - if (!t->m_valid_rgb || !(t->m_valid_alpha_high || t->m_valid_alpha_low)) + if (!t->m_valid_rgb || !(t->m_valid_alpha_high || t->m_valid_alpha_low) || t->m_scale != dst->m_scale) { const GSVector4 src_rect = GSVector4(0, 0, copy_width, copy_height) / (GSVector4(t->m_texture->GetSize()).xyxy()); const GSVector4 dst_rect = GSVector4(0, dst_offset, copy_width, copy_height);