[Webkit-unassigned] [Bug 195879] New: Assertion failure !isInAcceleratedCompositingMode() in DrawingAreaProxyCoordinatedGraphics::incorporateUpdate when forceCompositingMode is turned on

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Mar 18 03:31:13 PDT 2019


https://bugs.webkit.org/show_bug.cgi?id=195879

            Bug ID: 195879
           Summary: Assertion failure !isInAcceleratedCompositingMode() in
                    DrawingAreaProxyCoordinatedGraphics::incorporateUpdate
                    when forceCompositingMode is turned on
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKitGTK
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: Tomoki.Imai at sony.com
                CC: bugs-noreply at webkitgtk.org

How to reproduce:

1. Build WebKitGTK with --debug to enable ASSERT
2. Run GTK MiniBrowser
3. Disable accelerated compositing from settings (Hardware Acceleration Policy -> never)
4. Go to https://projects.lukehaas.me/css-loaders/ (any website with animation is enough)
5. Enable forceCompositingMode from settings (Hardware Acceleration Policy -> always)

Actual result:
ASSERTION FAILED: ASSERTION FAILED: !isInAcceleratedCompositingMode()
../../Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp(245) : void WebKit::DrawingAreaProxyCoordinatedGraphics::incorporateUpdate(const WebKit::UpdateInfo&)

Expected result:
No ASSERT error occurred.

The root cause is that DrawingAreaProxyCoordinatedGraphics::isInAcceleratedCompositingMode checks both of alwaysUseCompositing() and !m_layerTreeContext.isEmpty().
alwaysUseCompositing() refers preferences, which is written by the application (UIProcess).
On the other hand, m_layerTreeContext is changed when it receives enterAcceleratedCompositingMode/exitAcceleratedCompositingMode from WebProcess.

It results when we set forceCompositingMode and acceleratedCompositingEnabled to true, WebProcess and UIProcess is out of sync until WebProcess sends enterAcceleratedCompositingMode message.
In such situation, WebProcess sends incorporateUpdate to UIProcess because WebProcess is in non-AC mode, but isInAcceleratedCompositingMode becomes true in UIProcess side.

Note that turning on forceCompositingMode on https://www.webkitgtk.org/ results blank page, and resize window trigger redraws.
I guess it is a different problem from this bug.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190318/4ba602cd/attachment.html>


More information about the webkit-unassigned mailing list