Title: [280652] trunk/Source/WebKit
Revision
280652
Author
[email protected]
Date
2021-08-04 12:43:00 -0700 (Wed, 04 Aug 2021)

Log Message

[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:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (280651 => 280652)


--- trunk/Source/WebKit/ChangeLog	2021-08-04 19:37:35 UTC (rev 280651)
+++ trunk/Source/WebKit/ChangeLog	2021-08-04 19:43:00 UTC (rev 280652)
@@ -1,3 +1,22 @@
+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-04  Wenson Hsieh  <[email protected]>
 
         [iOS 15] "Look Up" action is sometimes missing after force pressing images

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h (280651 => 280652)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h	2021-08-04 19:37:35 UTC (rev 280651)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h	2021-08-04 19:43:00 UTC (rev 280652)
@@ -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