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