Title: [234656] releases/WebKitGTK/webkit-2.20/Source/WebKit
Revision
234656
Author
mcatanz...@igalia.com
Date
2018-08-07 10:16:23 -0700 (Tue, 07 Aug 2018)

Log Message

[GTK] [2.20.4] Occasional rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=188377

Unreviewed manual rollout of r234420, which is causing issues on this branch.

* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::handleDisplayRefreshMonitorUpdate):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.20/Source/WebKit/ChangeLog (234655 => 234656)


--- releases/WebKitGTK/webkit-2.20/Source/WebKit/ChangeLog	2018-08-07 17:15:26 UTC (rev 234655)
+++ releases/WebKitGTK/webkit-2.20/Source/WebKit/ChangeLog	2018-08-07 17:16:23 UTC (rev 234656)
@@ -1,3 +1,13 @@
+2018-08-07  Michael Catanzaro  <mcatanz...@igalia.com>
+
+        [GTK] [2.20.4] Occasional rendering artifacts
+        https://bugs.webkit.org/show_bug.cgi?id=188377
+
+        Unreviewed manual rollout of r234420, which is causing issues on this branch.
+
+        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
+        (WebKit::ThreadedCompositor::handleDisplayRefreshMonitorUpdate):
+
 2018-08-06  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Unreviewed. Update OptionsGTK.cmake and NEWS for 2.20.4 release.

Modified: releases/WebKitGTK/webkit-2.20/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp (234655 => 234656)


--- releases/WebKitGTK/webkit-2.20/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp	2018-08-07 17:15:26 UTC (rev 234655)
+++ releases/WebKitGTK/webkit-2.20/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp	2018-08-07 17:16:23 UTC (rev 234656)
@@ -339,18 +339,21 @@
 
 void ThreadedCompositor::handleDisplayRefreshMonitorUpdate(bool hasBeenRescheduled)
 {
-    // Retrieve coordinateUpdateCompletionWithClient.
+    // Retrieve the clientRendersNextFrame and coordinateUpdateCompletionWithClient.
+    bool clientRendersNextFrame { false };
     bool coordinateUpdateCompletionWithClient { false };
     {
         LockHolder locker(m_attributes.lock);
+        clientRendersNextFrame = std::exchange(m_attributes.clientRendersNextFrame, false);
         coordinateUpdateCompletionWithClient = std::exchange(m_attributes.coordinateUpdateCompletionWithClient, false);
     }
 
-    // The client is finally notified about the scene update nearing completion. The client will use this
-    // opportunity to clean up resources as appropriate. It can also perform any layer flush that was
-    // requested during the composition, or by any DisplayRefreshMonitor notifications that have been
-    // handled at this point.
-    m_client.renderNextFrame();
+    // If clientRendersNextFrame is true, the client is finally notified about the scene update nearing
+    // completion. The client will use this opportunity to clean up resources as appropriate. It can also
+    // perform any layer flush that was requested during the composition, or by any DisplayRefreshMonitor
+    // notifications that have been handled at this point.
+    if (clientRendersNextFrame)
+        m_client.renderNextFrame();
 
     LockHolder stateLocker(m_compositingRunLoop->stateLock());
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to