From 94ce6203b61a7f1dd37bafd80c57767ef1f35914 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 20 Nov 2021 17:22:24 +0700 Subject: [PATCH] Limit max height for main frame buffers by VI.height Fixed #2519 Extreme G picture is shaking / unstable --- src/FrameBuffer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/FrameBuffer.cpp b/src/FrameBuffer.cpp index 71787f6b..0d4b8ee4 100644 --- a/src/FrameBuffer.cpp +++ b/src/FrameBuffer.cpp @@ -661,7 +661,10 @@ void FrameBufferList::setBufferChanged(f32 _maxY) gDP.colorImage.height = max(gDP.colorImage.height, static_cast(_maxY)); gDP.colorImage.height = min(gDP.colorImage.height, static_cast(gDP.scissor.lry)); if (m_pCurrent != nullptr) { - m_pCurrent->m_height = max(m_pCurrent->m_height, gDP.colorImage.height); + if (m_pCurrent->m_isMainBuffer) + m_pCurrent->m_height = max(m_pCurrent->m_height, min(gDP.colorImage.height, VI.height)); + else + m_pCurrent->m_height = max(m_pCurrent->m_height, gDP.colorImage.height); m_pCurrent->m_cfb = false; m_pCurrent->m_changed = true; m_pCurrent->m_copiedToRdram = false;