diff --git a/source/blender/windowmanager/intern/wm_draw.cc b/source/blender/windowmanager/intern/wm_draw.cc index a64dd81ef03..c72221c901b 100644 --- a/source/blender/windowmanager/intern/wm_draw.cc +++ b/source/blender/windowmanager/intern/wm_draw.cc @@ -1544,6 +1544,13 @@ void wm_draw_update(bContext *C) BKE_image_free_unused_gpu_textures(); +#ifdef WITH_METAL_BACKEND + /* Reset drawable to ensure GPU context activation happens at least once per frame if only a + * single context exists. This is required to ensure the default framebuffer is updated + * to be the latest backbuffer. */ + wm_window_clear_drawable(wm); +#endif + LISTBASE_FOREACH (wmWindow *, win, &wm->windows) { #ifdef WIN32 GHOST_TWindowState state = GHOST_GetWindowState(