diff --git a/components/st3m/st3m_gfx.c b/components/st3m/st3m_gfx.c
index 2a114ca43b342e1c8c7d17e033f8d70373f2bc25..cbe1e6463d38e703b84d2e301665c2c0b9e74bb1 100644
--- a/components/st3m/st3m_gfx.c
+++ b/components/st3m/st3m_gfx.c
@@ -194,6 +194,8 @@ static void ice_palette(void) {
 }
 
 void st3m_gfx_set_mode(st3m_gfx_mode mode) {
+    if (mode == _st3m_gfx_mode) return;
+
     memset(fb, 0, sizeof(fb));
     memset(st3m_osd_fb, 0, sizeof(st3m_osd_fb));