| <!-- |
| Copyright 2020 The Chromium Authors |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <!-- |
| This file is used to generate a comprehensive list of Compositing histograms |
| along with a detailed description for each histogram. |
| |
| For best practices on writing histogram descriptions, see |
| https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md |
| |
| Please follow the instructions in the OWNERS file in this directory to find a |
| reviewer. If no OWNERS file exists, please consider signing up at |
| go/reviewing-metrics (Googlers only), as all subdirectories are expected to |
| have an OWNERS file. As a last resort you can send the CL to |
| chromium-metrics-reviews@google.com. |
| --> |
| |
| <histogram-configuration> |
| |
| <histograms> |
| |
| <variants name="LCDTextDisallowedReasonDPI"> |
| <variant name="HighDPI" |
| summary="In web pages where device scale factor is greater than or |
| equal to 1.5."/> |
| <variant name="LowDPI" |
| summary="In web pages where device scale factor is less than 1.5."/> |
| </variants> |
| |
| <variants name="SmoothnessSequence"> |
| <variant name="AllAnimations" |
| summary="its animations (e.g. comositor-driven animations, main-thread |
| driven animations, and raf-driven animations, etc.)"/> |
| <variant name="AllInteractions" |
| summary="its supported combinations of interaction types (e.g. |
| scrolling, pinching, etc.) and input device types (e.g. |
| touchscreen, touchpad, mousewheel, etc.)"/> |
| <variant name="CanvasAnimation" summary="canvas animations"/> |
| <variant name="CompositorAnimation" |
| summary="compositor thread driven animations"/> |
| <variant name="JSAnimation" summary="JS driven animations"/> |
| <variant name="MainThreadAnimation" summary="main thread driven animations"/> |
| <variant name="PinchZoom" summary="pinch to zoom interctions"/> |
| <variant name="RAF" summary="raf driven animations"/> |
| <variant name="ScrollbarScroll" summary="scrollbar scrolling"/> |
| <variant name="SETCompositorAnimation" |
| summary="compositor animations during a view transition"/> |
| <variant name="SETMainThreadAnimation" |
| summary="main thread animations during a view transition"/> |
| <variant name="TouchScroll" summary="touch scrolling"/> |
| <variant name="Video" summary="video playback"/> |
| <variant name="WheelScroll" summary="wheel scrolling"/> |
| </variants> |
| |
| <variants name="SmoothnessThread"> |
| <variant name=""/> |
| <variant name="CompositorThread."/> |
| <variant name="MainThread."/> |
| </variants> |
| |
| <histogram name="Compositing.Browser.LayersUpdateTime" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>pdr@chromium.org</owner> |
| <owner>animations-dev@chromium.org</owner> |
| <summary> |
| Time spent updating layers, in microseconds. Recorded when layers are |
| updated (in a browser process). |
| |
| Warning: This metric may include reports from clients with low-resolution |
| clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports |
| will cause this metric to have an abnormal distribution. When considering |
| revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the |
| solution. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Browser.LayerTreeImpl.CalculateDrawPropertiesUs" |
| units="microseconds" expires_after="2023-03-19"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Time spent updating layer draw properties, in microseconds. Recorded when a |
| LayerTreeImpl's draw properties are updated (in a browser process). |
| |
| Warning: This metric may include reports from clients with low-resolution |
| clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports |
| will cause this metric to have an abnormal distribution. When considering |
| revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the |
| solution. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.BufferQueue.TimeUntilBuffersRecreatedMs" |
| units="ms" expires_after="2024-06-16"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>petermcneeley@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The time since a BufferQueue's buffers were destroyed until they were |
| recreated. If this time is commonly very small, that is a problem. Recorded |
| when the buffer recreates buffers that were previously destroyed. For a |
| single BufferQueue this should be once per frame at worst. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.ColorGamut" enum="ColorGamut" |
| expires_after="2024-04-16"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Every time a frame is presented, record the generalized color gamut of that |
| frame. Note: this metric was expired from 2022-02-06 to 2023-11-17. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DecodeLCPCandidateImage.{DecodeMethod}" |
| enum="Boolean" expires_after="2024-12-01"> |
| <owner>mmocny@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Reports whether an image decode was for an image that might be used as the |
| Largest Contentful Image, and then whether a missing tile at raster time |
| includes such an image. The goal is to get an approximate idea of how many |
| LCP candidate images miss their frame deadline, and hence how often we may |
| report LCP too soon. |
| |
| Recorded on every {DecodeMethod} |
| |
| Note: this metric was expired from 2023-01-31 to 2023-12-20. |
| </summary> |
| <token key="DecodeMethod"> |
| <variant name="Hardware" summary="hardware image decode task completion."/> |
| <variant name="MissedDeadline" |
| summary="call to PrepareTiles() in which there was a missing tile. |
| True if any missing tile contains an LCP candidate decode |
| that has not completed."/> |
| <variant name="Software" summary="software image decode task completion."/> |
| </token> |
| </histogram> |
| |
| <histogram name="Compositing.DidMainThreadBlockDuringCommit" enum="Boolean" |
| expires_after="2024-06-30"> |
| <owner>szager@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <owner>sky@chromium.org</owner> |
| <summary> |
| Recorded on every commit. Indicates whether the renderer's main thread was |
| blocked waiting for the impl thread to commit. True indicates the main |
| thread did block. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.OverlayProcessingUs" |
| units="microseconds" expires_after="2024-06-30"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Time spent processing quads to see which can be replaced with overlays. This |
| is logged once per frame, when a frame should be drawn. Only reported for |
| platforms supporting high resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.PartialSwap.ExtraDamage" units="%" |
| expires_after="2024-03-16"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>petermcneeley@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The area of the display damage that was added to current frame damage after |
| all adjustments, including FrameBufferDamage from buffer queue and render |
| pass filters. |
| |
| This metric is reported once per frame only on platforms/devices that |
| support partial swap and does not include "empty swap" (no frame |
| damage) case |
| |
| Note: this metric was expired from 2022-10-16 to 2023-06-09. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.PartialSwap.FrameBufferDamage" |
| units="%" expires_after="2024-03-16"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>petermcneeley@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The area of the display that was damaged since previous draw to this frame |
| buffer. |
| |
| This metric is reported once per frame only on platforms/devices that |
| support partial swap and does not include "empty swap" (no frame |
| damage) case. |
| |
| Note: this metric was expired from 2022-10-23 to 2023-06-09. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.PartialSwap.RootDamage" units="%" |
| expires_after="2024-07-21"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>petermcneeley@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The area of the display that was damaged in current frame. |
| |
| This metric is reported only on platforms/devices that support partial swap |
| and does not include "empty swap" (no frame damage) case. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.PartialSwap.TotalDamage" units="%" |
| expires_after="2024-05-19"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>petermcneeley@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The total area of the display that will be redrawn this frame. |
| |
| This metric is reported only on platforms/devices that support partial swap |
| and does not include "empty swap" (no frame damage) case |
| |
| Note: this metric was expired from 2023-04-30 to 2023-06-09. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.SkipAllNonRootRenderPassesPerFrame" |
| enum="BooleanSkipped" expires_after="2024-06-30"> |
| <owner>magchen@chromium.org</owner> |
| <owner>ccameron@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Whether all non-root render passes in a frame are skipped. Logged once per |
| frame during DrawFrame for the frames with non-root render passes. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.SkipNonRootRenderPass" |
| enum="BooleanSkipped" expires_after="2024-06-30"> |
| <owner>magchen@chromium.org</owner> |
| <owner>ccameron@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Logged for every non-root render pass in DrawRenderPass during DrawFrame. |
| True if there is no damages to the render pass and the rendering is skipped. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.DirectRenderer.SkippedNonRootRenderPassOutputSize" |
| units="pixels" expires_after="2024-06-30"> |
| <owner>magchen@chromium.org</owner> |
| <owner>ccameron@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Pixel size for a skipped nonroot render pass output surface. Recorded in Viz |
| DirectRenderer draw frame. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.AdpfHintUs" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>boliu@chromium.org</owner> |
| <owner>vasilyt@chromium.org</owner> |
| <summary> |
| This is logged once for every ADPF performance hint report, which is |
| generally once every frame on Android device that supports ADPF and ADPF is |
| enabled. It's the interval reported to ADPF, which is currently implemented |
| as the wall clock time from vsync frame time to swap_start. Only reported |
| for platforms supporting high resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.Draw.Occlusion.Calculation.Time" |
| units="microseconds" expires_after="2024-06-30"> |
| <owner>yiyix@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <summary> |
| Time spent to remove invisible quads from the quad_list in CompositorFrame. |
| |
| Warning: This metric may include reports from clients with low-resolution |
| clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports |
| will cause this metric to have an abnormal distribution. When considering |
| revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the |
| solution. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.DrawToSwapUs" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| This is logged once per frame, if the output surface provides timing |
| information. It measures the time from the display compositor starting a |
| draw on the Viz Compositor thread to issuing all related draw calls to the |
| driver on the Gpu Main thread. Only reported for platforms supporting high |
| resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.DrmOverlayManager.FirstTestPageFlipPassed" |
| enum="Boolean" expires_after="2023-08-20"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or more times per frame, whether the first call to |
| HardwareDisplayController.TestPageFlip succeeded. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.DrmOverlayManager.TestPageFlipCount" |
| units="units" expires_after="2024-06-30"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or more times per frame, the number of times TestPageFlip is |
| called on the HardwareDisplayController. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.DrmOverlayManager.TestPageFlipUs" |
| units="microseconds" expires_after="2024-06-30"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or more times per frame, the duration of calling TestPageFlip on |
| the HardwareDisplayController. Only reported for platforms supporting high |
| resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.DrmThread.CheckOverlayCapabilitiesSyncUs" |
| units="microseconds" expires_after="2023-06-18"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or more times per frame, the duration of |
| DrmThread::CheckOverlayCapabilitiesSync(). This is the total time spent on |
| the DRM thread to check a set of overlay candidates. Only reported for |
| platforms supporting high resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.FlattenedRenderPassCount" units="units" |
| expires_after="2024-06-30"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| This is logged once per frame. It is the number of renderer passes after |
| flattening all possible render passes. If the value is more than one, then |
| an intermediate rendering target must be used during the rendering of the |
| frame for each render pass greater than one. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.HardwareDisplayController.SchedulePageFlipResult" |
| enum="PageFlipResult" expires_after="2024-03-02"> |
| <owner>seanpaul@chromium.org</owner> |
| <owner>chromeos-gfx-compositor@chromium.org</owner> |
| <summary> |
| Logged once per frame, represents whether we could successfully schedule a |
| page flip, or what error we encountered along the way. Note: this metric was |
| expired from 2023-03-02 to 2023-04-13. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.OverlayCombinationCache.NumIdsEvicted" |
| units="units" expires_after="2023-06-04"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or one times per frame, the number of stale candidate ids we are |
| evicting from the OverlayCombinationCache this frame. If this number is high |
| the CandidateIds or the candidates proposed are likely less stable than they |
| should be. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.OverlayProcessorOzone.MaxPlanesSupported" |
| units="units" expires_after="2023-08-20"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| This is logged every time a valid HardwareCapabilities is received from DRM |
| when display configuration may have changed. It records the number of |
| overlay planes we have available on this device including the primary plane. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.CandidateCombinationPreviouslySucceeded" |
| enum="Boolean" expires_after="2023-08-20"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or one times per frame, whether or not the candidate combination |
| being tested this frame was successfully promoted to overlays on the |
| previous frame. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.CheckOverlaySupportCallCount" |
| units="units" expires_after="2024-06-30"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| This is logged once per frame, the number of times CheckOverlaySupport is |
| called this frame. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.CheckOverlaySupportUs" |
| units="microseconds" expires_after="2024-06-30"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or more times per frame, the time spent checking if a set of |
| candidates can be promoted to overlay. Only reported for platforms |
| supporting high resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.FramesAttemptingRequiredOverlays" |
| enum="Boolean" expires_after="2024-05-26"> |
| <owner>zoraiznaeem@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Records once per frame, whether we will attempt to promote any required |
| overlay or not in that frame. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.FramesScalingRequiredOverlays" |
| enum="Boolean" expires_after="2024-06-30"> |
| <owner>zoraiznaeem@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Records zero or once per frame, whether we attempted scaling any required |
| overlay. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.NumOverlays{Counted}" |
| units="overlay candidates" expires_after="2024-06-30"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <owner>chromeos-gfx-compositor@chromium.org</owner> |
| <summary> |
| Logged once per frame, the number of overlays {Counted}. Note: this metric |
| was expired from 2022-11-30 to 2023-04-13. |
| </summary> |
| <token key="Counted"> |
| <variant name="Attempted" |
| summary="attempted. This is only logged when using the |
| AttemptMultipleOverlays path."/> |
| <variant name="Failed" |
| summary="failed. This is only logged when using the |
| AttemptMultipleOverlays path."/> |
| <variant name="Promoted" summary="promoted."/> |
| </token> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.NumQuadsConsidered" |
| units="units" expires_after="2023-06-18"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged once per frame, the number of quads considered for promotion to |
| overlay. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.ShouldAttemptMultipleOverlays" |
| enum="AttemptingMultipleOverlays" expires_after="2024-02-25"> |
| <owner>khaslett@chromium.org</owner> |
| <owner>kylechar@chromium.org</owner> |
| <summary> |
| Logged zero or one times per frame, whether we're using the |
| AttemptingMultipleOverlays codepath this frame or why we arent. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.Display.OverlayProcessorUsingStrategy.WorkingScaleFactorForRequiredOverlays" |
| units="scale_factor" expires_after="2024-06-30"> |
| <owner>zoraiznaeem@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Records the scale factor that is used to downscale successfully promoted |
| required candidates. It is only logged once per frame if a required overlay |
| is promoted. Note: The scale factor value is logged as `scale_factor * 100`. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.PendingSwaps" units="swaps" |
| expires_after="2024-06-16"> |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <summary> |
| Records the count of pending swaps in the display scheduler. Length of the |
| swap chain can be used as a rough approximation for input latency. Recorded |
| before the swap executes. Refer to Display::DrawAndSwap for details. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.VizDependencyResolvedToGpuStartedDrawUs" |
| units="microseconds" expires_after="2024-06-16"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| This is logged once per frame, if the output surface provides timing |
| information. It measures delta between the time when display compositor draw |
| task's dependencies have been solved and the time when the Gpu Thread |
| started processing it. Only reported for platforms supporting high |
| resolution clocks. Note: this metric was expired from 2022-12-18 to |
| 2023-11-17. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.VizScheduledDrawToDependencyResolvedUs" |
| units="microseconds" expires_after="2024-06-16"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| This is logged once per frame if the output surface provides timing |
| information. It measures delta between the time when display compositor |
| scheduled first draw task for the current frame on Viz Compositor thread and |
| the time when the task's dependencies have been resolved and the task is |
| ready for the Gpu Thread to start processing it. Recorded when swap |
| completes. Only reported for platforms supporting high resolution clocks. |
| Note: this metric was expired from 2023-08-27 to 2023-11-17. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Display.VizScheduledDrawToGpuStartedDrawUs" |
| units="microseconds" expires_after="2024-06-16"> |
| <owner>vasilyt@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| This is logged once per frame if the output surface provides timing |
| information. It measures delta between the time when display compositor |
| scheduled first draw task for the current frame on Viz Compositor thread and |
| the time when Gpu Thread started processing it. Recorded when swap |
| completes. Only reported for platforms supporting high resolution clocks. |
| Note: this metric was expired from 2022-12-18 to 2023-11-17. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.FrameRateDecider.ToggleFrameRateCase" |
| enum="ToggleFrameRateCase" expires_after="2024-03-30"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The count of cases to decide whether we should toggle framerate or not in |
| FrameRateDecider. This is logged at 1/1000 probability of frames with |
| video(s) on screen. This aims to determine how frequently Chormium is |
| rendering single video with perfect cadence to the supported frame rates. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.MainThreadBlockedDuringCommitTime" |
| units="microseconds" expires_after="2024-06-30"> |
| <owner>szager@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <owner>sky@chromium.org</owner> |
| <summary> |
| The time that the renderer's main thread blocked waiting for the impl thread |
| to commit. This is only reported if the main thread blocked. |
| |
| Drops reports on clients with low-resolution clocks, biasing to a portion of |
| the population on Windows. See Windows.HasHighResolutionTimeTicks for the |
| affected sample. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Compositing.MainThreadBlockedDuringCommitTime.ApplyCompositorChanges" |
| units="microseconds" expires_after="2023-10-08"> |
| <owner>szager@chromium.org</owner> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| The time that ApplyCompositorChanges is blocked waiting for the impl thread |
| to commit. This is a subset of the total time spent in |
| Compositing.MainThreadBlockedDuringCommitTime. |
| |
| Drops reports on clients with low-resolution clocks, biasing to a portion of |
| the population on Windows. See Windows.HasHighResolutionTimeTicks for the |
| affected sample. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.AnimationUpdateOnMissingPropertyNode" |
| enum="Boolean" expires_after="2024-12-02"> |
| <owner>awogbemila@chromium.org</owner> |
| <owner>input-dev@chromium.org</owner> |
| <summary> |
| Records when we attempt to update an animation with a missing property node. |
| See crbug.com/1307498. We safely handle this case but until we find and fix |
| the root cause, this histogram allows us to keep track of the frequency at |
| this occurs. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.CALayerResult" enum="CALayerResult" |
| expires_after="2024-06-30"> |
| <owner>ccameron@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The outcome of attempting to replace all renderer tiles with CALayers. |
| Either success, or the first reason why a DrawQuad couldn't be replaced by a |
| CALayer. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.LayersUpdateTime" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Time spent updating layers, in microseconds. Recorded when layers are |
| updated (in a renderer process). |
| |
| Warning: This metric may include reports from clients with low-resolution |
| clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports |
| will cause this metric to have an abnormal distribution. When considering |
| revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the |
| solution. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.LCDTextDisallowedReasonKPixels2.{DPI}" |
| enum="LCDTextDisallowedReason" expires_after="2024-06-30"> |
| <owner>wangxianzhu@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Records the approximate kilo-pixels covered by text drawing operations by |
| LCD-text disallowed reasons. Hence the histogram value for each reason is |
| the approximate number of non-LCD kilo-pixels resulting from that reason. |
| Recorded when the renderer is idle, at minimum interval of the longer of 1 |
| minute and 500 begin frames for each local frame tree. |
| </summary> |
| <token key="DPI" variants="LCDTextDisallowedReasonDPI"/> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.LCDTextDisallowedReasonLayers2.{DPI}" |
| enum="LCDTextDisallowedReason" expires_after="2024-06-30"> |
| <owner>wangxianzhu@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Records the number of layers containing text by LCD-text disallowed reasons. |
| Recorded along with Compositing.Renderer.LCDTextDisallowedReasonKPixels. |
| </summary> |
| <token key="DPI" variants="LCDTextDisallowedReasonDPI"/> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.NumActiveLayers" units="layers" |
| expires_after="2024-07-21"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| The number of layers in the active tree for each compositor frame. This is |
| logged once per frame, before the frame is drawn (in a renderer process). |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.NumActivePictureLayers" units="layers" |
| expires_after="2024-07-21"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| The number of PictureLayers in the active tree for each compositor frame. |
| This is logged once per frame, before the frame is drawn (in a renderer |
| process). |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.Renderer.NumRenderSurfaces" units="surfaces" |
| expires_after="2024-07-21"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| The number of render surfaces in the render surface layer list. Recorded |
| each time the render surface layer list is constructed (in a renderer |
| process). |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SkiaRenderer.DirectlyDrawableRenderPassWithRPDQ" |
| enum="Boolean" expires_after="2024-06-30"> |
| <owner>khushalsagar@chromium.org</owner> |
| <owner>vmpstr@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Logged for every nested RenderPass to indicate whether it could have been |
| drawn directly because it has a single RPDQ and no other effect which would |
| require producing a render pass. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SkiaRenderer.DrawTileDrawQuad.UsingRawDraw" |
| enum="Boolean" expires_after="2023-06-11"> |
| <owner>penghuang@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary>Records if the TileDrawQuad is rendered with RawDraw.</summary> |
| </histogram> |
| |
| <histogram name="Compositing.SkiaRenderer.SkipOverlayRenderPassDrawQuad" |
| enum="BooleanSkipped" expires_after="2024-06-30"> |
| <owner>magchen@chromium.org</owner> |
| <owner>ccameron@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Logged for every RenderPassDrawQuad in the overlay list during |
| ScheduleOverlays. An Overlay RenderPassDrawQuad is skipped if there is no |
| damages to the render pass and the RenderPassDrawQuad settings are the same. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SkiaRenderer.SkippedOverlayRenderPassDrawQuadSize" |
| units="pixels" expires_after="2024-06-30"> |
| <owner>magchen@chromium.org</owner> |
| <owner>ccameron@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Pixel size for a skipped overlay render pass draw quad. Recorded in |
| SkiaRenderer ScheduleOverlays. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SkiaRenderer.VertexOpacityUsage" |
| units="VertexOpacityUsage" expires_after="2024-06-28"> |
| <owner>petermcneeley@chromium.org</owner> |
| <owner>kyle@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Vertex usage is logged cumulatively for every 1000 TextureDrawQuads drawn. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.AggregateUs" |
| units="microseconds" expires_after="2024-06-30"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Time spent aggregating compositor frames from different surfaces in |
| microseconds. This is logged once per frame. |
| |
| Warning: This metric may include reports from clients with low-resolution |
| clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports |
| will cause this metric to have an abnormal distribution. When considering |
| revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the |
| solution. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.CopiedSurfaceCount" |
| units="surfaces" expires_after="2024-06-30"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>jonross@chromium.org</owner> |
| <summary> |
| The number of surfaces where the active CompositorFrame was copied into the |
| AggregateFrame during surface aggregation. This is logged once per frame. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.CopyUs" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>jonross@chromium.org</owner> |
| <summary> |
| Time spent copying quads during surface aggregation. This is a subset of the |
| time recorded for Compositing.SurfaceAggregator.AggregateUs and is logged |
| once per frame. |
| |
| Warning: This metric does not include reports from clients with |
| low-resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.DeclareResourcesUs" |
| units="microseconds" expires_after="2024-02-01"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>jonross@chromium.org</owner> |
| <summary> |
| Time spent declaring resources as used during surface aggregation. This is a |
| subset of the time recorded for Compositing.SurfaceAggregator.AggregateUs |
| and is logged once per frame. |
| |
| Warning: This metric does not include reports from clients with |
| low-resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.Has{Type}PerFrame" |
| enum="Boolean" expires_after="2024-06-30"> |
| <owner>magchen@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Record whether a frame has a specific type of render pass. This is logged |
| once per frame. |
| </summary> |
| <token key="Type"> |
| <variant name="CopyRequests"/> |
| <variant name="PixelMovingBackdropFilters"/> |
| <variant name="PixelMovingFilters"/> |
| <variant name="UnembeddedRenderPasses"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.OrphanedRenderPassCount" |
| units="render passes" expires_after="2024-07-14"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>khaslett@chromium.org</owner> |
| <summary> |
| The number of render passes that are drawn but are not contributing pixels |
| to either the framebuffer or a CopyOutputRequest. These render passes can |
| likely be skipped. This is logged once per frame. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.PrewalkedSurfaceCount" |
| units="surfaces" expires_after="2024-06-30"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>jonross@chromium.org</owner> |
| <summary> |
| The number of surfaces that were looked at during the prewalk phase of |
| surface aggregation. This is logged once per frame. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceAggregator.PrewalkUs" units="microseconds" |
| expires_after="2024-07-07"> |
| <owner>kylechar@chromium.org</owner> |
| <owner>jonross@chromium.org</owner> |
| <summary> |
| Time spent doing prewalk during surface aggregation. This is a subset of the |
| time recorded for Compositing.SurfaceAggregator.AggregateUs and is logged |
| once per frame. |
| |
| Warning: This metric does not include reports from clients with |
| low-resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.SurfaceManager.MarkForDestructionToDestroy" |
| units="ms" expires_after="2024-10-20"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The time between when a Surface has been Marked for Destruction, to when it |
| is actually Destroyed. |
| |
| This time denotes how long the Surface remains referenced by other Surfaces, |
| preventing deletion. This does not include the following time until the |
| associated resources are released, and their memory is freed. This is logged |
| once per destroyed Surface. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.TileManager.EnoughMemory" enum="Boolean" |
| expires_after="2024-06-30"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>chrome-gpu-memory@google.com</owner> |
| <summary> |
| When memory is assigned to tiles, whether there was enough memory for all |
| required tiles. |
| </summary> |
| </histogram> |
| |
| <histogram name="Compositing.TileManager.LimitWhenNotEnoughMemory" units="MB" |
| expires_after="2024-06-30"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>chrome-gpu-memory@google.com</owner> |
| <summary> |
| When memory is assigned to tiles and there is not enough memory, the memory |
| limit that the tile assignment was breaching.. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="CompositorLatency.CompositorOnlyFrame{InteractionType}.{StageType}" |
| units="microseconds" expires_after="2024-07-07"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the duration of various stages in the pipeline as a single frame goes |
| through the various stages in the compositor in the cases that there is no |
| damage from main thread. |
| |
| This metric uses base::Histogram::FactoryMicrosecondsTimeGet so only users |
| with high resolution clocks will report this metric. |
| |
| Note: This metric was expired from 2023-03-01 to 2023-05-05. |
| </summary> |
| <token key="InteractionType"> |
| <variant name=""/> |
| <variant name=".CanvasAnimation"/> |
| <variant name=".CompositorAnimation"/> |
| <variant name=".JSAnimation"/> |
| <variant name=".MainThreadAnimation"/> |
| <variant name=".PinchZoom"/> |
| <variant name=".RAF"/> |
| <variant name=".ScrollbarScroll"/> |
| <variant name=".SETCompositorAnimation"/> |
| <variant name=".SETMainThreadAnimation"/> |
| <variant name=".TouchScroll"/> |
| <variant name=".WheelScroll"/> |
| </token> |
| <token key="StageType"> |
| <variant name="BeginImplFrameToFinishImpl"/> |
| <variant name="ImplFrameDoneToSubmitCompositorFrame"/> |
| <variant name="SendBeginMainFrameToBeginMainAbort"/> |
| <variant name="SubmitCompositorFrameToPresentationCompositorFrame"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.BufferAvailableToBufferReady"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.BufferReadyToLatch"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.LatchToSwapEnd"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SubmitToReceiveCompositorFrame"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SwapEndToPresentationCompositorFrame"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToBufferAvailable"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd"/> |
| <variant name="TotalLatency"/> |
| </token> |
| </histogram> |
| |
| <histogram name="CompositorLatency.IpcThread.{LatencyType}" |
| units="microseconds" expires_after="2024-06-12"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Reports the overhead of IPC's and thread hops during the production of a |
| single frame. Measures {LatencyType} |
| |
| This is reported by the Renderer, at a subsampled rate of effectively once |
| per 1000 frames. Non-Renderer clients do not report this. This metric drops |
| reports on low-resolution clocks, which will bias the Windows population. |
| </summary> |
| <token key="LatencyType"> |
| <variant name="BeginMainFrameQueuing" |
| summary="the time from when the Compositor thread posts |
| BeginMainFrame to when the task actually begins on the Main |
| thread. This is a subset of |
| CompositorLatency.*.SendBeginMainFrameToCommit."/> |
| <variant name="DispatchToRenderer" |
| summary="the time from when Viz dispatched the BeginFrameArgs to when |
| it is received by the client."/> |
| <variant name="FrameTimeToDispatch" |
| summary="the time from the targeted frame start time to when Viz |
| dispatches it to the client."/> |
| <variant name="ImplThreadTotalLatency" |
| summary="the total latency overhead for Compositor-only frames. Which |
| excludes BeginMainFrameQueuing."/> |
| <variant name="MainThreadTotalLatency" |
| summary="the total latency overhead for frames which had Main-thread |
| work."/> |
| </token> |
| </histogram> |
| |
| <histogram name="CompositorLatency.Type{Sequence}" enum="FrameReportType" |
| expires_after="2024-07-21"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Whether frame is dropped or presented meeting or missing the deadline or is |
| a compositor only frame. |
| </summary> |
| <token key="Sequence"> |
| <variant name="" summary="All Sequences"/> |
| <variant name=".AnyInteraction" summary="At least one active interaction"/> |
| <variant name=".CanvasAnimation" summary="Main-thread canvas animation"/> |
| <variant name=".CompositorAnimation" summary="Compositor-driven animation"/> |
| <variant name=".JSAnimation" summary="JS-driven animation"/> |
| <variant name=".MainThreadAnimation" |
| summary="Main-thread driven animation"/> |
| <variant name=".NoInteraction" summary="No active interaction"/> |
| <variant name=".PinchZoom" summary="Pinch-to-zoom interaction"/> |
| <variant name=".RAF" summary="rAF callback driven animation"/> |
| <variant name=".ScrollbarScroll" summary="Scrollbar driven scrolls"/> |
| <variant name=".TouchScroll" summary="Touchscreen driven interaction"/> |
| <variant name=".Video" summary="Video playback"/> |
| <variant name=".WheelScroll" summary="Mousewheel driven interaction"/> |
| </token> |
| </histogram> |
| |
| <histogram name="CompositorLatency{ReportType}{InteractionType}.{StageType}" |
| units="microseconds" expires_after="2024-07-24"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the duration of various stages in the pipeline as a single frame goes |
| through the various stages in the compositor {ReportType}. |
| |
| This metric uses base::Histogram::FactoryMicrosecondsTimeGet so only users |
| with high resolution clocks will report this metric. |
| </summary> |
| <token key="ReportType"> |
| <variant name="" |
| summary="reported for frames that went through all the compositor |
| stages in chromium, and was presented to the user"/> |
| <variant name=".DroppedFrame" |
| summary="reported for frames that the user did not see: this includes |
| frames that are dropped in various stages inside chromium, |
| or even frames that went through all stages in chromium, but |
| ultimately was not presented to the user"/> |
| <variant name=".MissedDeadlineFrame" |
| summary="reported for frames that went through all the compositor |
| stages in chromium, and was presented to the user, but were |
| delayed and missed their deadline"/> |
| </token> |
| <token key="InteractionType"> |
| <variant name=""/> |
| <variant name=".CanvasAnimation"/> |
| <variant name=".CompositorAnimation"/> |
| <variant name=".JSAnimation"/> |
| <variant name=".MainThreadAnimation"/> |
| <variant name=".PinchZoom"/> |
| <variant name=".RAF"/> |
| <variant name=".ScrollbarScroll"/> |
| <variant name=".SETCompositorAnimation"/> |
| <variant name=".SETMainThreadAnimation"/> |
| <variant name=".TouchScroll"/> |
| <variant name=".WheelScroll"/> |
| </token> |
| <token key="StageType"> |
| <variant name="Activation"/> |
| <variant name="BeginImplFrameToSendBeginMainFrame"/> |
| <variant name="Commit"/> |
| <variant name="EndActivateToSubmitCompositorFrame"/> |
| <variant name="EndCommitToActivation"/> |
| <variant name="SendBeginMainFrameToCommit"/> |
| <variant name="SendBeginMainFrameToCommit.Animate"/> |
| <variant name="SendBeginMainFrameToCommit.BeginMainSentToStarted"/> |
| <variant name="SendBeginMainFrameToCommit.CompositeCommit"/> |
| <variant name="SendBeginMainFrameToCommit.CompositingInputs"/> |
| <variant name="SendBeginMainFrameToCommit.HandleInputEvents"/> |
| <variant name="SendBeginMainFrameToCommit.LayoutUpdate"/> |
| <variant name="SendBeginMainFrameToCommit.Paint"/> |
| <variant name="SendBeginMainFrameToCommit.Prepaint"/> |
| <variant name="SendBeginMainFrameToCommit.StyleUpdate"/> |
| <variant name="SendBeginMainFrameToCommit.UpdateLayers"/> |
| <variant name="SubmitCompositorFrameToPresentationCompositorFrame"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.BufferAvailableToBufferReady"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.BufferReadyToLatch"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.LatchToSwapEnd"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SubmitToReceiveCompositorFrame"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SwapEndToPresentationCompositorFrame"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToBufferAvailable"/> |
| <variant |
| name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd"/> |
| <variant name="TotalLatency"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Graphics.Exo.Smoothness.DidNotProduceToFrameArrival" |
| units="microseconds" expires_after="2024-05-05"> |
| <owner>jonross@chromium.org</owner> |
| <owner>yzshen@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Measures the time duration between Exo sending a DidNotProduceFrame response |
| and the next frame arrival, if the next frame arrives before a new |
| BeginFrame request. Reported for clients with high-resolution clocks. |
| |
| This metric is used to measure whether the deadline Exo uses to wait for |
| frames is reasonable. Please note that a value is reported for each |
| DidNotProduceFrame. If (1) DidNotProduceFrame is issued when there are |
| already queued BeginFrame requests; or (2) a new BeginFrame request arrives |
| before the next frame; or (3) BeginFrame requests are paused, then the value |
| reported is 0. |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Exo.Smoothness.PercentDidNotProduceFrame" units="%" |
| expires_after="2024-07-07"> |
| <owner>jonross@chromium.org</owner> |
| <owner>yzshen@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of BeginFrame requests that Exo receives and responds |
| with DidNotProduceFrame. |
| |
| A new value is reported for every 100 BeginFrame requests that a shell |
| surface receives. Note that this metric is reported only when there are |
| sufficient number of BeginFrame requests (>= 100). |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Exo.Smoothness.PercentFrameDiscarded" units="%" |
| expires_after="2024-12-31"> |
| <owner>jonross@chromium.org</owner> |
| <owner>yzshen@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of compositor frames that are submitted from Exo clients |
| and directly discarded without being sent to the GPU process. |
| |
| A new value is reported for every 100 frames that a shell surface submits. |
| Note that this metric is reported only when there are sufficient number of |
| frames (>= 100). |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.95pctPercentDroppedFrames_1sWindow" |
| units="%" expires_after="2024-07-21"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The percent dropped frame is calculated for each sliding window of 1 second |
| length and added to a histogram, and then the 95 percentile of that |
| histogram is reported as 95pctPercentDroppedFrames_1sWindow. |
| |
| The sliding windows cover the duration of page-load (From start of page-load |
| until user navigates away, or closes the tab/chrome, or when app goes to |
| background). Note that this means that this metric will bias toward tabs |
| that are closed more quickly, and might underreport tabs that remain open |
| for a long duration. |
| |
| PercentDroppedFrames is measured by tracking the number of frames which were |
| not displayed on screen out of the total number of frames expected to be |
| produced and displayed. In other words, the lower this number is, the |
| smoother experience. |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.Checkerboarding3.AllSequences" units="%" |
| expires_after="2024-07-07"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of checkerboarded frames for a sequence by aggregating |
| all its animations and interactions, where a sequence is a series of frames |
| produced which contain at least one of the animations/interactions. Such |
| animations and interactions encompass: Compositor-thread animations; |
| Main-thread animations; JS animations; scrolling; and pinch-gestures. |
| |
| Checkerboarding is measured by tracking the number of times checkerboard |
| frames are displayed (as opposed to the number of checkerboard frames |
| produced), since the same checkerboard frame can be displayed more than |
| once. |
| |
| Note that this metric is reported only when there are a sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until an additional sequence completes where there are (>= |
| 100) frames available in total. |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.Checkerboarding3.{Thread}{Sequence}" |
| units="%" expires_after="2024-07-07"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of checkerboarded frames for a sequence by aggregating |
| all {Sequence}, where a sequence is a series of frames produced which |
| contain at least one of the aforementioned effects. |
| |
| Checkerboarding is measured by tracking the number of times checkerboard |
| frames are displayed (as opposed to the number of checkerboard frames |
| produced), since the same checkerboard frame can be displayed more than |
| once. |
| |
| Note that this metric is reported only when there are a sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until an additional sequence completes where there are (>= |
| 100) frames available in total. |
| </summary> |
| <token key="Thread" variants="SmoothnessThread"/> |
| <token key="Sequence" variants="SmoothnessSequence"/> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.Jank3.All{Type}" units="%" |
| expires_after="2024-06-05"> |
| <owner>jonross@chromium.org</owner> |
| <owner>mjzhang@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of janks for a sequence by aggregating all its {Type} |
| |
| Jank is measured by tracking the number of abrupt increases in frame |
| presentation interval, divided by the total number of frames expected to be |
| produced and displayed. The lower this number is, the less the smoothness |
| varies over time. |
| |
| Note that this metric is reported only when there are sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until there are enough frames to produce the metric. |
| </summary> |
| <token key="Type"> |
| <variant name="Sequences" |
| summary="animations and interactions, where a sequence is a series of |
| frames produced which contain at least one of the |
| animations/interactions. Such animations and interactions |
| encompass: Compositor-thread animations; Main-thread |
| animations; JS animations; scrolling; and pinch-gestures."/> |
| </token> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.Jank3.{Thread}{Sequence}" units="%" |
| expires_after="2024-06-05"> |
| <owner>jonross@chromium.org</owner> |
| <owner>mjzhang@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of janks for a sequence by aggregating all {Sequence}, |
| where a sequence is a series of frames produced which contain at least one |
| of the aforementioned effects. |
| |
| Jank is measured by tracking the number of abrupt increases in frame |
| presentation interval, divided by the total number of frames expected to be |
| produced and displayed. The lower this number is, the less the smoothness |
| varies over time. |
| |
| Note that this metric is reported only when there are sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until there are enough frames to produce the metric. |
| </summary> |
| <token key="Thread" variants="SmoothnessThread"/> |
| <token key="Sequence" variants="SmoothnessSequence"/> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.MaxPercentDroppedFrames_1sWindow" |
| units="%" expires_after="2024-06-30"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of dropped frames for in a 1 second sliding window. |
| |
| PercentDroppedFrames is measured by tracking the number of frames which were |
| not displayed on screen out of the total number of frames expected to be |
| produced and displayed. In other words, the lower this number is, the |
| smoother experience. |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.MaxStale" units="ms" |
| expires_after="2024-07-21"> |
| <owner>jonross@chromium.org</owner> |
| <owner>mjzhang@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the maximum staleness value for all presentations for a particular |
| sequence of frames (e.g. during scroll, animation, etc.). This is reported |
| in various sub-metrics with suffixes describing the type of the sequence |
| (e.g. TouchScroll etc.). |
| |
| Typically, a frame presentation is expected to last at least one vsync |
| cycle, plus any number of additional vsync cycles if no updates are expected |
| duration that time. If the presentation interval is prolonged due to reasons |
| other than listed above, then that prolonged portion will be considered |
| staleness for that frame. |
| |
| Note that this metric is reported only when there are sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until there are enough frames to produce the metric. |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.PercentDroppedFrames3.AllSequences" |
| units="%" expires_after="never"> |
| <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) --> |
| |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Tracks the percent of dropped frames for a sequence by aggregating all its |
| animations and interactions, where a sequence is a series of frames produced |
| which contain at least one of the animations/interactions. Such animations |
| and interactions encompass: Compositor-thread animations; Main-thread |
| animations; JS animations; scrolling; and pinch-gestures. |
| |
| PercentDroppedFrames is measured by tracking the number of frames which were |
| not displayed on screen out of the total number of frames expected to be |
| produced and displayed. In other words, the lower this number is, the |
| smoother the experience. |
| |
| Note that this metric is reported only when there are a sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until an additional sequence completes where there are (>= |
| 100) frames available in total. |
| |
| This is a new implementation of the older |
| Graphics.Smoothness.PercentDroppedFrames.AllInteractions metric. |
| |
| See http://shortn/_ItBDdHoyCf (internal only) for more details. |
| |
| This histogram is of special interest to the chrome-analysis-team@. Do not |
| change its semantics or retire it without talking to them first. |
| </summary> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.PercentDroppedFrames3.{Thread}{Sequence}" |
| units="%" expires_after="2024-07-14"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the percent of dropped frames for a sequence by aggregating all |
| {Sequence}, where a sequence is a series of frames produced which contain at |
| least one of the aforementioned effects. |
| |
| PercentDroppedFrames is measured by tracking the number of frames which were |
| not displayed on screen out of the total number of frames expected to be |
| produced and displayed. In other words, the lower this number is, the |
| smoother the experience. |
| |
| Note that this metric is reported only when there are a sufficient number of |
| frames (>= 100). If there are sequences with fewer frames, then these are |
| aggregated until an additional sequence completes where there are (>= |
| 100) frames available in total. |
| |
| This is a new implementation of the older |
| Graphics.Smoothness.PercentDroppedFrames.AllInteractions metric. |
| </summary> |
| <token key="Thread" variants="SmoothnessThread"/> |
| <token key="Sequence" variants="SmoothnessSequence"/> |
| </histogram> |
| |
| <histogram name="Graphics.Smoothness.Stale" units="ms" |
| expires_after="2024-07-21"> |
| <owner>jonross@chromium.org</owner> |
| <owner>mjzhang@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Tracks the staleness value for each frame presentation for a particular |
| sequence of frames (e.g. during scroll, animation, etc.). This is reported |
| in various sub-metrics with suffixes describing the type of the sequence |
| (e.g. TouchScroll etc.). |
| |
| Typically, a frame presentation is expected to last at least one vsync |
| cycle, plus any number of additional vsync cycles if no updates are expected |
| duration that time. If the presentation interval is prolonged due to reasons |
| other than listed above, then that prolonged portion will be considered |
| staleness. |
| |
| Note that the reporting of this metric occurs as soon as a frame is |
| presented, and is not affected by the length of the frame sequence. |
| </summary> |
| </histogram> |
| |
| </histograms> |
| |
| </histogram-configuration> |