[Libreoffice-bugs] [Bug 137468] New: Severe performance degradation on a macOS with a 5K display

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Wed Oct 14 07:26:15 UTC 2020


https://bugs.documentfoundation.org/show_bug.cgi?id=137468

            Bug ID: 137468
           Summary: Severe performance degradation on a macOS with a 5K
                    display
           Product: LibreOffice
           Version: 7.1.0.0.alpha0+ Master
          Hardware: All
                OS: Mac OS X (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: UI
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: ilford at gmail.com

Description:
LibreOffice's interface is sluggish when resizing, scrolling and during other
operations when used under macOS 10.13/14/15 with a 10-bit 5K display.

The attached patch will improve the rendering performance by setting NSWindow's
color depth limit.

diff --git a/vcl/inc/osx/salframeview.h b/vcl/inc/osx/salframeview.h
index 36537f3db958..e3a1269f2ccc 100644
--- a/vcl/inc/osx/salframeview.h
+++ b/vcl/inc/osx/salframeview.h
@@ -79,6 +79,7 @@ enum class SalEvent;
     // #i102807# used by magnify event handler
     NSTimeInterval  mfLastMagnifyTime;
     float           mfMagnifyDeltaSum;
+    BOOL            mbColorDepthIsSet;
 }
 +(void)unsetMouseFrame: (AquaSalFrame*)pFrame;
 -(id)initWithSalFrame: (AquaSalFrame*)pFrame;
diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index d26617eb3d15..21a52b39d4e5 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -465,6 +465,7 @@ -(id)initWithSalFrame: (AquaSalFrame*)pFrame
         mpReferenceWrapper = nil;
         mpMouseEventListener = nil;
         mpLastSuperEvent = nil;
+        mbColorDepthIsSet = NO;
     }

     mfLastMagnifyTime = 0.0;
@@ -510,6 +511,13 @@ -(BOOL)isOpaque

 -(void)drawRect: (NSRect)aRect
 {
+    if (!mbColorDepthIsSet)
+    {
+        [mpFrame->getNSWindow() setDynamicDepthLimit:NO];
+        [mpFrame->getNSWindow() setDepthLimit:NSWindowDepthTwentyfourBitRGB];
+        mbColorDepthIsSet = YES;
+    }
+
     AquaSalInstance *pInstance = GetSalData()->mpInstance;
     assert(pInstance);
     if (!pInstance)

Actual Results:
Sluggish interface

Expected Results:
Smooth resizing and scrolling.


Reproducible: Always


User Profile Reset: No



Additional Info:
Set window color depth limit.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20201014/c2ead6d8/attachment-0001.htm>


More information about the Libreoffice-bugs mailing list