[GTK][Wayland] Flickering when resizing the window
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Sep 2017 16:43:32 +0000 (16:43 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Sep 2017 16:43:32 +0000 (16:43 +0000)
https://bugs.webkit.org/show_bug.cgi?id=176774

Reviewed by Michael Catanzaro.

This regressed when we switched to always start the wayland compositor. In
AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState() we check if the nested compositor is
running, which is always true now (if EGL and the required extensions are available). We should check if we are
in AC mode instead.

* UIProcess/AcceleratedDrawingAreaProxy.cpp:
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222027 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/AcceleratedDrawingAreaProxy.cpp

index 813a516..59b742b 100644 (file)
@@ -1,3 +1,18 @@
+2017-09-14  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK][Wayland] Flickering when resizing the window
+        https://bugs.webkit.org/show_bug.cgi?id=176774
+
+        Reviewed by Michael Catanzaro.
+
+        This regressed when we switched to always start the wayland compositor. In
+        AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState() we check if the nested compositor is
+        running, which is always true now (if EGL and the required extensions are available). We should check if we are
+        in AC mode instead.
+
+        * UIProcess/AcceleratedDrawingAreaProxy.cpp:
+        (WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
+
 2017-09-14  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray
index bdad2dd..6f7e1e4 100644 (file)
@@ -210,11 +210,10 @@ void AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState()
         return;
     if (!m_webPageProxy.isViewVisible())
         return;
-
 #if PLATFORM(WAYLAND) && USE(EGL)
     // Never block the UI process in Wayland when waiting for DidUpdateBackingStoreState after a resize,
     // because the nested compositor needs to handle the web process requests that happens while resizing.
-    if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && WaylandCompositor::singleton().isRunning())
+    if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && isInAcceleratedCompositingMode())
         return;
 #endif