diff --git a/components/st3m/st3m_gfx.c b/components/st3m/st3m_gfx.c
index 7600f5201271bf82261273cea93dc97197b38dbc..1af6b0a9c48d5b08d4f11d1f28119a68e909c51e 100644
--- a/components/st3m/st3m_gfx.c
+++ b/components/st3m/st3m_gfx.c
@@ -21,10 +21,10 @@
 
 // Each buffer  takes ~116kB SPIRAM. While one framebuffer is being blitted, the
 // other one is being written to by the rasterizer.
-#define ST3M_GFX_NBUFFERS 1
+#define ST3M_GFX_NBUFFERS 2
 // More ctx drawlists than buffers so that micropython doesn't get starved when
 // pipeline runs in lockstep.
-#define ST3M_GFX_NCTX 1
+#define ST3M_GFX_NCTX 3
 
 // A framebuffer descriptor, pointing at a framebuffer.
 typedef struct {