blob: 162a078b7e31d6b85e7cbc23a1e9d81c4b96de40 [file] [log] [blame]
-- Copyright 2024 The Chromium Authors
-- Use of this source code is governed by a BSD-style license that can be
-- found in the LICENSE file.
INCLUDE PERFETTO MODULE slices.with_context;
-- Top level scroll events, with metrics.
CREATE PERFETTO TABLE chrome_scroll_interactions (
-- Unique id for an individual scroll.
id LONG,
-- Name of the scroll event.
name STRING,
-- Start timestamp of the scroll.
ts TIMESTAMP,
-- Duration of the scroll.
dur DURATION,
-- The total number of frames in the scroll.
frame_count LONG,
-- The total number of vsyncs in the scroll.
vsync_count LONG,
-- The maximum number of vsyncs missed during any and all janks.
missed_vsync_max LONG,
-- The total number of vsyncs missed during any and all janks.
missed_vsync_sum LONG,
-- The number of delayed frames.
delayed_frame_count LONG,
-- The number of frames that are deemed janky to the human eye after Chrome
-- has applied its scroll prediction algorithm.
predictor_janky_frame_count LONG,
-- The process id this event occurred on.
renderer_upid LONG
) AS
WITH
scroll_metrics AS (
SELECT
id,
ts,
dur,
extract_arg(arg_set_id, 'scroll_metrics.frame_count') AS frame_count,
extract_arg(arg_set_id, 'scroll_metrics.vsync_count') AS vsync_count,
extract_arg(arg_set_id, 'scroll_metrics.missed_vsync_max') AS missed_vsync_max,
extract_arg(arg_set_id, 'scroll_metrics.missed_vsync_sum') AS missed_vsync_sum,
extract_arg(arg_set_id, 'scroll_metrics.delayed_frame_count') AS delayed_frame_count,
extract_arg(arg_set_id, 'scroll_metrics.predictor_janky_frame_count') AS predictor_janky_frame_count,
upid AS renderer_upid
FROM process_slice
WHERE
name = 'Scroll'
)
SELECT
id,
'Scroll' AS name,
ts,
dur,
frame_count,
vsync_count,
missed_vsync_max,
missed_vsync_sum,
delayed_frame_count,
predictor_janky_frame_count,
renderer_upid
FROM scroll_metrics;