diff -Naur a/gdk/quartz/GdkQuartzView.c b/gdk/quartz/GdkQuartzView.c
--- gdk/quartz/GdkQuartzView.c	2021-01-11 20:51:03.000000000 +0000
+++ gdk/quartz/GdkQuartzView.c	2021-01-11 20:42:40.000000000 +0000
@@ -599,6 +599,22 @@
     gdk_screen_get_rgba_colormap (_gdk_screen);
 }
 
+- (void) viewWillDraw
+{
+  /* MacOS 11 (Big Sur) has added a new, dynamic "accent" as default.
+   * This uses a 10-bit colorspace so every GIMP drawing operation
+   * has the additional cost of an 8-bit (ARGB) to 10-bit conversion.
+   * Let's disable this mode to regain the lost performance.
+   */
+  if(gdk_quartz_osx_version() >= GDK_OSX_BIG_SUR)
+  {
+    CALayer* layer = self.layer;
+    layer.contentsFormat = kCAContentsFormatRGBA8Uint;
+  }
+
+  [super viewWillDraw];
+}
+
 -(void)drawRect: (NSRect)rect
 {
   GdkRectangle gdk_rect;
diff -Naur a/gdk/quartz/gdkdrawable-quartz.c b/gdk/quartz/gdkdrawable-quartz.c
--- gdk/quartz/gdkdrawable-quartz.c	2021-01-11 20:51:03.000000000 +0000
+++ gdk/quartz/gdkdrawable-quartz.c	2021-01-11 20:42:40.000000000 +0000
@@ -898,7 +898,15 @@
       if (window_impl->in_paint_rect_count == 0)
         {
           _gdk_quartz_drawable_flush (drawable);
-          [window_impl->view unlockFocus];
+          
+          /* As per gdk_window_impl_quartz_get_context(), the NSView
+           * focus-locking API set was deprecated in MacOS 10.14 and has
+           * a significant cost in MacOS 11 - every lock/unlock seems to 
+           * trigger a drawRect: call for the entire window.  To return the
+           * lost performance, do not use the locking API in MacOS 11+
+           */
+          if(gdk_quartz_osx_version() < GDK_OSX_MOJAVE)
+              [window_impl->view unlockFocus];
         }
     }
   else if (GDK_IS_PIXMAP_IMPL_QUARTZ (drawable))
diff -Naur a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
--- gdk/quartz/gdkwindow-quartz.c	2021-01-11 20:51:03.000000000 +0000
+++ gdk/quartz/gdkwindow-quartz.c	2021-01-11 20:42:40.000000000 +0000
@@ -106,8 +106,16 @@
    */
   if (window_impl->in_paint_rect_count == 0)
     {
-      if (![window_impl->view lockFocusIfCanDraw])
-        return NULL;
+      /* The NSView focus-locking API set was deprecated in MacOS 10.14 and
+       * has a significant cost in MacOS 11 - every lock/unlock seems to 
+       * trigger a drawRect: call for the entire window.  To return the
+       * lost performance, do not use the locking API in MacOS 11+
+       */
+      if(gdk_quartz_osx_version() < GDK_OSX_MOJAVE)
+        {
+          if (![window_impl->view lockFocusIfCanDraw])
+            return NULL;
+        }
     }
   if (gdk_quartz_osx_version () < GDK_OSX_YOSEMITE)
        cg_context = [[NSGraphicsContext currentContext] graphicsPort];