| -- |
| -- 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. |
| |
| SELECT RUN_METRIC('android/android_jank_cuj.sql'); |
| |
| |
| -- First query to look at `binder transaction` on the Main Thread |
| |
| DROP VIEW IF EXISTS android_jank_cuj_query_test_binder; |
| CREATE VIEW android_jank_cuj_query_test_binder AS |
| SELECT * FROM android_jank_cuj_slice |
| WHERE name = 'binder transaction'; |
| |
| SELECT ANDROID_JANK_CORRELATE_FRAME_SLICE('MainThread', 'android_jank_cuj_query_test_binder') AS suppress_query_output; |
| |
| |
| -- Second query to look at `JIT compiling` slices on JIT threadpool |
| |
| DROP VIEW IF EXISTS android_jank_cuj_query_test_jit; |
| CREATE VIEW android_jank_cuj_query_test_jit AS |
| SELECT * FROM android_jank_cuj_slice |
| WHERE name GLOB 'JIT compiling*'; |
| |
| SELECT ANDROID_JANK_CORRELATE_FRAME_SLICE_IMPL('App threads', 'android_jank_cuj_query_test_jit', 'jank_query_jit') AS suppress_query_output; |
| |
| --- Third query to look at 'sf binder' slices on SF main thread |
| |
| DROP VIEW IF EXISTS android_jank_cuj_query_test_sf_binder; |
| CREATE VIEW android_jank_cuj_query_test_sf_binder AS |
| SELECT * FROM android_jank_cuj_sf_slice |
| WHERE name = 'sf binder'; |
| |
| SELECT ANDROID_JANK_CORRELATE_FRAME_SLICE_IMPL('SF MainThread', 'android_jank_cuj_query_test_sf_binder', 'jank_query_sf_binder') AS suppress_query_output; |
| |
| |
| --- Fourth query to look at 'shader compile' slices on SF RenderEngine |
| |
| DROP VIEW IF EXISTS android_jank_cuj_query_test_re; |
| CREATE VIEW android_jank_cuj_query_test_re AS |
| SELECT * FROM android_jank_cuj_sf_slice |
| WHERE name = 'shader compile'; |
| |
| SELECT ANDROID_JANK_CORRELATE_FRAME_SLICE_IMPL('SF RenderEngine', 'android_jank_cuj_query_test_re', 'jank_query_re') AS suppress_query_output; |
| |
| |
| -- UNION ALL results from all queries. |
| SELECT 'JIT compiling' AS slice, * FROM jank_query_jit_slice_in_frame_agg |
| UNION ALL |
| SELECT 'binder transaction' AS slice, * FROM jank_query_slice_in_frame_agg |
| UNION ALL |
| SELECT 'sf binder' AS slice, * FROM jank_query_sf_binder_slice_in_frame_agg |
| UNION ALL |
| SELECT 'shader compile' AS slice, * FROM jank_query_re_slice_in_frame_agg |
| ORDER BY slice, cuj_id, vsync; |