Bug 1471220 - Record the WR display list build time in the flb phase of content paint telemetry. r?mattwoodrow draft
authorKartikaya Gupta <kgupta@mozilla.com>
Tue, 26 Jun 2018 09:53:25 -0400
changeset 810783 01a842b98dd68665ceef674083745ec13980fb0f
parent 810444 9594b8ece791b3c74bef9e0328685a2b13525e73
child 810846 db4efb0c23539686e072558c8159abcea1abc8db
push id114104
push userkgupta@mozilla.com
push dateTue, 26 Jun 2018 13:53:48 +0000
reviewersmattwoodrow
bugs1471220
milestone62.0a1
Bug 1471220 - Record the WR display list build time in the flb phase of content paint telemetry. r?mattwoodrow MozReview-Commit-ID: 3nZxztEdXef
gfx/layers/wr/WebRenderLayerManager.cpp
--- a/gfx/layers/wr/WebRenderLayerManager.cpp
+++ b/gfx/layers/wr/WebRenderLayerManager.cpp
@@ -261,23 +261,28 @@ WebRenderLayerManager::EndTransactionWit
 
   WrBridge()->BeginTransaction();
 
   LayoutDeviceIntSize size = mWidget->GetClientSize();
   wr::LayoutSize contentSize { (float)size.width, (float)size.height };
   wr::DisplayListBuilder builder(WrBridge()->GetPipeline(), contentSize, mLastDisplayListSize);
   wr::IpcResourceUpdateQueue resourceUpdates(WrBridge());
 
-  mWebRenderCommandBuilder.BuildWebRenderCommands(builder,
-                                                  resourceUpdates,
-                                                  aDisplayList,
-                                                  aDisplayListBuilder,
-                                                  mScrollData,
-                                                  contentSize,
-                                                  aFilters);
+  { // Record the time spent "layerizing". WR doesn't actually layerize but
+    // generating the WR display list is the closest equivalent
+    PaintTelemetry::AutoRecord record(PaintTelemetry::Metric::Layerization);
+
+    mWebRenderCommandBuilder.BuildWebRenderCommands(builder,
+                                                    resourceUpdates,
+                                                    aDisplayList,
+                                                    aDisplayListBuilder,
+                                                    mScrollData,
+                                                    contentSize,
+                                                    aFilters);
+  }
 
   DiscardCompositorAnimations();
 
   mWidget->AddWindowOverlayWebRenderCommands(WrBridge(), builder, resourceUpdates);
   mWindowOverlayChanged = false;
 
 #if DUMP_LISTS
   if (XRE_IsContentProcess()) mScrollData.Dump();