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

Changeset 280696 in webkit


Ignore:
Timestamp:
Aug 5, 2021, 9:27:00 AM (5 years ago)
Author:
Russell Epstein
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

Location:
branches/safari-612.1.27.0-branch/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog

    r280694 r280696  
     12021-08-05  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r280652. rdar://problem/81568994
     4
     5    [GPUProcess] REGRESSION: A noticeable slow down when browsing Live Photos album on iCloud.com
     6    https://bugs.webkit.org/show_bug.cgi?id=228673
     7    <rdar://81353138>
     8   
     9    Reviewed by Wenson Hsieh.
     10   
     11    RemoteImageBufferProxy::flushDrawingContext() assumes a FlushContext item
     12    is always appended to its DisplayList when it calls flushDrawingContextAsync()
     13    and this is why it waits up to 3 seconds for the DidFlush message. But this
     14    does not happen if the DisplayList of RemoteImageBufferProxy is empty.
     15   
     16    In addition to checking whether the DisplayList is empty, we can check also
     17    whether we do not have pending a FlushContext item before appending a new
     18    one.
     19   
     20    * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
     21   
     22   
     23    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     24
     25    2021-08-04  Said Abou-Hallawa  <said@apple.com>
     26
     27            [GPUProcess] REGRESSION: A noticeable slow down when browsing Live Photos album on iCloud.com
     28            https://bugs.webkit.org/show_bug.cgi?id=228673
     29            <rdar://81353138>
     30
     31            Reviewed by Wenson Hsieh.
     32
     33            RemoteImageBufferProxy::flushDrawingContext() assumes a FlushContext item
     34            is always appended to its DisplayList when it calls flushDrawingContextAsync()
     35            and this is why it waits up to 3 seconds for the DidFlush message. But this
     36            does not happen if the DisplayList of RemoteImageBufferProxy is empty.
     37
     38            In addition to checking whether the DisplayList is empty, we can check also
     39            whether we do not have pending a FlushContext item before appending a new
     40            one.
     41
     42            * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
     43
    1442021-08-05  Russell Epstein  <repstein@apple.com>
    245
  • branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h

    r280401 r280696  
    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.