• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1--
2-- Copyright 2022 The Android Open Source Project
3--
4-- Licensed under the Apache License, Version 2.0 (the "License");
5-- you may not use this file except in compliance with the License.
6-- You may obtain a copy of the License at
7--
8--     https://www.apache.org/licenses/LICENSE-2.0
9--
10-- Unless required by applicable law or agreed to in writing, software
11-- distributed under the License is distributed on an "AS IS" BASIS,
12-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-- See the License for the specific language governing permissions and
14-- limitations under the License.
15
16
17DROP VIEW IF EXISTS android_jank_cuj_event;
18CREATE VIEW android_jank_cuj_event AS
19-- Computed CUJ boundaries.
20SELECT
21  'slice' AS track_type,
22  cuj.cuj_name AS track_name,
23  boundary.ts,
24  boundary.dur,
25  cuj.cuj_name || ' (adjusted, id=' || cuj_id || ') ' AS slice_name,
26  'CUJ Boundaries' AS group_name
27FROM android_jank_cuj cuj
28JOIN android_jank_cuj_boundary boundary USING (cuj_id)
29UNION ALL
30-- Computed frame boundaries on the Main Thread.
31SELECT
32  'slice' AS track_type,
33  cuj.cuj_name || ' MT ' || vsync AS track_name,
34  boundary.ts,
35  boundary.dur,
36  vsync || '' AS slice_name,
37  cuj.cuj_name || ' - MT frame boundaries' AS group_name
38FROM android_jank_cuj cuj
39JOIN android_jank_cuj_main_thread_frame_boundary boundary USING (cuj_id)
40UNION ALL
41-- Computed frame boundaries on the Render Thread.
42SELECT
43  'slice' AS track_type,
44  cuj.cuj_name || ' RT ' || vsync AS track_name,
45  boundary.ts,
46  boundary.dur,
47  vsync || '' AS slice_name,
48  cuj.cuj_name || ' - RT frame boundaries' AS group_name
49FROM android_jank_cuj cuj
50JOIN android_jank_cuj_render_thread_frame_boundary boundary USING (cuj_id)
51UNION ALL
52-- Computed overall frame boundaries not specific to any thread.
53SELECT
54  'slice' AS track_type,
55  cuj.cuj_name || ' ' || vsync AS track_name,
56  f.ts,
57  f.dur,
58  vsync || ' [app_missed=' || f.app_missed || ']' AS slice_name,
59  cuj.cuj_name || ' - frames' AS group_name
60FROM android_jank_cuj cuj
61JOIN android_jank_cuj_frame f USING (cuj_id)
62UNION ALL
63-- Computed frame boundaries on the SF Main Thread
64SELECT
65  'slice' AS track_type,
66  cuj.cuj_name || ' SF MT ' || vsync AS track_name,
67  boundary.ts,
68  boundary.dur,
69  vsync || '' AS slice_name,
70  cuj.cuj_name || ' - SF MT frame boundaries' AS group_name
71FROM android_jank_cuj cuj
72JOIN android_jank_cuj_sf_main_thread_frame_boundary boundary USING (cuj_id)
73UNION ALL
74-- Computed frame boundaries on the SF RenderEngine Thread.
75SELECT
76  'slice' AS track_type,
77  cuj.cuj_name || ' SF RE ' || vsync AS track_name,
78  boundary.ts,
79  boundary.dur,
80  vsync || '' AS slice_name,
81  cuj.cuj_name || ' - SF RE frame boundaries' AS group_name
82FROM android_jank_cuj cuj
83JOIN android_jank_cuj_sf_render_engine_frame_boundary boundary USING (cuj_id);
84