Title: [280696] branches/safari-612.1.27.0-branch/Source/WebKit
Revision
280696
Author
[email protected]
Date
2021-08-05 09:27:00 -0700 (Thu, 05 Aug 2021)

Log Message

Cherry-pick r280652. rdar://problem/81568994

    [GPUProcess] REGRESSION: A noticeable slow down when browsing Live Photos album on iCloud.com
    https://bugs.webkit.org/show_bug.cgi?id=228673
    <rdar://81353138>

    Reviewed by Wenson Hsieh.

    RemoteImageBufferProxy::flushDrawingContext() assumes a FlushContext item
    is always appended to its DisplayList when it calls flushDrawingContextAsync()
    and this is why it waits up to 3 seconds for the DidFlush message. But this
    does not happen if the DisplayList of RemoteImageBufferProxy is empty.

    In addition to checking whether the DisplayList is empty, we can check also
    whether we do not have pending a FlushContext item before appending a new
    one.

    * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog (280695 => 280696)


--- branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog	2021-08-05 16:26:58 UTC (rev 280695)
+++ branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog	2021-08-05 16:27:00 UTC (rev 280696)
@@ -1,5 +1,48 @@
 2021-08-05  Russell Epstein  <[email protected]>
 
+        Cherry-pick r280652. rdar://problem/81568994
+
+    [GPUProcess] REGRESSION: A noticeable slow down when browsing Live Photos album on iCloud.com
+    https://bugs.webkit.org/show_bug.cgi?id=228673
+    <rdar://81353138>
+    
+    Reviewed by Wenson Hsieh.
+    
+    RemoteImageBufferProxy::flushDrawingContext() assumes a FlushContext item
+    is always appended to its DisplayList when it calls flushDrawingContextAsync()
+    and this is why it waits up to 3 seconds for the DidFlush message. But this
+    does not happen if the DisplayList of RemoteImageBufferProxy is empty.
+    
+    In addition to checking whether the DisplayList is empty, we can check also
+    whether we do not have pending a FlushContext item before appending a new
+    one.
+    
+    * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-08-04  Said Abou-Hallawa  <[email protected]>
+
+            [GPUProcess] REGRESSION: A noticeable slow down when browsing Live Photos album on iCloud.com
+            https://bugs.webkit.org/show_bug.cgi?id=228673
+            <rdar://81353138>
+
+            Reviewed by Wenson Hsieh.
+
+            RemoteImageBufferProxy::flushDrawingContext() assumes a FlushContext item
+            is always appended to its DisplayList when it calls flushDrawingContextAsync()
+            and this is why it waits up to 3 seconds for the DidFlush message. But this
+            does not happen if the DisplayList of RemoteImageBufferProxy is empty.
+
+            In addition to checking whether the DisplayList is empty, we can check also
+            whether we do not have pending a FlushContext item before appending a new
+            one.
+
+            * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
+
+2021-08-05  Russell Epstein  <[email protected]>
+
         Cherry-pick r280639. rdar://problem/81568951
 
     [GPU Process] REGRESSION: iCloud Photos Web app may crash WebProcess once the GPUProcess is relaunched

Modified: branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h (280695 => 280696)


--- branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h	2021-08-05 16:26:58 UTC (rev 280695)
+++ branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h	2021-08-05 16:27:00 UTC (rev 280696)
@@ -260,7 +260,7 @@
         if (UNLIKELY(!m_remoteRenderingBackendProxy))
             return;
 
-        if (!m_drawingContext.displayList().isEmpty()) {
+        if (!m_drawingContext.displayList().isEmpty() || !hasPendingFlush()) {
             m_sentFlushIdentifier = WebCore::DisplayList::FlushIdentifier::generate();
             m_drawingContext.recorder().flushContext(m_sentFlushIdentifier);
         }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to