Title: [235608] trunk/Source/WebKit
Revision
235608
Author
zandober...@gmail.com
Date
2018-09-04 01:38:28 -0700 (Tue, 04 Sep 2018)

Log Message

REGRESSION(r235165): [GStreamer] Major video performance regression
https://bugs.webkit.org/show_bug.cgi?id=189224

Reviewed by Michael Catanzaro.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateSceneState): Drop the early
return used when the scene state wasn't updated through a layer flush,
and instead always run through layer changes and backings. This way we
won't miss proxy objects that need swapping even if none of the layer
states were changed. Reducing the amount of work done here when scene
hasn't been updated might be possible, but it's not a huge bottleneck.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (235607 => 235608)


--- trunk/Source/WebKit/ChangeLog	2018-09-04 04:25:11 UTC (rev 235607)
+++ trunk/Source/WebKit/ChangeLog	2018-09-04 08:38:28 UTC (rev 235608)
@@ -1,3 +1,18 @@
+2018-09-04  Zan Dobersek  <zdober...@igalia.com>
+
+        REGRESSION(r235165): [GStreamer] Major video performance regression
+        https://bugs.webkit.org/show_bug.cgi?id=189224
+
+        Reviewed by Michael Catanzaro.
+
+        * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
+        (WebKit::CoordinatedGraphicsScene::updateSceneState): Drop the early
+        return used when the scene state wasn't updated through a layer flush,
+        and instead always run through layer changes and backings. This way we
+        won't miss proxy objects that need swapping even if none of the layer
+        states were changed. Reducing the amount of work done here when scene
+        hasn't been updated might be possible, but it's not a huge bottleneck.
+
 2018-09-01  Darin Adler  <da...@apple.com>
 
         [CFNetwork] Update CFNetwork SPI use to use CFNetworkSPI.h more consistently

Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp (235607 => 235608)


--- trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp	2018-09-04 04:25:11 UTC (rev 235607)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp	2018-09-04 08:38:28 UTC (rev 235608)
@@ -259,9 +259,9 @@
     m_nicosia.scene->accessState(
         [this, &layersByBacking](Nicosia::Scene::State& state)
         {
-            // Bail if the scene didn't change.
-            if (state.id == m_nicosia.state.id)
-                return;
+            // FIXME: try to minimize the amount of work in case the Scene::State object
+            // didn't change (i.e. no layer flush was done), but don't forget to properly
+            // gather and update proxy objects for content layers.
 
             // Handle the root layer, adding it to the TextureMapperLayer tree
             // on the first update. No such change is expected later.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to