Title: [256736] trunk
Revision
256736
Author
[email protected]
Date
2020-02-17 08:45:29 -0800 (Mon, 17 Feb 2020)

Log Message

[macOS] Add trace points for layer flush runloop observer
https://bugs.webkit.org/show_bug.cgi?id=207837

Reviewed by Sam Weinig.

Source/WebKit:

Add trace points to see how much scheduled layer flushes get delayed by timers and other runloop activities.

* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):

Also add trace points for layer tree freezing (iOS too).

(WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback):
(WebKit::TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver):
(WebKit::TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver):

Source/WTF:

* wtf/SystemTracing.h:

Tools:

* Tracing/SystemTracePoints.plist:

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (256735 => 256736)


--- trunk/Source/WTF/ChangeLog	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Source/WTF/ChangeLog	2020-02-17 16:45:29 UTC (rev 256736)
@@ -1,3 +1,12 @@
+2020-02-17  Antti Koivisto  <[email protected]>
+
+        [macOS] Add trace points for layer flush runloop observer
+        https://bugs.webkit.org/show_bug.cgi?id=207837
+
+        Reviewed by Sam Weinig.
+
+        * wtf/SystemTracing.h:
+
 2020-02-17  Don Olmstead  <[email protected]>
 
         [CMake] Use builtin targets

Modified: trunk/Source/WTF/wtf/SystemTracing.h (256735 => 256736)


--- trunk/Source/WTF/wtf/SystemTracing.h	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Source/WTF/wtf/SystemTracing.h	2020-02-17 16:45:29 UTC (rev 256736)
@@ -102,6 +102,10 @@
     SyncTouchEventEnd,
     InitializeWebProcessStart,
     InitializeWebProcessEnd,
+    LayerFlushRunLoopObserverStart,
+    LayerFlushRunLoopObserverEnd,
+    LayerTreeFreezeStart,
+    LayerTreeFreezeEnd,
 
     UIProcessRange = 14000,
     CommitLayerTreeStart,

Modified: trunk/Source/WebKit/ChangeLog (256735 => 256736)


--- trunk/Source/WebKit/ChangeLog	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Source/WebKit/ChangeLog	2020-02-17 16:45:29 UTC (rev 256736)
@@ -1,3 +1,23 @@
+2020-02-17  Antti Koivisto  <[email protected]>
+
+        [macOS] Add trace points for layer flush runloop observer
+        https://bugs.webkit.org/show_bug.cgi?id=207837
+
+        Reviewed by Sam Weinig.
+
+        Add trace points to see how much scheduled layer flushes get delayed by timers and other runloop activities.
+
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):
+
+        Also add trace points for layer tree freezing (iOS too).
+
+        (WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback):
+        (WebKit::TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver):
+        (WebKit::TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver):
+
 2020-02-17  Don Olmstead  <[email protected]>
 
         [CMake] Use builtin targets

Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm (256735 => 256736)


--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm	2020-02-17 16:45:29 UTC (rev 256736)
@@ -188,6 +188,8 @@
     if (m_isFlushingSuspended == isFrozen)
         return;
 
+    tracePoint(isFrozen ? LayerTreeFreezeStart : LayerTreeFreezeEnd);
+
     m_isFlushingSuspended = isFrozen;
 
     if (!m_isFlushingSuspended && m_hasDeferredFlush) {

Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (256735 => 256736)


--- trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2020-02-17 16:45:29 UTC (rev 256736)
@@ -59,6 +59,7 @@
 #import <pal/spi/cocoa/QuartzCoreSPI.h>
 #import <wtf/MachSendRight.h>
 #import <wtf/MainThread.h>
+#import <wtf/SystemTracing.h>
 
 #if ENABLE(ASYNC_SCROLLING)
 #import <WebCore/AsyncScrollingCoordinator.h>
@@ -176,6 +177,8 @@
     if (m_layerTreeStateIsFrozen == layerTreeStateIsFrozen)
         return;
 
+    tracePoint(layerTreeStateIsFrozen ? LayerTreeFreezeStart : LayerTreeFreezeEnd);
+
     m_layerTreeStateIsFrozen = layerTreeStateIsFrozen;
 
     if (m_layerTreeStateIsFrozen) {
@@ -936,16 +939,25 @@
 
 void TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback()
 {
+    tracePoint(LayerFlushRunLoopObserverEnd, 0);
+
     flushLayers();
 }
 
 void TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver()
 {
+    if (!m_layerFlushRunLoopObserver->isScheduled())
+        return;
+
+    tracePoint(LayerFlushRunLoopObserverEnd, 1);
+
     m_layerFlushRunLoopObserver->invalidate();
 }
 
 void TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver()
 {
+    tracePoint(LayerFlushRunLoopObserverStart);
+    
     m_layerFlushRunLoopObserver->schedule(CFRunLoopGetCurrent());
 }
 

Modified: trunk/Tools/ChangeLog (256735 => 256736)


--- trunk/Tools/ChangeLog	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Tools/ChangeLog	2020-02-17 16:45:29 UTC (rev 256736)
@@ -1,3 +1,12 @@
+2020-02-17  Antti Koivisto  <[email protected]>
+
+        [macOS] Add trace points for layer flush runloop observer
+        https://bugs.webkit.org/show_bug.cgi?id=207837
+
+        Reviewed by Sam Weinig.
+
+        * Tracing/SystemTracePoints.plist:
+
 2020-02-17  Don Olmstead  <[email protected]>
 
         [CMake] Use builtin targets

Modified: trunk/Tools/Tracing/SystemTracePoints.plist (256735 => 256736)


--- trunk/Tools/Tracing/SystemTracePoints.plist	2020-02-17 16:40:18 UTC (rev 256735)
+++ trunk/Tools/Tracing/SystemTracePoints.plist	2020-02-17 16:45:29 UTC (rev 256736)
@@ -359,6 +359,30 @@
              </dict>
              <dict>
                  <key>Name</key>
+                 <string>Layer flush runloop observer</string>
+                 <key>Type</key>
+                 <string>Interval</string>
+                 <key>Component</key>
+                 <string>47</string>
+                 <key>CodeBegin</key>
+                 <string>12011</string>
+                 <key>CodeEnd</key>
+                 <string>12012</string>
+             </dict>
+             <dict>
+                 <key>Name</key>
+                 <string>Layer tree frozen</string>
+                 <key>Type</key>
+                 <string>Interval</string>
+                 <key>Component</key>
+                 <string>47</string>
+                 <key>CodeBegin</key>
+                 <string>12013</string>
+                 <key>CodeEnd</key>
+                 <string>12014</string>
+             </dict>
+             <dict>
+                 <key>Name</key>
                  <string>Commit RemoteLayerTree transaction</string>
                  <key>Type</key>
                  <string>Interval</string>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to