--
-- Copyright 2022 The Android Open Source Project
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     https://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.


DROP VIEW IF EXISTS android_jank_cuj_event;
CREATE VIEW android_jank_cuj_event AS
-- Computed CUJ boundaries.
SELECT
  'slice' AS track_type,
  cuj.cuj_name AS track_name,
  boundary.ts,
  boundary.dur,
  cuj.cuj_name || ' (adjusted, id=' || cuj_id || ') ' AS slice_name,
  'CUJ Boundaries' AS group_name
FROM android_jank_cuj cuj
JOIN android_jank_cuj_boundary boundary USING (cuj_id)
UNION ALL
-- Computed frame boundaries on the Main Thread.
SELECT
  'slice' AS track_type,
  cuj.cuj_name || ' MT ' || vsync AS track_name,
  boundary.ts,
  boundary.dur,
  vsync || '' AS slice_name,
  cuj.cuj_name || ' - MT frame boundaries' AS group_name
FROM android_jank_cuj cuj
JOIN android_jank_cuj_main_thread_frame_boundary boundary USING (cuj_id)
UNION ALL
-- Computed frame boundaries on the Render Thread.
SELECT
  'slice' AS track_type,
  cuj.cuj_name || ' RT ' || vsync AS track_name,
  boundary.ts,
  boundary.dur,
  vsync || '' AS slice_name,
  cuj.cuj_name || ' - RT frame boundaries' AS group_name
FROM android_jank_cuj cuj
JOIN android_jank_cuj_render_thread_frame_boundary boundary USING (cuj_id)
UNION ALL
-- Computed overall frame boundaries not specific to any thread.
SELECT
  'slice' AS track_type,
  cuj.cuj_name || ' ' || vsync AS track_name,
  f.ts,
  f.dur,
  vsync || ' [app_missed=' || f.app_missed || ']' AS slice_name,
  cuj.cuj_name || ' - frames' AS group_name
FROM android_jank_cuj cuj
JOIN android_jank_cuj_frame f USING (cuj_id)
UNION ALL
-- Computed frame boundaries on the SF Main Thread
SELECT
  'slice' AS track_type,
  cuj.cuj_name || ' SF MT ' || vsync AS track_name,
  boundary.ts,
  boundary.dur,
  vsync || '' AS slice_name,
  cuj.cuj_name || ' - SF MT frame boundaries' AS group_name
FROM android_jank_cuj cuj
JOIN android_jank_cuj_sf_main_thread_frame_boundary boundary USING (cuj_id)
UNION ALL
-- Computed frame boundaries on the SF RenderEngine Thread.
SELECT
  'slice' AS track_type,
  cuj.cuj_name || ' SF RE ' || vsync AS track_name,
  boundary.ts,
  boundary.dur,
  vsync || '' AS slice_name,
  cuj.cuj_name || ' - SF RE frame boundaries' AS group_name
FROM android_jank_cuj cuj
JOIN android_jank_cuj_sf_render_engine_frame_boundary boundary USING (cuj_id);
