⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 280652 in webkit


Ignore:
Timestamp:
Aug 4, 2021, 12:43:00 PM (5 years ago)
Author:
Said Abou-Hallawa
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:
Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r280647 r280652  
     12021-08-04  Said Abou-Hallawa  <said@apple.com>
     2
     3        [GPUProcess] REGRESSION: A noticeable slow down when browsing Live Photos album on iCloud.com
     4        https://bugs.webkit.org/show_bug.cgi?id=228673
     5        <rdar://81353138>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        RemoteImageBufferProxy::flushDrawingContext() assumes a FlushContext item
     10        is always appended to its DisplayList when it calls flushDrawingContextAsync()
     11        and this is why it waits up to 3 seconds for the DidFlush message. But this
     12        does not happen if the DisplayList of RemoteImageBufferProxy is empty.
     13
     14        In addition to checking whether the DisplayList is empty, we can check also
     15        whether we do not have pending a FlushContext item before appending a new
     16        one.
     17
     18        * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
     19
    1202021-08-04  Wenson Hsieh  <wenson_hsieh@apple.com>
    221
  • trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h

    r280401 r280652  
    261261            return;
    262262
    263         if (!m_drawingContext.displayList().isEmpty()) {
     263        if (!m_drawingContext.displayList().isEmpty() || !hasPendingFlush()) {
    264264            m_sentFlushIdentifier = WebCore::DisplayList::FlushIdentifier::generate();
    265265            m_drawingContext.recorder().flushContext(m_sentFlushIdentifier);
Note: See TracChangeset for help on using the changeset viewer.