Changeset 216182 in webkit


Ignore:
Timestamp:
May 4, 2017 5:42:13 AM (7 years ago)
Author:
Carlos Garcia Campos
Message:

[Threaded Compositor] SHOULD NEVER BE REACHED in WebKit::CompositingRunLoop::updateCompleted
https://bugs.webkit.org/show_bug.cgi?id=171336

Reviewed by Michael Catanzaro.

We are assuming that all calls to ThreadedCompositor::renderLayerTree() happen because of an scheduled update,
but that's not true in the case of ThreadedCompositor::forceRepaint(). In that case we never want to call
CompositingRunLoop::updateCompleted().

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::forceRepaint):
(WebKit::ThreadedCompositor::sceneUpdateFinished):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r216181 r216182  
     12017-05-04  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [Threaded Compositor] SHOULD NEVER BE REACHED in WebKit::CompositingRunLoop::updateCompleted
     4        https://bugs.webkit.org/show_bug.cgi?id=171336
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        We are assuming that all calls to ThreadedCompositor::renderLayerTree() happen because of an scheduled update,
     9        but that's not true in the case of ThreadedCompositor::forceRepaint(). In that case we never want to call
     10        CompositingRunLoop::updateCompleted().
     11
     12        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
     13        (WebKit::ThreadedCompositor::forceRepaint):
     14        (WebKit::ThreadedCompositor::sceneUpdateFinished):
     15        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
     16
    1172017-05-04  David Kilzer  <ddkilzer@apple.com>
    218
  • trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp

    r216101 r216182  
    3333#include <WebCore/PlatformDisplay.h>
    3434#include <WebCore/TransformationMatrix.h>
     35#include <wtf/SetForScope.h>
    3536
    3637#if USE(OPENGL_ES_2)
     
    181182{
    182183    m_compositingRunLoop->performTaskSync([this, protectedThis = makeRef(*this)] {
     184        SetForScope<bool> change(m_inForceRepaint, true);
    183185        renderLayerTree();
    184186    });
     
    223225    if (shouldDispatchDisplayRefreshCallback)
    224226        m_displayRefreshMonitor->dispatchDisplayRefreshCallback();
    225     if (!shouldCoordinateUpdateCompletionWithClient)
     227    if (!shouldCoordinateUpdateCompletionWithClient && !m_inForceRepaint)
    226228        m_compositingRunLoop->updateCompleted();
    227229}
  • trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h

    r216101 r216182  
    113113    WebCore::TextureMapper::PaintFlags m_paintFlags { 0 };
    114114    bool m_needsResize { false };
     115    bool m_inForceRepaint { false };
    115116
    116117    std::unique_ptr<CompositingRunLoop> m_compositingRunLoop;
Note: See TracChangeset for help on using the changeset viewer.